From 9eeed58bdb7b724444129d482bd39eddc8844467 Mon Sep 17 00:00:00 2001 From: Luca Forstner Date: Tue, 3 Jan 2023 13:01:55 +0100 Subject: [PATCH] rename helper function and return values --- src/node-file-trace.ts | 16 ++++++++-------- src/resolve-dependency.ts | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/node-file-trace.ts b/src/node-file-trace.ts index 1ebf1b4e..4ded78e8 100644 --- a/src/node-file-trace.ts +++ b/src/node-file-trace.ts @@ -13,14 +13,14 @@ const fsReadlink = fs.promises.readlink; const fsStat = fs.promises.stat; type ParseSpecifierResult = { - path: string; + remainingSpecifier: string; queryString: string | null } // Splits an ESM specifier into path and querystring (including the leading `?`). (If the specifier is CJS, // it is passed through untouched.) -export function parseSpecifier(specifier: string, cjsResolve: boolean = true): ParseSpecifierResult { - let path = specifier; +export function splitQueryStringFromSpecifier(specifier: string, cjsResolve: boolean = true): ParseSpecifierResult { + let remainingSpecifier = specifier; let queryString = null; if (!cjsResolve) { @@ -28,13 +28,13 @@ export function parseSpecifier(specifier: string, cjsResolve: boolean = true): P queryString = specifierUrl.search; if (specifierUrl.search) { - path = specifier.replace(specifierUrl.search, ''); + remainingSpecifier = specifier.replace(specifierUrl.search, ''); } else { - path = specifier; + remainingSpecifier = specifier; } } - return {path, queryString}; + return {queryString, remainingSpecifier}; } function inPath (path: string, parent: string) { @@ -241,7 +241,7 @@ export class Job { private maybeEmitDep = async (dep: string, path: string, cjsResolve: boolean) => { // Only affects ESM dependencies - const { path: strippedDep, queryString = '' } = parseSpecifier(dep, cjsResolve) + const { remainingSpecifier: strippedDep, queryString = '' } = splitQueryStringFromSpecifier(dep, cjsResolve) let resolved: string | string[] = ''; let error: Error | undefined; try { @@ -379,7 +379,7 @@ export class Job { private async analyzeAndEmitDependency(rawPath: string, parent?: string, cjsResolve?: boolean) { // Strip the querystring, if any. (Only affects ESM dependencies.) - const { path } = parseSpecifier(rawPath, cjsResolve) + const { remainingSpecifier: path } = splitQueryStringFromSpecifier(rawPath, cjsResolve) // Since different querystrings may lead to different results, include the full path // when noting whether or not we've already seen this path diff --git a/src/resolve-dependency.ts b/src/resolve-dependency.ts index 88ca47b3..01fcff8e 100644 --- a/src/resolve-dependency.ts +++ b/src/resolve-dependency.ts @@ -1,5 +1,5 @@ import { isAbsolute, resolve, sep } from 'path'; -import { Job, parseSpecifier } from './node-file-trace'; +import { Job, splitQueryStringFromSpecifier } from './node-file-trace'; // node resolver // custom implementation to emit only needed package.json files for resolver @@ -9,7 +9,7 @@ export default async function resolveDependency (specifier: string, parent: stri // ESM imports are allowed to have querystrings, but the native Node behavior is to ignore them when doing // file resolution, so emulate that here by stripping any querystring off before continuing - specifier = parseSpecifier(specifier, cjsResolve).path + specifier = splitQueryStringFromSpecifier(specifier, cjsResolve).remainingSpecifier if (isAbsolute(specifier) || specifier === '.' || specifier === '..' || specifier.startsWith('./') || specifier.startsWith('../')) { const trailingSlash = specifier.endsWith('/');