From 282d3f798f2a23ab8596a968c4eb6e76100f8410 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sun, 12 Dec 2021 13:49:50 +0100 Subject: [PATCH] Support references to node_modules modules on command line --- .../packages/schema/src/bin/preserves-schema-ts.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/implementations/javascript/packages/schema/src/bin/preserves-schema-ts.ts b/implementations/javascript/packages/schema/src/bin/preserves-schema-ts.ts index 572cfdd..e686c9e 100644 --- a/implementations/javascript/packages/schema/src/bin/preserves-schema-ts.ts +++ b/implementations/javascript/packages/schema/src/bin/preserves-schema-ts.ts @@ -80,6 +80,10 @@ export function modulePathTo(file1: string, file2: string): string { return changeExt(naive, ''); } +function isAbsoluteOrExplicitlyRelative(p: string) { + return p[0] === '.' || p[0] === '/'; +} + export function runOnce(options: CommandLineArguments): CompilationResult { const { base, failures, inputFiles: inputFiles0 } = expandInputGlob(options.inputs, options.base); @@ -106,7 +110,9 @@ export function runOnce(options: CommandLineArguments): CompilationResult { inputFiles.forEach(c => { const env: M.Environment = [ ... extensionEnv.flatMap(e => { - const p = modulePathTo(c.outputFilePath, e.typescriptModulePath); + const p = isAbsoluteOrExplicitlyRelative(e.typescriptModulePath) + ? modulePathTo(c.outputFilePath, e.typescriptModulePath) + : e.typescriptModulePath /* assuming it names something in node_modules */; if (p === null) return []; return [{... e, typescriptModulePath: p}]; }),