tsconfig-loader
Advanced tools
| { | ||
| "extends": "@forbeslindesay/tsconfig" | ||
| } |
+11
-5
@@ -16,2 +16,3 @@ "use strict"; | ||
| const StripBom = require("strip-bom"); | ||
| const resolve_1 = require("resolve"); | ||
| function loadTsconfig({ filename = process.env.TS_NODE_PROJECT, cwd = process.cwd(), } = {}) { | ||
@@ -66,7 +67,12 @@ const configPath = resolveConfigPath(cwd, filename); | ||
| if (extendedConfig) { | ||
| if (extendedConfig.indexOf('.json') === -1) { | ||
| extendedConfig += '.json'; | ||
| } | ||
| const currentDir = path.dirname(configFilePath); | ||
| const base = loadTsconfigFile(path.join(currentDir, extendedConfig)) || {}; | ||
| extendedConfig = resolve_1.sync(extendedConfig, { | ||
| basedir: currentDir, | ||
| extensions: ['.json'], | ||
| packageFilter: (pkg) => { | ||
| pkg.main = 'tsconfig.json'; | ||
| return pkg; | ||
| }, | ||
| }); | ||
| const base = loadTsconfigFile(extendedConfig) || {}; | ||
| // baseUrl should be interpreted as relative to the base tsconfig, | ||
@@ -76,3 +82,3 @@ // but we need to update it so it is relative to the original tsconfig being loaded | ||
| const extendsDir = path.dirname(extendedConfig); | ||
| base.compilerOptions.baseUrl = path.join(extendsDir, base.compilerOptions.baseUrl); | ||
| base.compilerOptions.baseUrl = path.relative(path.dirname(configFilePath), path.join(extendsDir, base.compilerOptions.baseUrl)); | ||
| } | ||
@@ -79,0 +85,0 @@ return deepmerge(base, config); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"} |
+3
-1
@@ -24,2 +24,3 @@ { | ||
| "json5": "^2.1.1", | ||
| "resolve": "^1.15.1", | ||
| "strip-bom": "^4.0.0" | ||
@@ -32,2 +33,3 @@ }, | ||
| "@types/node": "^13.7.7", | ||
| "@types/resolve": "^1.14.0", | ||
| "husky": "^3.0.8", | ||
@@ -79,3 +81,3 @@ "jest": "^24.9.0", | ||
| }, | ||
| "version": "1.0.0" | ||
| "version": "1.1.0" | ||
| } |
@@ -91,2 +91,10 @@ import {readFileSync} from 'fs'; | ||
| }); | ||
| it('should extend npm packages', () => { | ||
| const result = loadTsconfig({ | ||
| cwd: `${__dirname}/fixtures/tsconfig-with-extends-npm`, | ||
| }); | ||
| expect(result?.tsConfig.compilerOptions).toEqual( | ||
| require('@forbeslindesay/tsconfig/tsconfig.json').compilerOptions, | ||
| ); | ||
| }); | ||
| }); |
+13
-8
@@ -8,2 +8,3 @@ // Extracted & adapted from https://github.com/dividab/tsconfig-paths/blob/6da68cbec7f11aa84ec7aeb14732d9edcdb82b68/src/tsconfig-loader.ts | ||
| import StripBom = require('strip-bom'); | ||
| import {sync as resolve} from 'resolve'; | ||
| import {JSONSchemaForTheTypeScriptCompilerSConfigurationFile} from './tsconfig'; | ||
@@ -88,8 +89,12 @@ | ||
| if (extendedConfig) { | ||
| if (extendedConfig.indexOf('.json') === -1) { | ||
| extendedConfig += '.json'; | ||
| } | ||
| const currentDir = path.dirname(configFilePath); | ||
| const base = loadTsconfigFile(path.join(currentDir, extendedConfig)) || {}; | ||
| extendedConfig = resolve(extendedConfig, { | ||
| basedir: currentDir, | ||
| extensions: ['.json'], | ||
| packageFilter: (pkg) => { | ||
| pkg.main = 'tsconfig.json'; | ||
| return pkg; | ||
| }, | ||
| }); | ||
| const base = loadTsconfigFile(extendedConfig) || {}; | ||
@@ -100,5 +105,5 @@ // baseUrl should be interpreted as relative to the base tsconfig, | ||
| const extendsDir = path.dirname(extendedConfig); | ||
| base.compilerOptions.baseUrl = path.join( | ||
| extendsDir, | ||
| base.compilerOptions.baseUrl, | ||
| base.compilerOptions.baseUrl = path.relative( | ||
| path.dirname(configFilePath), | ||
| path.join(extendsDir, base.compilerOptions.baseUrl), | ||
| ); | ||
@@ -105,0 +110,0 @@ } |
Sorry, the diff of this file is not supported yet
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
220951
0.88%34
3.03%3096
0.75%4
33.33%14
7.69%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added