main repo

This commit is contained in:
Basilosaurusrex
2025-11-24 18:09:40 +01:00
parent b636ee5e70
commit f027651f9b
34146 changed files with 4436636 additions and 0 deletions

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,88 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var config_loader_1 = require("../config-loader");
var path_1 = require("path");
describe("config-loader", function () {
it("should use explicitParams when set", function () {
var result = (0, config_loader_1.configLoader)({
explicitParams: {
baseUrl: "/foo/bar",
paths: {
asd: ["asd"],
},
},
cwd: "/baz",
});
var successResult = result;
// assert.equal(successResult.resultType, "success");
// assert.equal(successResult.absoluteBaseUrl, "/foo/bar");
// assert.equal(successResult.paths["asd"][0], "asd");
expect(successResult.resultType).toBe("success");
expect(successResult.absoluteBaseUrl).toBe("/foo/bar");
expect(successResult.paths["asd"][0]).toBe("asd");
});
it("should use explicitParams when set and add cwd when path is relative", function () {
var result = (0, config_loader_1.configLoader)({
explicitParams: {
baseUrl: "bar/",
paths: {
asd: ["asd"],
},
},
cwd: "/baz",
});
var successResult = result;
// assert.equal(successResult.resultType, "success");
// assert.equal(successResult.absoluteBaseUrl, join("/baz", "bar/"));
expect(successResult.resultType).toBe("success");
expect(successResult.absoluteBaseUrl).toBe((0, path_1.join)("/baz", "bar/"));
});
it("should fallback to tsConfigLoader when explicitParams is not set", function () {
var result = (0, config_loader_1.configLoader)({
explicitParams: undefined,
cwd: "/baz",
// tslint:disable-next-line:no-any
tsConfigLoader: function (_) { return ({
tsConfigPath: "/baz/tsconfig.json",
baseUrl: "./src",
paths: {},
}); },
});
var successResult = result;
// assert.equal(successResult.resultType, "success");
// assert.equal(successResult.absoluteBaseUrl, join("/baz", "src"));
expect(successResult.resultType).toBe("success");
expect(successResult.absoluteBaseUrl).toBe((0, path_1.join)("/baz", "src"));
});
it("should show an error message when baseUrl is missing", function () {
var result = (0, config_loader_1.configLoader)({
explicitParams: undefined,
cwd: "/baz",
// tslint:disable-next-line:no-any
tsConfigLoader: function (_) { return ({
tsConfigPath: "/baz/tsconfig.json",
baseUrl: undefined,
paths: {},
}); },
});
var failResult = result;
// assert.equal(failResult.resultType, "failed");
// assert.isTrue(failResult.message.indexOf("baseUrl") > -1);
expect(failResult.resultType).toBe("failed");
expect(failResult.message.indexOf("baseUrl") > -1).toBeTruthy();
});
it("should presume cwd to be a tsconfig file when loadConfig is called with absolute path to tsconfig.json", function () {
// using tsconfig-named.json to ensure that future changes to fix
// https://github.com/dividab/tsconfig-paths/issues/31
// do not pass this test case just because of a directory walk looking
// for tsconfig.json
var configFile = (0, path_1.join)(__dirname, "tsconfig-named.json");
var result = (0, config_loader_1.loadConfig)(configFile);
var successResult = result;
// assert.equal(successResult.resultType, "success");
// assert.equal(successResult.configFileAbsolutePath, configFile);
expect(successResult.resultType).toBe("success");
expect(successResult.configFileAbsolutePath).toBe(configFile);
});
});
//# sourceMappingURL=config-loader.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"config-loader.test.js","sourceRoot":"","sources":["../../src/__tests__/config-loader.test.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,17 @@
export interface OneTest {
readonly name: string;
readonly only?: boolean;
readonly skip?: boolean;
readonly absoluteBaseUrl: string;
readonly paths: {
[key: string]: Array<string>;
};
readonly mainFields?: string[];
readonly addMatchAll?: boolean;
readonly existingFiles: ReadonlyArray<string>;
readonly requestedModule: string;
readonly extensions: ReadonlyArray<string>;
readonly packageJson?: {};
readonly expectedPath: string | undefined;
}
export declare const tests: ReadonlyArray<OneTest>;

View File

@@ -0,0 +1,205 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.tests = void 0;
var path_1 = require("path");
var filesystem_1 = require("../../filesystem");
var defaultExtensionsWhenRunningInTsNode = [
".js",
".json",
".node",
".ts",
".tsx",
];
exports.tests = [
{
name: "should locate path that matches with star and exists",
absoluteBaseUrl: "/root/",
paths: {
"lib/*": ["location/*"],
},
existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
requestedModule: "lib/mylib",
expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should resolve to correct path when many are specified",
absoluteBaseUrl: "/root/",
paths: {
"lib/*": ["foo1/*", "foo2/*", "location/*", "foo3/*"],
},
existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
requestedModule: "lib/mylib",
extensions: [".ts"],
expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
},
{
name: "should locate path that matches with star and prioritize pattern with longest prefix",
absoluteBaseUrl: "/root/",
paths: {
"*": ["location/*"],
"lib/*": ["location/*"],
},
existingFiles: [
(0, path_1.join)("/root", "location", "lib", "mylib", "index.ts"),
(0, path_1.join)("/root", "location", "mylib", "index.ts"),
],
requestedModule: "lib/mylib",
expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should locate path that matches with star and exists with extension",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("/root", "location", "mylib.myext")],
requestedModule: "lib/mylib",
extensions: [".js", ".myext"],
expectedPath: (0, filesystem_1.removeExtension)((0, path_1.join)("/root", "location", "mylib.myext")),
},
{
name: "should resolve request with extension specified",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("/root", "location", "test.jpg")],
requestedModule: "lib/test.jpg",
expectedPath: (0, path_1.join)("/root", "location", "test.jpg"),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should locate path that matches without star and exists",
absoluteBaseUrl: "/root/",
paths: {
"lib/foo": ["location/foo"],
},
existingFiles: [(0, path_1.join)("/root", "location", "foo.ts")],
requestedModule: "lib/foo",
expectedPath: (0, filesystem_1.removeExtension)((0, path_1.join)("/root", "location", "foo.ts")),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should resolve to parent folder when filename is in subfolder",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.ts")],
requestedModule: "lib/mylib",
expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "location", "mylib", "index.ts")),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should resolve from main field in package.json",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("/root", "location", "mylib", "kalle.ts")],
packageJson: { main: "./kalle.ts" },
requestedModule: "lib/mylib",
expectedPath: (0, path_1.join)("/root", "location", "mylib", "kalle.ts"),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should resolve from main field in package.json (js)",
absoluteBaseUrl: "/root",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("/root", "location", "mylib.js", "kalle.js")],
packageJson: { main: "./kalle.js" },
requestedModule: "lib/mylib.js",
extensions: [".ts", ".js"],
expectedPath: (0, path_1.join)("/root", "location", "mylib.js", "kalle.js"),
},
{
name: "should resolve from list of fields by priority in package.json",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
mainFields: ["missing", "browser", "main"],
packageJson: { main: "./main.js", browser: "./browser.js" },
existingFiles: [
(0, path_1.join)("/root", "location", "mylibjs", "main.js"),
(0, path_1.join)("/root", "location", "mylibjs", "browser.js"), // browserFilePath
],
extensions: [".ts", ".js"],
requestedModule: "lib/mylibjs",
expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "browser.js"),
},
{
name: "should ignore field mappings to missing files in package.json",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
mainFields: ["browser", "main"],
existingFiles: [(0, path_1.join)("/root", "location", "mylibjs", "kalle.js")],
requestedModule: "lib/mylibjs",
packageJson: {
main: "./kalle.js",
browser: "./nope.js",
},
extensions: [".ts", ".js"],
expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
},
{
name: "should ignore advanced field mappings in package.json",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [
(0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
(0, path_1.join)("/root", "location", "mylibjs", "browser.js"),
],
requestedModule: "lib/mylibjs",
packageJson: {
main: "./kalle.js",
browser: { mylibjs: "./browser.js", "./kalle.js": "./browser.js" },
},
extensions: [".ts", ".js"],
expectedPath: (0, path_1.join)("/root", "location", "mylibjs", "kalle.js"),
},
{
name: "should resolve to with the help of baseUrl when not explicitly set",
absoluteBaseUrl: "/root/",
paths: {},
existingFiles: [(0, path_1.join)("/root", "mylib", "index.ts")],
requestedModule: "mylib",
expectedPath: (0, path_1.dirname)((0, path_1.join)("/root", "mylib", "index.ts")),
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should not resolve with the help of baseUrl when asked not to",
absoluteBaseUrl: "/root/",
paths: {},
addMatchAll: false,
existingFiles: [(0, path_1.join)("/root", "mylib", "index.ts")],
requestedModule: "mylib",
expectedPath: undefined,
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should not locate path that does not match",
absoluteBaseUrl: "/root/",
paths: { "lib/*": ["location/*"] },
existingFiles: [(0, path_1.join)("root", "location", "mylib")],
requestedModule: "mylib",
expectedPath: undefined,
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should not resolve typings file (index.d.ts)",
absoluteBaseUrl: "/root/",
paths: {
"lib/*": ["location/*"],
},
existingFiles: [(0, path_1.join)("/root", "location", "mylib", "index.d.ts")],
requestedModule: "lib/mylib",
expectedPath: undefined,
extensions: defaultExtensionsWhenRunningInTsNode,
},
{
name: "should resolve main file with cjs file extension",
absoluteBaseUrl: "/root/",
paths: {},
existingFiles: [(0, path_1.join)("/root", "mylib", "index.cjs")],
packageJson: {
main: "./index.cjs",
},
requestedModule: "mylib",
expectedPath: (0, path_1.join)("/root", "mylib", "index.cjs"),
extensions: defaultExtensionsWhenRunningInTsNode,
},
];
//# sourceMappingURL=match-path-data.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,64 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Filesystem = require("../filesystem");
var path = require("path");
describe("filesystem", function () {
var fileThatExists = path.join(__dirname, "../../package.json");
var fileThatNotExists = path.join(__dirname, "../../package2.json");
it("should find file that exists, sync", function () {
var result = Filesystem.fileExistsSync(fileThatExists);
// assert.equal(result, true);
expect(result).toBe(true);
});
it("should not find file that not exists, sync", function () {
var result = Filesystem.fileExistsSync(fileThatNotExists);
// assert.equal(result, false);
expect(result).toBe(false);
});
it("should find file that exists, async", function (done) {
Filesystem.fileExistsAsync(fileThatExists, function (_err, result) {
try {
// assert.equal(result, true);
expect(result).toBe(true);
done();
}
catch (error) {
done(error);
}
});
});
it("should not find file that not exists, async", function (done) {
Filesystem.fileExistsAsync(fileThatNotExists, function (_err, result) {
try {
// assert.equal(result, false);
expect(result).toBe(false);
done();
}
catch (error) {
done(error);
}
});
});
it("should load json, sync", function () {
var result = Filesystem.readJsonFromDiskSync(fileThatExists);
// assert.isOk(result);
expect(result);
// assert.equal(result.main, "lib/index.js");
expect(result.main).toBe("lib/index.js");
});
it("should load json, async", function (done) {
Filesystem.readJsonFromDiskAsync(fileThatExists, function (_err, result) {
try {
// assert.isOk(result); // Asserts that object is truthy.
expect(result).toBeTruthy();
// assert.equal(result.main, "lib/index.js");
expect(result.main).toBe("lib/index.js");
done();
}
catch (error) {
done(error);
}
});
});
});
//# sourceMappingURL=filesystem.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"filesystem.test.js","sourceRoot":"","sources":["../../src/__tests__/filesystem.test.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,2BAA6B;AAE7B,QAAQ,CAAC,YAAY,EAAE;IACrB,IAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAClE,IAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEtE,EAAE,CAAC,oCAAoC,EAAE;QACvC,IAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACzD,8BAA8B;QAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE;QAC/C,IAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC5D,+BAA+B;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,UAAC,IAAI;QAC7C,UAAU,CAAC,eAAe,CAAC,cAAc,EAAE,UAAC,IAAI,EAAE,MAAM;YACtD,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,UAAC,IAAI;QACrD,UAAU,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAC,IAAI,EAAE,MAAM;YACzD,IAAI;gBACF,+BAA+B;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE;QAC3B,IAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC/D,uBAAuB;QACvB,MAAM,CAAC,MAAM,CAAC,CAAC;QACf,6CAA6C;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,UAAC,IAAI;QACjC,UAAU,CAAC,qBAAqB,CAAC,cAAc,EAAE,UAAC,IAAI,EAAE,MAAM;YAC5D,IAAI;gBACF,yDAAyD;gBACzD,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC5B,6CAA6C;gBAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACzC,IAAI,EAAE,CAAC;aACR;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,66 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var mapping_entry_1 = require("../mapping-entry");
var path_1 = require("path");
describe("mapping-entry", function () {
it("should change to absolute paths and sort in longest prefix order", function () {
var result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {
"*": ["/foo1", "/foo2"],
"longest/pre/fix/*": ["/foo2/bar"],
"pre/fix/*": ["/foo3"],
}, true);
// assert.deepEqual(result, [
// {
// pattern: "longest/pre/fix/*",
// paths: [join("/absolute", "base", "url", "foo2", "bar")],
// },
// {
// pattern: "pre/fix/*",
// paths: [join("/absolute", "base", "url", "foo3")],
// },
// {
// pattern: "*",
// paths: [
// join("/absolute", "base", "url", "foo1"),
// join("/absolute", "base", "url", "foo2"),
// ],
// },
// ]);
expect(result).toEqual([
{
pattern: "longest/pre/fix/*",
paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
},
{
pattern: "pre/fix/*",
paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")],
},
{
pattern: "*",
paths: [
(0, path_1.join)("/absolute", "base", "url", "foo1"),
(0, path_1.join)("/absolute", "base", "url", "foo2"),
],
},
]);
});
it("should should add a match-all pattern when requested", function () {
var result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {}, true);
// assert.deepEqual(result, [
// {
// pattern: "*",
// paths: [join("/absolute", "base", "url", "*")],
// },
// ]);
expect(result).toEqual([
{
pattern: "*",
paths: [(0, path_1.join)("/absolute", "base", "url", "*")],
},
]);
result = (0, mapping_entry_1.getAbsoluteMappingEntries)("/absolute/base/url", {}, false);
// assert.deepEqual(result, []);
expect(result).toEqual([]);
});
});
//# sourceMappingURL=mapping-entry.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"mapping-entry.test.js","sourceRoot":"","sources":["../../src/__tests__/mapping-entry.test.ts"],"names":[],"mappings":";;AAAA,kDAA6D;AAC7D,6BAA4B;AAE5B,QAAQ,CAAC,eAAe,EAAE;IACxB,EAAE,CAAC,kEAAkE,EAAE;QACrE,IAAM,MAAM,GAAG,IAAA,yCAAyB,EACtC,oBAAoB,EACpB;YACE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;YACvB,mBAAmB,EAAE,CAAC,WAAW,CAAC;YAClC,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,EACD,IAAI,CACL,CAAC;QACF,6BAA6B;QAC7B,MAAM;QACN,oCAAoC;QACpC,gEAAgE;QAChE,OAAO;QACP,MAAM;QACN,4BAA4B;QAC5B,yDAAyD;QACzD,OAAO;QACP,MAAM;QACN,oBAAoB;QACpB,eAAe;QACf,kDAAkD;QAClD,kDAAkD;QAClD,SAAS;QACT,OAAO;QACP,MAAM;QACN,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB;gBACE,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;aACzD;YACD;gBACE,OAAO,EAAE,WAAW;gBACpB,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aAClD;YACD;gBACE,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE;oBACL,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;oBACxC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACzC;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE;QACzD,IAAI,MAAM,GAAG,IAAA,yCAAyB,EAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACvE,6BAA6B;QAC7B,MAAM;QACN,oBAAoB;QACpB,sDAAsD;QACtD,OAAO;QACP,MAAM;QACN,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB;gBACE,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC/C;SACF,CAAC,CAAC;QAEH,MAAM,GAAG,IAAA,yCAAyB,EAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACpE,gCAAgC;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,19 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var match_path_async_1 = require("../match-path-async");
var Tests = require("./data/match-path-data");
describe("match-path-async", function () {
Tests.tests.forEach(function (t) {
return it(t.name, function (done) {
var matchPath = (0, match_path_async_1.createMatchPathAsync)(t.absoluteBaseUrl, t.paths, t.mainFields, t.addMatchAll);
matchPath(t.requestedModule, function (_path, callback) { return callback(undefined, t.packageJson); }, function (path, callback) {
return callback(undefined, t.existingFiles.indexOf(path) !== -1);
}, t.extensions, function (_err, result) {
// assert.equal(result, t.expectedPath);
expect(result).toBe(t.expectedPath);
done();
});
});
});
});
//# sourceMappingURL=match-path-async.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"match-path-async.test.js","sourceRoot":"","sources":["../../src/__tests__/match-path-async.test.ts"],"names":[],"mappings":";;AAAA,wDAA2D;AAC3D,8CAAgD;AAEhD,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;QACpB,OAAA,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,UAAC,IAAI;YACd,IAAM,SAAS,GAAG,IAAA,uCAAoB,EACpC,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,WAAW,CACd,CAAC;YACF,SAAS,CACP,CAAC,CAAC,eAAe,EACjB,UAAC,KAAK,EAAE,QAAQ,IAAK,OAAA,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EAAlC,CAAkC,EACvD,UAAC,IAAI,EAAE,QAAQ;gBACb,OAAA,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAAzD,CAAyD,EAC3D,CAAC,CAAC,UAAU,EACZ,UAAC,IAAI,EAAE,MAAM;gBACX,wCAAwC;gBACxC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC;YACT,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IAnBF,CAmBE,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var match_path_sync_1 = require("../match-path-sync");
var Tests = require("./data/match-path-data");
describe("match-path-sync", function () {
Tests.tests.forEach(function (t) {
return it(t.name, function () {
var matchPath = (0, match_path_sync_1.createMatchPath)(t.absoluteBaseUrl, t.paths, t.mainFields, t.addMatchAll);
var result = matchPath(t.requestedModule, function (_) { return t.packageJson; }, function (name) { return t.existingFiles.indexOf(name) !== -1; }, t.extensions);
// assert.equal(result, t.expectedPath);
expect(result).toBe(t.expectedPath);
});
});
});
//# sourceMappingURL=match-path-sync.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"match-path-sync.test.js","sourceRoot":"","sources":["../../src/__tests__/match-path-sync.test.ts"],"names":[],"mappings":";;AAAA,sDAAqD;AACrD,8CAAgD;AAEhD,QAAQ,CAAC,iBAAiB,EAAE;IAC1B,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,UAAC,CAAC;QACpB,OAAA,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;YACT,IAAM,SAAS,GAAG,IAAA,iCAAe,EAC/B,CAAC,CAAC,eAAe,EACjB,CAAC,CAAC,KAAK,EACP,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,WAAW,CACd,CAAC;YACF,IAAM,MAAM,GAAG,SAAS,CACtB,CAAC,CAAC,eAAe,EACjB,UAAC,CAAS,IAAK,OAAA,CAAC,CAAC,WAAW,EAAb,CAAa,EAC5B,UAAC,IAAY,IAAK,OAAA,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAApC,CAAoC,EACtD,CAAC,CAAC,UAAU,CACb,CAAC;YACF,wCAAwC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC;IAfF,CAeE,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,175 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var try_path_1 = require("../try-path");
var path_1 = require("path");
describe("mapping-entry", function () {
var abosolutePathMappings = [
{
pattern: "longest/pre/fix/*",
paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
},
{ pattern: "pre/fix/*", paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")] },
{ pattern: "*", paths: [(0, path_1.join)("/absolute", "base", "url", "foo1")] },
];
var abosolutePathMappingsStarstWithSlash = [
{
pattern: "/opt/*",
paths: [(0, path_1.join)("/absolute", "src", "aws-layer")],
},
{
pattern: "*",
paths: [(0, path_1.join)("/absolute", "src")],
},
];
it("should return no paths for relative requested module", function () {
var result = (0, try_path_1.getPathsToTry)([".ts", "tsx"], abosolutePathMappings, "./requested-module");
// assert.deepEqual(result, undefined);
expect(result).toBeUndefined();
});
it("should return no paths if no pattern match the requested module", function () {
var result = (0, try_path_1.getPathsToTry)([".ts", "tsx"], [
{
pattern: "longest/pre/fix/*",
paths: [(0, path_1.join)("/absolute", "base", "url", "foo2", "bar")],
},
{
pattern: "pre/fix/*",
paths: [(0, path_1.join)("/absolute", "base", "url", "foo3")],
},
], "requested-module");
expect(result).toBeUndefined();
});
it("should get all paths that matches requested module", function () {
var result = (0, try_path_1.getPathsToTry)([".ts", ".tsx"], abosolutePathMappings, "longest/pre/fix/requested-module");
// assert.deepEqual(result, [
// // "longest/pre/fix/*"
// { type: "file", path: join("/absolute", "base", "url", "foo2", "bar") },
// {
// type: "extension",
// path: join("/absolute", "base", "url", "foo2", "bar.ts"),
// },
// {
// type: "extension",
// path: join("/absolute", "base", "url", "foo2", "bar.tsx"),
// },
// {
// type: "package",
// path: join("/absolute", "base", "url", "foo2", "bar", "package.json"),
// },
// {
// type: "index",
// path: join("/absolute", "base", "url", "foo2", "bar", "index.ts"),
// },
// {
// type: "index",
// path: join("/absolute", "base", "url", "foo2", "bar", "index.tsx"),
// },
// // "*"
// { type: "file", path: join("/absolute", "base", "url", "foo1") },
// { type: "extension", path: join("/absolute", "base", "url", "foo1.ts") },
// { type: "extension", path: join("/absolute", "base", "url", "foo1.tsx") },
// {
// type: "package",
// path: join("/absolute", "base", "url", "foo1", "package.json"),
// },
// {
// type: "index",
// path: join("/absolute", "base", "url", "foo1", "index.ts"),
// },
// {
// type: "index",
// path: join("/absolute", "base", "url", "foo1", "index.tsx"),
// },
// ]);
expect(result).toEqual([
// "longest/pre/fix/*"
{ type: "file", path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar") },
{
type: "extension",
path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar.ts"),
},
{
type: "extension",
path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar.tsx"),
},
{
type: "package",
path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "package.json"),
},
{
type: "index",
path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "index.ts"),
},
{
type: "index",
path: (0, path_1.join)("/absolute", "base", "url", "foo2", "bar", "index.tsx"),
},
// "*"
{ type: "file", path: (0, path_1.join)("/absolute", "base", "url", "foo1") },
{ type: "extension", path: (0, path_1.join)("/absolute", "base", "url", "foo1.ts") },
{ type: "extension", path: (0, path_1.join)("/absolute", "base", "url", "foo1.tsx") },
{
type: "package",
path: (0, path_1.join)("/absolute", "base", "url", "foo1", "package.json"),
},
{
type: "index",
path: (0, path_1.join)("/absolute", "base", "url", "foo1", "index.ts"),
},
{
type: "index",
path: (0, path_1.join)("/absolute", "base", "url", "foo1", "index.tsx"),
},
]);
});
it("should resolve paths starting with a slash", function () {
var result = (0, try_path_1.getPathsToTry)([".ts"], abosolutePathMappingsStarstWithSlash, "/opt/utils");
expect(result).toEqual([
// "opt/*"
{
path: (0, path_1.join)("/absolute", "src", "aws-layer"),
type: "file",
},
{
path: (0, path_1.join)("/absolute", "src", "aws-layer.ts"),
type: "extension",
},
{
path: (0, path_1.join)("/absolute", "src", "aws-layer", "package.json"),
type: "package",
},
{
path: (0, path_1.join)("/absolute", "src", "aws-layer", "index.ts"),
type: "index",
},
// "*"
{
path: (0, path_1.join)("/absolute", "src"),
type: "file",
},
{
path: (0, path_1.join)("/absolute", "src.ts"),
type: "extension",
},
{
path: (0, path_1.join)("/absolute", "src", "package.json"),
type: "package",
},
{
path: (0, path_1.join)("/absolute", "src", "index.ts"),
type: "index",
},
]);
});
});
// describe("match-star", () => {
// it("should match star in last position", () => {
// const result = matchStar("lib/*", "lib/mylib");
// assert.equal(result, "mylib");
// });
// it("should match star in first position", () => {
// const result = matchStar("*/lib", "mylib/lib");
// assert.equal(result, "mylib");
// });
// });
//# sourceMappingURL=try-path.test.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"try-path.test.js","sourceRoot":"","sources":["../../src/__tests__/try-path.test.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,328 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tsconfig_loader_1 = require("../tsconfig-loader");
var path_1 = require("path");
describe("tsconfig-loader", function () {
it("should find tsconfig in cwd", function () {
var result = (0, tsconfig_loader_1.tsConfigLoader)({
cwd: "/foo/bar",
getEnv: function (_) { return undefined; },
loadSync: function (cwd) {
return {
tsConfigPath: "".concat(cwd, "/tsconfig.json"),
baseUrl: "./",
paths: {},
};
},
});
// assert.equal(result.tsConfigPath, "/foo/bar/tsconfig.json");
expect(result.tsConfigPath).toBe("/foo/bar/tsconfig.json");
});
it("should return loaderResult.tsConfigPath as undefined when not found", function () {
var result = (0, tsconfig_loader_1.tsConfigLoader)({
cwd: "/foo/bar",
getEnv: function (_) { return undefined; },
loadSync: function (_) {
return {
tsConfigPath: undefined,
baseUrl: "./",
paths: {},
};
},
});
// assert.isUndefined(result.tsConfigPath);
expect(result.tsConfigPath).toBeUndefined();
});
it("should use TS_NODE_PROJECT env if exists", function () {
var result = (0, tsconfig_loader_1.tsConfigLoader)({
cwd: "/foo/bar",
getEnv: function (key) {
return key === "TS_NODE_PROJECT" ? "/foo/baz" : undefined;
},
loadSync: function (cwd, fileName) {
if (cwd === "/foo/bar" && fileName === "/foo/baz") {
return {
tsConfigPath: "/foo/baz/tsconfig.json",
baseUrl: "./",
paths: {},
};
}
return {
tsConfigPath: undefined,
baseUrl: "./",
paths: {},
};
},
});
// assert.equal(result.tsConfigPath, "/foo/baz/tsconfig.json");
expect(result.tsConfigPath).toBe("/foo/baz/tsconfig.json");
});
it("should use TS_NODE_BASEURL env if exists", function () {
var result = (0, tsconfig_loader_1.tsConfigLoader)({
cwd: "/foo/bar",
getEnv: function (key) {
return key === "TS_NODE_BASEURL" ? "SOME_BASEURL" : undefined;
},
loadSync: function (_0, _1, baseUrl) {
return {
tsConfigPath: undefined,
baseUrl: baseUrl,
paths: {},
};
},
});
// assert.equal(result.baseUrl, "SOME_BASEURL");
expect(result.baseUrl).toBe("SOME_BASEURL");
});
it("should not use TS_NODE_BASEURL env if it does not exist", function () {
var result = (0, tsconfig_loader_1.tsConfigLoader)({
cwd: "/foo/bar",
getEnv: function (_) {
return undefined;
},
loadSync: function (_0, _1, baseUrl) {
return {
tsConfigPath: undefined,
baseUrl: baseUrl,
paths: {},
};
},
});
// assert.equal(result.baseUrl, undefined);
expect(result.baseUrl).toBeUndefined();
});
});
describe("walkForTsConfig", function () {
it("should find tsconfig in starting directory", function () {
var pathToTsconfig = (0, path_1.join)("/root", "dir1", "tsconfig.json");
var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1"), function (path) { return path === pathToTsconfig; });
// assert.equal(res, pathToTsconfig);
expect(res).toBe(pathToTsconfig);
});
it("should find tsconfig in parent directory", function () {
var pathToTsconfig = (0, path_1.join)("/root", "tsconfig.json");
var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1"), function (path) { return path === pathToTsconfig; });
// assert.equal(res, pathToTsconfig);
expect(res).toBe(pathToTsconfig);
});
it("should return undefined when reaching the top", function () {
var res = (0, tsconfig_loader_1.walkForTsConfig)((0, path_1.join)("/root", "dir1", "kalle"), function () { return false; });
// assert.equal(res, undefined);
expect(res).toBeUndefined();
});
});
describe("loadConfig", function () {
it("should load a config", function () {
var config = { compilerOptions: { baseUrl: "hej" } };
var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return JSON.stringify(config); });
// assert.deepEqual(res, config);
expect(res).toStrictEqual(config);
});
it("should load a config with comments", function () {
var config = { compilerOptions: { baseUrl: "hej" } };
var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n // my comment\n \"compilerOptions\": { \n \"baseUrl\": \"hej\"\n }\n }"; });
// assert.deepEqual(res, config);
expect(res).toStrictEqual(config);
});
it("should load a config with trailing commas", function () {
var config = { compilerOptions: { baseUrl: "hej" } };
var res = (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n \"compilerOptions\": { \n \"baseUrl\": \"hej\",\n },\n }"; });
// assert.deepEqual(res, config);
expect(res).toStrictEqual(config);
});
it("should throw an error including the file path when encountering invalid JSON5", function () {
expect(function () {
return (0, tsconfig_loader_1.loadTsconfig)("/root/dir1/tsconfig.json", function (path) { return path === "/root/dir1/tsconfig.json"; }, function (_) { return "{\n \"compilerOptions\": {\n }"; });
}).toThrowError("/root/dir1/tsconfig.json is malformed JSON5: invalid end of input at 3:12");
});
it("should load a config with string extends and overwrite all options", function () {
var firstConfig = {
extends: "../base-config.json",
compilerOptions: { baseUrl: "kalle", paths: { foo: ["bar2"] } },
};
var firstConfigPath = (0, path_1.join)("/root", "dir1", "tsconfig.json");
var baseConfig = {
compilerOptions: {
baseUrl: "olle",
paths: { foo: ["bar1"] },
strict: true,
},
};
var baseConfigPath = (0, path_1.join)("/root", "base-config.json");
var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "tsconfig.json"), function (path) { return path === firstConfigPath || path === baseConfigPath; }, function (path) {
if (path === firstConfigPath) {
return JSON.stringify(firstConfig);
}
if (path === baseConfigPath) {
return JSON.stringify(baseConfig);
}
return "";
});
// assert.deepEqual(res, {
// extends: "../base-config.json",
// compilerOptions: {
// baseUrl: "kalle",
// paths: { foo: ["bar2"] },
// strict: true,
// },
// });
expect(res).toEqual({
extends: "../base-config.json",
compilerOptions: {
baseUrl: "kalle",
paths: { foo: ["bar2"] },
strict: true,
},
});
});
it("should load a config with string extends from node_modules and overwrite all options", function () {
var firstConfig = {
extends: "my-package/base-config.json",
compilerOptions: { baseUrl: "kalle", paths: { foo: ["bar2"] } },
};
var firstConfigPath = (0, path_1.join)("/root", "dir1", "tsconfig.json");
var baseConfig = {
compilerOptions: {
baseUrl: "olle",
paths: { foo: ["bar1"] },
strict: true,
},
};
var baseConfigPath = (0, path_1.join)("/root", "dir1", "node_modules", "my-package", "base-config.json");
var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "tsconfig.json"), function (path) { return path === firstConfigPath || path === baseConfigPath; }, function (path) {
if (path === firstConfigPath) {
return JSON.stringify(firstConfig);
}
if (path === baseConfigPath) {
return JSON.stringify(baseConfig);
}
return "";
});
// assert.deepEqual(res, {
// extends: "my-package/base-config.json",
// compilerOptions: {
// baseUrl: "kalle",
// paths: { foo: ["bar2"] },
// strict: true,
// },
// });
expect(res).toEqual({
extends: "my-package/base-config.json",
compilerOptions: {
baseUrl: "kalle",
paths: { foo: ["bar2"] },
strict: true,
},
});
});
it("should use baseUrl relative to location of extended tsconfig", function () {
var firstConfig = { compilerOptions: { baseUrl: "." } };
var firstConfigPath = (0, path_1.join)("/root", "first-config.json");
var secondConfig = { extends: "../first-config.json" };
var secondConfigPath = (0, path_1.join)("/root", "dir1", "second-config.json");
var thirdConfig = { extends: "../second-config.json" };
var thirdConfigPath = (0, path_1.join)("/root", "dir1", "dir2", "third-config.json");
var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "dir1", "dir2", "third-config.json"), function (path) {
return path === firstConfigPath ||
path === secondConfigPath ||
path === thirdConfigPath;
}, function (path) {
if (path === firstConfigPath) {
return JSON.stringify(firstConfig);
}
if (path === secondConfigPath) {
return JSON.stringify(secondConfig);
}
if (path === thirdConfigPath) {
return JSON.stringify(thirdConfig);
}
return "";
});
// assert.deepEqual(res, {
// extends: "../second-config.json",
// compilerOptions: { baseUrl: join("..", "..") },
// });
expect(res).toEqual({
extends: "../second-config.json",
compilerOptions: { baseUrl: (0, path_1.join)("..", "..") },
});
});
it("should load a config with array extends and overwrite all options", function () {
var baseConfig1 = {
compilerOptions: { baseUrl: ".", paths: { foo: ["bar"] } },
};
var baseConfig1Path = (0, path_1.join)("/root", "base-config-1.json");
var baseConfig2 = { compilerOptions: { baseUrl: "." } };
var baseConfig2Path = (0, path_1.join)("/root", "dir1", "base-config-2.json");
var baseConfig3 = {
compilerOptions: { baseUrl: ".", paths: { foo: ["bar2"] } },
};
var baseConfig3Path = (0, path_1.join)("/root", "dir1", "dir2", "base-config-3.json");
var actualConfig = {
extends: [
"./base-config-1.json",
"./dir1/base-config-2.json",
"./dir1/dir2/base-config-3.json",
],
};
var actualConfigPath = (0, path_1.join)("/root", "tsconfig.json");
var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "tsconfig.json"), function (path) {
return [
baseConfig1Path,
baseConfig2Path,
baseConfig3Path,
actualConfigPath,
].indexOf(path) >= 0;
}, function (path) {
if (path === baseConfig1Path) {
return JSON.stringify(baseConfig1);
}
if (path === baseConfig2Path) {
return JSON.stringify(baseConfig2);
}
if (path === baseConfig3Path) {
return JSON.stringify(baseConfig3);
}
if (path === actualConfigPath) {
return JSON.stringify(actualConfig);
}
return "";
});
expect(res).toEqual({
extends: [
"./base-config-1.json",
"./dir1/base-config-2.json",
"./dir1/dir2/base-config-3.json",
],
compilerOptions: {
baseUrl: (0, path_1.join)("dir1", "dir2"),
paths: { foo: ["bar2"] },
},
});
});
it("should load a config with array extends without .json extension", function () {
var baseConfig = {
compilerOptions: { baseUrl: ".", paths: { foo: ["bar"] } },
};
var baseConfigPath = (0, path_1.join)("/root", "base-config-1.json");
var actualConfig = { extends: ["./base-config-1"] };
var actualConfigPath = (0, path_1.join)("/root", "tsconfig.json");
var res = (0, tsconfig_loader_1.loadTsconfig)((0, path_1.join)("/root", "tsconfig.json"), function (path) { return [baseConfigPath, actualConfigPath].indexOf(path) >= 0; }, function (path) {
if (path === baseConfigPath) {
return JSON.stringify(baseConfig);
}
if (path === actualConfigPath) {
return JSON.stringify(actualConfig);
}
return "";
});
expect(res).toEqual({
extends: ["./base-config-1"],
compilerOptions: {
baseUrl: ".",
paths: { foo: ["bar"] },
},
});
});
});
//# sourceMappingURL=tsconfig-loader.test.js.map

File diff suppressed because one or more lines are too long