Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: invert some conditionals for better readability #335

Merged
merged 1 commit into from
Jun 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 17 additions & 25 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,26 +154,24 @@ const typescript: PluginImpl<RPT2Options> = (options) =>

// TODO: use module resolution cache
const result = tsModule.nodeModuleNameResolver(importee, importer, parsedConfig.options, tsModule.sys);
let resolved = result.resolvedModule?.resolvedFileName;

if (result.resolvedModule && result.resolvedModule.resolvedFileName)
{
if (filter(result.resolvedModule.resolvedFileName))
cache().setDependency(result.resolvedModule.resolvedFileName, importer);
if (!resolved)
return;

if (result.resolvedModule.resolvedFileName.endsWith(".d.ts"))
if (filter(resolved))
cache().setDependency(resolved, importer);

if (resolved.endsWith(".d.ts"))
return;

const resolved = pluginOptions.rollupCommonJSResolveHack
? resolve.sync(result.resolvedModule.resolvedFileName)
: result.resolvedModule.resolvedFileName;
if (pluginOptions.rollupCommonJSResolveHack)
resolved = resolve.sync(resolved);

context.debug(() => `${blue("resolving")} '${importee}' imported by '${importer}'`);
context.debug(() => ` to '${resolved}'`);

return pathNormalize(resolved);
}

return;
return pathNormalize(resolved); // use host OS separators to fix Windows issue: https://github.com/ezolenko/rollup-plugin-typescript2/pull/251
},

load(id)
Expand Down Expand Up @@ -229,8 +227,9 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
printDiagnostics(contextWrapper, diagnostics, parsedConfig.options.pretty === true);
}

if (result)
{
if (!result)
return undefined;

if (result.references)
result.references.map(normalize).map(allImportedFiles.add, allImportedFiles);

Expand Down Expand Up @@ -259,9 +258,6 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
}

return transformResult;
}

return undefined;
},

generateBundle(bundleOptions)
Expand Down Expand Up @@ -330,18 +326,15 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
if (fileName.includes("?")) // HACK for rollup-plugin-vue, it creates virtual modules in form 'file.vue?rollup-plugin-vue=script.ts'
fileName = fileName.split("?", 1) + extension;

// If 'useTsconfigDeclarationDir' is given in the
// plugin options, directly write to the path provided
// by Typescript's LanguageService (which may not be
// under Rollup's output directory, and thus can't be
// emitted as an asset).
// If 'useTsconfigDeclarationDir' is in plugin options, directly write to 'declarationDir'.
// This may not be under Rollup's output directory, and thus can't be emitted as an asset.
if (pluginOptions.useTsconfigDeclarationDir)
{
context.debug(() => `${blue("emitting declarations")} for '${key}' to '${fileName}'`);
tsModule.sys.writeFile(fileName, entry.text, entry.writeByteOrderMark);
return;
}
else
{

// don't mutate the entry because generateBundle gets called multiple times
let entryText = entry.text
const declarationDir = (_output.file ? dirname(_output.file) : _output.dir) as string;
Expand All @@ -367,7 +360,6 @@ const typescript: PluginImpl<RPT2Options> = (options) =>
source: entryText,
fileName: relativePath,
});
}
};

Object.keys(declarations).forEach((key) =>
Expand Down
2 changes: 1 addition & 1 deletion src/tscache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export function getAllReferences(importer: string, snapshot: tsTypes.IScriptSnap
return _.compact(info.referencedFiles.concat(info.importedFiles).map((reference) =>
{
const resolved = tsModule.nodeModuleNameResolver(reference.fileName, importer, options, tsModule.sys);
return resolved.resolvedModule ? resolved.resolvedModule.resolvedFileName : undefined;
return resolved.resolvedModule?.resolvedFileName;
}));
}

Expand Down