@trigger.dev/build 4.5.8 → 4.5.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/extensions/internal/loadTypescript.d.ts +2 -0
- package/dist/commonjs/extensions/internal/loadTypescript.js +62 -0
- package/dist/commonjs/extensions/internal/loadTypescript.js.map +1 -0
- package/dist/commonjs/extensions/internal/loadTypescript.test.d.ts +1 -0
- package/dist/commonjs/extensions/internal/loadTypescript.test.js +98 -0
- package/dist/commonjs/extensions/internal/loadTypescript.test.js.map +1 -0
- package/dist/commonjs/extensions/typescript.js +9 -10
- package/dist/commonjs/extensions/typescript.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/extensions/internal/loadTypescript.d.ts +2 -0
- package/dist/esm/extensions/internal/loadTypescript.js +59 -0
- package/dist/esm/extensions/internal/loadTypescript.js.map +1 -0
- package/dist/esm/extensions/internal/loadTypescript.test.d.ts +1 -0
- package/dist/esm/extensions/internal/loadTypescript.test.js +96 -0
- package/dist/esm/extensions/internal/loadTypescript.test.js.map +1 -0
- package/dist/esm/extensions/typescript.js +9 -7
- package/dist/esm/extensions/typescript.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +20 -4
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadTypescript = loadTypescript;
|
|
4
|
+
const node_module_1 = require("node:module");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const compilerPackages = ["typescript", "@typescript/typescript6"];
|
|
7
|
+
function hasTranspileModule(value) {
|
|
8
|
+
return (typeof value === "object" &&
|
|
9
|
+
value !== null &&
|
|
10
|
+
"transpileModule" in value &&
|
|
11
|
+
typeof value.transpileModule === "function");
|
|
12
|
+
}
|
|
13
|
+
function isUnavailablePackage(error) {
|
|
14
|
+
return (error instanceof Error &&
|
|
15
|
+
"code" in error &&
|
|
16
|
+
(error.code === "MODULE_NOT_FOUND" || error.code === "ERR_PACKAGE_PATH_NOT_EXPORTED"));
|
|
17
|
+
}
|
|
18
|
+
function loadTypescript(projectDir, packageNames = compilerPackages) {
|
|
19
|
+
const requireFromProject = (0, node_module_1.createRequire)((0, node_path_1.join)(projectDir, "package.json"));
|
|
20
|
+
const loadErrors = [];
|
|
21
|
+
for (const packageName of packageNames) {
|
|
22
|
+
let resolvedPackage;
|
|
23
|
+
try {
|
|
24
|
+
resolvedPackage = requireFromProject.resolve(packageName);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (isUnavailablePackage(error)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
let compiler;
|
|
33
|
+
try {
|
|
34
|
+
compiler = requireFromProject(resolvedPackage);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
loadErrors.push(new Error(`Failed to load "${packageName}" from ${projectDir}.`, { cause: error }));
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
if (hasTranspileModule(compiler)) {
|
|
41
|
+
return compiler;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (loadErrors.length === 1) {
|
|
45
|
+
throw loadErrors[0];
|
|
46
|
+
}
|
|
47
|
+
if (loadErrors.length > 1) {
|
|
48
|
+
throw new AggregateError(loadErrors, `Failed to load a compatible TypeScript compiler from ${projectDir}.`);
|
|
49
|
+
}
|
|
50
|
+
throw new Error([
|
|
51
|
+
"The emitDecoratorMetadata() build extension requires the TypeScript JavaScript compiler API,",
|
|
52
|
+
"which TypeScript 7 does not expose.",
|
|
53
|
+
"",
|
|
54
|
+
"Install the TypeScript 6 compatibility package alongside TypeScript 7:",
|
|
55
|
+
"",
|
|
56
|
+
" npm install --save-dev @typescript/typescript6",
|
|
57
|
+
"",
|
|
58
|
+
"Restart the Trigger.dev dev server after installing the package.",
|
|
59
|
+
"See https://trigger.dev/docs/config/extensions/emitDecoratorMetadata#using-with-typescript-7",
|
|
60
|
+
].join("\n"));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=loadTypescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadTypescript.js","sourceRoot":"","sources":["../../../../src/extensions/internal/loadTypescript.ts"],"names":[],"mappings":";;AAwBA,wCA4DC;AApFD,6CAA4C;AAC5C,yCAAiC;AAIjC,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,yBAAyB,CAAU,CAAC;AAE5E,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,iBAAiB,IAAI,KAAK;QAC1B,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,MAAM,IAAI,KAAK;QACf,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,CAAC,CACtF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,UAAkB,EAClB,eAAkC,gBAAgB;IAElD,MAAM,kBAAkB,GAAG,IAAA,2BAAa,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAY,EAAE,CAAC;IAE/B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,eAAuB,CAAC;QAE5B,IAAI,CAAC;YACH,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,QAAiB,CAAC;QAEtB,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CACb,IAAI,KAAK,CAAC,mBAAmB,WAAW,UAAU,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACnF,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CACtB,UAAU,EACV,wDAAwD,UAAU,GAAG,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb;QACE,8FAA8F;QAC9F,qCAAqC;QACrC,EAAE;QACF,wEAAwE;QACxE,EAAE;QACF,kDAAkD;QAClD,EAAE;QACF,kEAAkE;QAClE,8FAA8F;KAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const node_module_1 = require("node:module");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_os_1 = require("node:os");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
8
|
+
const loadTypescript_js_1 = require("./loadTypescript.js");
|
|
9
|
+
const packageRequire = (0, node_module_1.createRequire)((0, node_path_1.join)(process.cwd(), "package.json"));
|
|
10
|
+
const projectDirs = new Set();
|
|
11
|
+
function createProject(packages) {
|
|
12
|
+
const projectDir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), "trigger-typescript-"));
|
|
13
|
+
projectDirs.add(projectDir);
|
|
14
|
+
const nodeModulesDir = (0, node_path_1.join)(projectDir, "node_modules");
|
|
15
|
+
(0, node_fs_1.mkdirSync)(nodeModulesDir);
|
|
16
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(projectDir, "package.json"), JSON.stringify({ private: true }));
|
|
17
|
+
for (const [installedName, sourceName] of Object.entries(packages)) {
|
|
18
|
+
const target = (0, node_path_1.dirname)(packageRequire.resolve(`${sourceName}/package.json`));
|
|
19
|
+
const destination = (0, node_path_1.join)(nodeModulesDir, installedName);
|
|
20
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(destination), { recursive: true });
|
|
21
|
+
(0, node_fs_1.symlinkSync)(target, destination, "junction");
|
|
22
|
+
}
|
|
23
|
+
return projectDir;
|
|
24
|
+
}
|
|
25
|
+
function createBrokenCompiler(projectDir, packageName = "typescript") {
|
|
26
|
+
const packageDir = (0, node_path_1.join)(projectDir, "node_modules", packageName);
|
|
27
|
+
(0, node_fs_1.mkdirSync)(packageDir, { recursive: true });
|
|
28
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(packageDir, "package.json"), JSON.stringify({ name: packageName, main: "index.cjs" }));
|
|
29
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(packageDir, "index.cjs"), 'throw new Error("broken compiler");');
|
|
30
|
+
}
|
|
31
|
+
(0, vitest_1.describe)("loadTypescript", () => {
|
|
32
|
+
(0, vitest_1.afterEach)(() => {
|
|
33
|
+
for (const projectDir of projectDirs) {
|
|
34
|
+
(0, node_fs_1.rmSync)(projectDir, { recursive: true, force: true });
|
|
35
|
+
}
|
|
36
|
+
projectDirs.clear();
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.it)("loads the consumer's TypeScript 5 compiler", () => {
|
|
39
|
+
const compiler = (0, loadTypescript_js_1.loadTypescript)(createProject({ typescript: "typescript5" }));
|
|
40
|
+
(0, vitest_1.expect)(compiler.version).toMatch(/^5\./);
|
|
41
|
+
(0, vitest_1.expect)(typeof compiler.transpileModule).toBe("function");
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)("loads the consumer's TypeScript 6 compiler", () => {
|
|
44
|
+
const compiler = (0, loadTypescript_js_1.loadTypescript)(createProject({ typescript: "typescript" }));
|
|
45
|
+
(0, vitest_1.expect)(compiler.version).toMatch(/^6\./);
|
|
46
|
+
(0, vitest_1.expect)(typeof compiler.transpileModule).toBe("function");
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)("returns an actionable error for TypeScript 7 without the compatibility package", () => {
|
|
49
|
+
const projectDir = createProject({ typescript: "typescript7" });
|
|
50
|
+
const requireFromProject = (0, node_module_1.createRequire)((0, node_path_1.join)(projectDir, "package.json"));
|
|
51
|
+
(0, vitest_1.expect)(typeof requireFromProject("typescript").transpileModule).toBe("undefined");
|
|
52
|
+
(0, vitest_1.expect)(() => (0, loadTypescript_js_1.loadTypescript)(projectDir, ["typescript"])).toThrowError(vitest_1.expect.objectContaining({
|
|
53
|
+
message: vitest_1.expect.stringContaining("npm install --save-dev @typescript/typescript6"),
|
|
54
|
+
}));
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.it)("surfaces errors from an installed compiler package", () => {
|
|
57
|
+
const projectDir = createProject({});
|
|
58
|
+
createBrokenCompiler(projectDir);
|
|
59
|
+
(0, vitest_1.expect)(() => (0, loadTypescript_js_1.loadTypescript)(projectDir, ["typescript"])).toThrowError(`Failed to load "typescript" from ${projectDir}.`);
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.it)("falls back when an earlier compiler package fails to load", () => {
|
|
62
|
+
const projectDir = createProject({
|
|
63
|
+
"@typescript/typescript6": "@typescript/typescript6",
|
|
64
|
+
});
|
|
65
|
+
createBrokenCompiler(projectDir);
|
|
66
|
+
const compiler = (0, loadTypescript_js_1.loadTypescript)(projectDir);
|
|
67
|
+
(0, vitest_1.expect)(compiler.version).toMatch(/^6\./);
|
|
68
|
+
(0, vitest_1.expect)(typeof compiler.transpileModule).toBe("function");
|
|
69
|
+
});
|
|
70
|
+
(0, vitest_1.it)("falls back to the TypeScript 6 compatibility package for TypeScript 7", () => {
|
|
71
|
+
const compiler = (0, loadTypescript_js_1.loadTypescript)(createProject({
|
|
72
|
+
typescript: "typescript7",
|
|
73
|
+
"@typescript/typescript6": "@typescript/typescript6",
|
|
74
|
+
}));
|
|
75
|
+
const output = compiler.transpileModule(`
|
|
76
|
+
class Dependency {}
|
|
77
|
+
function injectable<T extends new (...args: any[]) => object>(target: T) {}
|
|
78
|
+
|
|
79
|
+
@injectable
|
|
80
|
+
class Service {
|
|
81
|
+
constructor(public dependency: Dependency) {}
|
|
82
|
+
}
|
|
83
|
+
`, {
|
|
84
|
+
compilerOptions: {
|
|
85
|
+
experimentalDecorators: true,
|
|
86
|
+
emitDecoratorMetadata: true,
|
|
87
|
+
},
|
|
88
|
+
}).outputText;
|
|
89
|
+
(0, vitest_1.expect)(compiler.version).toMatch(/^6\./);
|
|
90
|
+
(0, vitest_1.expect)(output).toContain('__metadata("design:paramtypes", [Dependency])');
|
|
91
|
+
});
|
|
92
|
+
(0, vitest_1.it)("supports aliasing TypeScript to the compatibility package", () => {
|
|
93
|
+
const compiler = (0, loadTypescript_js_1.loadTypescript)(createProject({ typescript: "@typescript/typescript6" }));
|
|
94
|
+
(0, vitest_1.expect)(compiler.version).toMatch(/^6\./);
|
|
95
|
+
(0, vitest_1.expect)(typeof compiler.transpileModule).toBe("function");
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=loadTypescript.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadTypescript.test.js","sourceRoot":"","sources":["../../../../src/extensions/internal/loadTypescript.test.ts"],"names":[],"mappings":";;AAAA,6CAA4C;AAC5C,qCAAqF;AACrF,qCAAiC;AACjC,yCAA0C;AAC1C,mCAAyD;AACzD,2DAAqD;AAErD,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAC1E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AAEtC,SAAS,aAAa,CAAC,QAAgC;IACrD,MAAM,UAAU,GAAG,IAAA,qBAAW,EAAC,IAAA,gBAAI,EAAC,IAAA,gBAAM,GAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACtE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAExD,IAAA,mBAAS,EAAC,cAAc,CAAC,CAAC;IAC1B,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnF,KAAK,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,cAAc,CAAC,OAAO,CAAC,GAAG,UAAU,eAAe,CAAC,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAExD,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,IAAA,qBAAW,EAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,WAAW,GAAG,YAAY;IAC1E,MAAM,UAAU,GAAG,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAEjE,IAAA,mBAAS,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAA,uBAAa,EACX,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CACzD,CAAC;IACF,IAAA,uBAAa,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,qCAAqC,CAAC,CAAC;AACtF,CAAC;AAED,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAA,gBAAM,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,aAAa,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAE9E,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,aAAa,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAE7E,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,IAAA,2BAAa,EAAC,IAAA,gBAAI,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;QAE3E,IAAA,eAAM,EAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,kCAAc,EAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CACnE,eAAM,CAAC,gBAAgB,CAAC;YACtB,OAAO,EAAE,eAAM,CAAC,gBAAgB,CAAC,gDAAgD,CAAC;SACnF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QACrC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,IAAA,kCAAc,EAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CACnE,oCAAoC,UAAU,GAAG,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,yBAAyB,EAAE,yBAAyB;SACrD,CAAC,CAAC;QACH,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,UAAU,CAAC,CAAC;QAE5C,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAC7B,aAAa,CAAC;YACZ,UAAU,EAAE,aAAa;YACzB,yBAAyB,EAAE,yBAAyB;SACrD,CAAC,CACH,CAAC;QAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CACrC;;;;;;;;OAQC,EACD;YACE,eAAe,EAAE;gBACf,sBAAsB,EAAE,IAAI;gBAC5B,qBAAqB,EAAE,IAAI;aAC5B;SACF,CACF,CAAC,UAAU,CAAC;QAEb,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAA,kCAAc,EAAC,aAAa,CAAC,EAAE,UAAU,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;QAE1F,IAAA,eAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.emitDecoratorMetadata = emitDecoratorMetadata;
|
|
7
4
|
const promises_1 = require("node:fs/promises");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const loadTypescript_js_1 = require("./internal/loadTypescript.js");
|
|
10
7
|
const decoratorMatcher = new RegExp(/((?<![(\s]\s*['"])@\w[.[\]\w\d]*\s*(?![;])[((?=\s)])/);
|
|
11
8
|
function emitDecoratorMetadata() {
|
|
12
9
|
return {
|
|
13
10
|
name: "emitDecoratorMetadata",
|
|
14
11
|
onBuildStart(context) {
|
|
12
|
+
const { convertCompilerOptionsFromJson, transpileModule, ModuleKind } = (0, loadTypescript_js_1.loadTypescript)(context.workingDir);
|
|
15
13
|
context.registerPlugin({
|
|
16
14
|
name: "emitDecoratorMetadata",
|
|
17
15
|
async setup(build) {
|
|
18
|
-
const {
|
|
16
|
+
const { parse, TSConfckCache } = await import("tsconfck");
|
|
19
17
|
const cache = new TSConfckCache();
|
|
20
18
|
build.onLoad({ filter: /\.ts$/ }, async (args) => {
|
|
21
19
|
context.logger.debug("emitDecoratorMetadata onLoad", { args });
|
|
22
|
-
const { tsconfigFile, tsconfig } = await
|
|
20
|
+
const { tsconfigFile, tsconfig } = await parse(args.path, {
|
|
23
21
|
ignoreNodeModules: true,
|
|
24
22
|
cache,
|
|
25
23
|
});
|
|
26
|
-
|
|
24
|
+
const { options: compilerOptions } = convertCompilerOptionsFromJson(tsconfig.compilerOptions ?? {}, tsconfigFile ? (0, node_path_1.dirname)(tsconfigFile) : context.workingDir);
|
|
25
|
+
context.logger.debug("emitDecoratorMetadata parsed tsconfig", {
|
|
27
26
|
tsconfig,
|
|
28
27
|
tsconfigFile,
|
|
29
28
|
args,
|
|
30
29
|
});
|
|
31
|
-
if (
|
|
30
|
+
if (compilerOptions.emitDecoratorMetadata !== true) {
|
|
32
31
|
context.logger.debug("emitDecoratorMetadata skipping", {
|
|
33
32
|
args,
|
|
34
33
|
tsconfig,
|
|
@@ -48,7 +47,7 @@ function emitDecoratorMetadata() {
|
|
|
48
47
|
const program = transpileModule(ts, {
|
|
49
48
|
fileName: args.path,
|
|
50
49
|
compilerOptions: {
|
|
51
|
-
...
|
|
50
|
+
...compilerOptions,
|
|
52
51
|
module: ModuleKind.ES2022,
|
|
53
52
|
},
|
|
54
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/extensions/typescript.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/extensions/typescript.ts"],"names":[],"mappings":";;AAOA,sDAoEC;AA1ED,+CAA4C;AAC5C,yCAAoC;AACpC,oEAA8D;AAE9D,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,sDAAsD,CAAC,CAAC;AAE5F,SAAgB,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,YAAY,CAAC,OAAO;YAClB,MAAM,EAAE,8BAA8B,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,IAAA,kCAAc,EACpF,OAAO,CAAC,UAAU,CACnB,CAAC;YAEF,OAAO,CAAC,cAAc,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,CAAC,KAAK,CAAC,KAAK;oBACf,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1D,MAAM,KAAK,GAAG,IAAI,aAAa,EAAO,CAAC;oBAEvC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAE/D,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;4BACxD,iBAAiB,EAAE,IAAI;4BACvB,KAAK;yBACN,CAAC,CAAC;wBACH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,8BAA8B,CACjE,QAAQ,CAAC,eAAe,IAAI,EAAE,EAC9B,YAAY,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAC1D,CAAC;wBAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;4BAC5D,QAAQ;4BACR,YAAY;4BACZ,IAAI;yBACL,CAAC,CAAC;wBAEH,IAAI,eAAe,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;4BACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gCACrD,IAAI;gCACJ,QAAQ;6BACT,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAE7C,IAAI,CAAC,EAAE;4BAAE,OAAO,SAAS,CAAC;wBAE1B,wDAAwD;wBACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;gCAC1E,IAAI;6BACL,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,EAAE;4BAClC,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,eAAe,EAAE;gCACf,GAAG,eAAe;gCAClB,MAAM,EAAE,UAAU,CAAC,MAAM;6BAC1B;yBACF,CAAC,CAAC;wBAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC1C,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
const compilerPackages = ["typescript", "@typescript/typescript6"];
|
|
4
|
+
function hasTranspileModule(value) {
|
|
5
|
+
return (typeof value === "object" &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
"transpileModule" in value &&
|
|
8
|
+
typeof value.transpileModule === "function");
|
|
9
|
+
}
|
|
10
|
+
function isUnavailablePackage(error) {
|
|
11
|
+
return (error instanceof Error &&
|
|
12
|
+
"code" in error &&
|
|
13
|
+
(error.code === "MODULE_NOT_FOUND" || error.code === "ERR_PACKAGE_PATH_NOT_EXPORTED"));
|
|
14
|
+
}
|
|
15
|
+
export function loadTypescript(projectDir, packageNames = compilerPackages) {
|
|
16
|
+
const requireFromProject = createRequire(join(projectDir, "package.json"));
|
|
17
|
+
const loadErrors = [];
|
|
18
|
+
for (const packageName of packageNames) {
|
|
19
|
+
let resolvedPackage;
|
|
20
|
+
try {
|
|
21
|
+
resolvedPackage = requireFromProject.resolve(packageName);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (isUnavailablePackage(error)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
let compiler;
|
|
30
|
+
try {
|
|
31
|
+
compiler = requireFromProject(resolvedPackage);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
loadErrors.push(new Error(`Failed to load "${packageName}" from ${projectDir}.`, { cause: error }));
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (hasTranspileModule(compiler)) {
|
|
38
|
+
return compiler;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (loadErrors.length === 1) {
|
|
42
|
+
throw loadErrors[0];
|
|
43
|
+
}
|
|
44
|
+
if (loadErrors.length > 1) {
|
|
45
|
+
throw new AggregateError(loadErrors, `Failed to load a compatible TypeScript compiler from ${projectDir}.`);
|
|
46
|
+
}
|
|
47
|
+
throw new Error([
|
|
48
|
+
"The emitDecoratorMetadata() build extension requires the TypeScript JavaScript compiler API,",
|
|
49
|
+
"which TypeScript 7 does not expose.",
|
|
50
|
+
"",
|
|
51
|
+
"Install the TypeScript 6 compatibility package alongside TypeScript 7:",
|
|
52
|
+
"",
|
|
53
|
+
" npm install --save-dev @typescript/typescript6",
|
|
54
|
+
"",
|
|
55
|
+
"Restart the Trigger.dev dev server after installing the package.",
|
|
56
|
+
"See https://trigger.dev/docs/config/extensions/emitDecoratorMetadata#using-with-typescript-7",
|
|
57
|
+
].join("\n"));
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=loadTypescript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadTypescript.js","sourceRoot":"","sources":["../../../../src/extensions/internal/loadTypescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,yBAAyB,CAAU,CAAC;AAE5E,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,iBAAiB,IAAI,KAAK;QAC1B,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,CAC5C,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,MAAM,IAAI,KAAK;QACf,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,+BAA+B,CAAC,CACtF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,UAAkB,EAClB,eAAkC,gBAAgB;IAElD,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAY,EAAE,CAAC;IAE/B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,eAAuB,CAAC;QAE5B,IAAI,CAAC;YACH,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,QAAiB,CAAC;QAEtB,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CACb,IAAI,KAAK,CAAC,mBAAmB,WAAW,UAAU,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACnF,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,cAAc,CACtB,UAAU,EACV,wDAAwD,UAAU,GAAG,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb;QACE,8FAA8F;QAC9F,qCAAqC;QACrC,EAAE;QACF,wEAAwE;QACxE,EAAE;QACF,kDAAkD;QAClD,EAAE;QACF,kEAAkE;QAClE,8FAA8F;KAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
import { mkdtempSync, mkdirSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { dirname, join } from "node:path";
|
|
5
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { loadTypescript } from "./loadTypescript.js";
|
|
7
|
+
const packageRequire = createRequire(join(process.cwd(), "package.json"));
|
|
8
|
+
const projectDirs = new Set();
|
|
9
|
+
function createProject(packages) {
|
|
10
|
+
const projectDir = mkdtempSync(join(tmpdir(), "trigger-typescript-"));
|
|
11
|
+
projectDirs.add(projectDir);
|
|
12
|
+
const nodeModulesDir = join(projectDir, "node_modules");
|
|
13
|
+
mkdirSync(nodeModulesDir);
|
|
14
|
+
writeFileSync(join(projectDir, "package.json"), JSON.stringify({ private: true }));
|
|
15
|
+
for (const [installedName, sourceName] of Object.entries(packages)) {
|
|
16
|
+
const target = dirname(packageRequire.resolve(`${sourceName}/package.json`));
|
|
17
|
+
const destination = join(nodeModulesDir, installedName);
|
|
18
|
+
mkdirSync(dirname(destination), { recursive: true });
|
|
19
|
+
symlinkSync(target, destination, "junction");
|
|
20
|
+
}
|
|
21
|
+
return projectDir;
|
|
22
|
+
}
|
|
23
|
+
function createBrokenCompiler(projectDir, packageName = "typescript") {
|
|
24
|
+
const packageDir = join(projectDir, "node_modules", packageName);
|
|
25
|
+
mkdirSync(packageDir, { recursive: true });
|
|
26
|
+
writeFileSync(join(packageDir, "package.json"), JSON.stringify({ name: packageName, main: "index.cjs" }));
|
|
27
|
+
writeFileSync(join(packageDir, "index.cjs"), 'throw new Error("broken compiler");');
|
|
28
|
+
}
|
|
29
|
+
describe("loadTypescript", () => {
|
|
30
|
+
afterEach(() => {
|
|
31
|
+
for (const projectDir of projectDirs) {
|
|
32
|
+
rmSync(projectDir, { recursive: true, force: true });
|
|
33
|
+
}
|
|
34
|
+
projectDirs.clear();
|
|
35
|
+
});
|
|
36
|
+
it("loads the consumer's TypeScript 5 compiler", () => {
|
|
37
|
+
const compiler = loadTypescript(createProject({ typescript: "typescript5" }));
|
|
38
|
+
expect(compiler.version).toMatch(/^5\./);
|
|
39
|
+
expect(typeof compiler.transpileModule).toBe("function");
|
|
40
|
+
});
|
|
41
|
+
it("loads the consumer's TypeScript 6 compiler", () => {
|
|
42
|
+
const compiler = loadTypescript(createProject({ typescript: "typescript" }));
|
|
43
|
+
expect(compiler.version).toMatch(/^6\./);
|
|
44
|
+
expect(typeof compiler.transpileModule).toBe("function");
|
|
45
|
+
});
|
|
46
|
+
it("returns an actionable error for TypeScript 7 without the compatibility package", () => {
|
|
47
|
+
const projectDir = createProject({ typescript: "typescript7" });
|
|
48
|
+
const requireFromProject = createRequire(join(projectDir, "package.json"));
|
|
49
|
+
expect(typeof requireFromProject("typescript").transpileModule).toBe("undefined");
|
|
50
|
+
expect(() => loadTypescript(projectDir, ["typescript"])).toThrowError(expect.objectContaining({
|
|
51
|
+
message: expect.stringContaining("npm install --save-dev @typescript/typescript6"),
|
|
52
|
+
}));
|
|
53
|
+
});
|
|
54
|
+
it("surfaces errors from an installed compiler package", () => {
|
|
55
|
+
const projectDir = createProject({});
|
|
56
|
+
createBrokenCompiler(projectDir);
|
|
57
|
+
expect(() => loadTypescript(projectDir, ["typescript"])).toThrowError(`Failed to load "typescript" from ${projectDir}.`);
|
|
58
|
+
});
|
|
59
|
+
it("falls back when an earlier compiler package fails to load", () => {
|
|
60
|
+
const projectDir = createProject({
|
|
61
|
+
"@typescript/typescript6": "@typescript/typescript6",
|
|
62
|
+
});
|
|
63
|
+
createBrokenCompiler(projectDir);
|
|
64
|
+
const compiler = loadTypescript(projectDir);
|
|
65
|
+
expect(compiler.version).toMatch(/^6\./);
|
|
66
|
+
expect(typeof compiler.transpileModule).toBe("function");
|
|
67
|
+
});
|
|
68
|
+
it("falls back to the TypeScript 6 compatibility package for TypeScript 7", () => {
|
|
69
|
+
const compiler = loadTypescript(createProject({
|
|
70
|
+
typescript: "typescript7",
|
|
71
|
+
"@typescript/typescript6": "@typescript/typescript6",
|
|
72
|
+
}));
|
|
73
|
+
const output = compiler.transpileModule(`
|
|
74
|
+
class Dependency {}
|
|
75
|
+
function injectable<T extends new (...args: any[]) => object>(target: T) {}
|
|
76
|
+
|
|
77
|
+
@injectable
|
|
78
|
+
class Service {
|
|
79
|
+
constructor(public dependency: Dependency) {}
|
|
80
|
+
}
|
|
81
|
+
`, {
|
|
82
|
+
compilerOptions: {
|
|
83
|
+
experimentalDecorators: true,
|
|
84
|
+
emitDecoratorMetadata: true,
|
|
85
|
+
},
|
|
86
|
+
}).outputText;
|
|
87
|
+
expect(compiler.version).toMatch(/^6\./);
|
|
88
|
+
expect(output).toContain('__metadata("design:paramtypes", [Dependency])');
|
|
89
|
+
});
|
|
90
|
+
it("supports aliasing TypeScript to the compatibility package", () => {
|
|
91
|
+
const compiler = loadTypescript(createProject({ typescript: "@typescript/typescript6" }));
|
|
92
|
+
expect(compiler.version).toMatch(/^6\./);
|
|
93
|
+
expect(typeof compiler.transpileModule).toBe("function");
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=loadTypescript.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadTypescript.test.js","sourceRoot":"","sources":["../../../../src/extensions/internal/loadTypescript.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import
|
|
3
|
-
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { loadTypescript } from "./internal/loadTypescript.js";
|
|
4
4
|
const decoratorMatcher = new RegExp(/((?<![(\s]\s*['"])@\w[.[\]\w\d]*\s*(?![;])[((?=\s)])/);
|
|
5
5
|
export function emitDecoratorMetadata() {
|
|
6
6
|
return {
|
|
7
7
|
name: "emitDecoratorMetadata",
|
|
8
8
|
onBuildStart(context) {
|
|
9
|
+
const { convertCompilerOptionsFromJson, transpileModule, ModuleKind } = loadTypescript(context.workingDir);
|
|
9
10
|
context.registerPlugin({
|
|
10
11
|
name: "emitDecoratorMetadata",
|
|
11
12
|
async setup(build) {
|
|
12
|
-
const {
|
|
13
|
+
const { parse, TSConfckCache } = await import("tsconfck");
|
|
13
14
|
const cache = new TSConfckCache();
|
|
14
15
|
build.onLoad({ filter: /\.ts$/ }, async (args) => {
|
|
15
16
|
context.logger.debug("emitDecoratorMetadata onLoad", { args });
|
|
16
|
-
const { tsconfigFile, tsconfig } = await
|
|
17
|
+
const { tsconfigFile, tsconfig } = await parse(args.path, {
|
|
17
18
|
ignoreNodeModules: true,
|
|
18
19
|
cache,
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
+
const { options: compilerOptions } = convertCompilerOptionsFromJson(tsconfig.compilerOptions ?? {}, tsconfigFile ? dirname(tsconfigFile) : context.workingDir);
|
|
22
|
+
context.logger.debug("emitDecoratorMetadata parsed tsconfig", {
|
|
21
23
|
tsconfig,
|
|
22
24
|
tsconfigFile,
|
|
23
25
|
args,
|
|
24
26
|
});
|
|
25
|
-
if (
|
|
27
|
+
if (compilerOptions.emitDecoratorMetadata !== true) {
|
|
26
28
|
context.logger.debug("emitDecoratorMetadata skipping", {
|
|
27
29
|
args,
|
|
28
30
|
tsconfig,
|
|
@@ -42,7 +44,7 @@ export function emitDecoratorMetadata() {
|
|
|
42
44
|
const program = transpileModule(ts, {
|
|
43
45
|
fileName: args.path,
|
|
44
46
|
compilerOptions: {
|
|
45
|
-
...
|
|
47
|
+
...compilerOptions,
|
|
46
48
|
module: ModuleKind.ES2022,
|
|
47
49
|
},
|
|
48
50
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/extensions/typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/extensions/typescript.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,gBAAgB,GAAG,IAAI,MAAM,CAAC,sDAAsD,CAAC,CAAC;AAE5F,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,YAAY,CAAC,OAAO;YAClB,MAAM,EAAE,8BAA8B,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,cAAc,CACpF,OAAO,CAAC,UAAU,CACnB,CAAC;YAEF,OAAO,CAAC,cAAc,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,CAAC,KAAK,CAAC,KAAK;oBACf,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1D,MAAM,KAAK,GAAG,IAAI,aAAa,EAAO,CAAC;oBAEvC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;wBAE/D,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;4BACxD,iBAAiB,EAAE,IAAI;4BACvB,KAAK;yBACN,CAAC,CAAC;wBACH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,8BAA8B,CACjE,QAAQ,CAAC,eAAe,IAAI,EAAE,EAC9B,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAC1D,CAAC;wBAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;4BAC5D,QAAQ;4BACR,YAAY;4BACZ,IAAI;yBACL,CAAC,CAAC;wBAEH,IAAI,eAAe,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;4BACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE;gCACrD,IAAI;gCACJ,QAAQ;6BACT,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBAE7C,IAAI,CAAC,EAAE;4BAAE,OAAO,SAAS,CAAC;wBAE1B,wDAAwD;wBACxD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;4BAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qDAAqD,EAAE;gCAC1E,IAAI;6BACL,CAAC,CAAC;4BAEH,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,OAAO,GAAG,eAAe,CAAC,EAAE,EAAE;4BAClC,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,eAAe,EAAE;gCACf,GAAG,eAAe;gCAClB,MAAM,EAAE,UAAU,CAAC,MAAM;6BAC1B;yBACF,CAAC,CAAC;wBAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC1C,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "4.5.
|
|
1
|
+
export const VERSION = "4.5.10";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trigger.dev/build",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.10",
|
|
4
4
|
"description": "trigger.dev build extensions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@prisma/config": "^6.10.0",
|
|
73
|
-
"@trigger.dev/core": "4.5.
|
|
73
|
+
"@trigger.dev/core": "4.5.10",
|
|
74
74
|
"mlly": "^1.7.1",
|
|
75
75
|
"pkg-types": "^1.1.3",
|
|
76
76
|
"resolve": "^1.22.8",
|
|
@@ -80,10 +80,26 @@
|
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@arethetypeswrong/cli": "^0.18.5",
|
|
82
82
|
"@types/resolve": "^1.20.6",
|
|
83
|
+
"@typescript/typescript6": "6.0.2",
|
|
83
84
|
"esbuild": "^0.23.0",
|
|
84
85
|
"rimraf": "6.0.1",
|
|
85
|
-
"tshy": "^
|
|
86
|
-
"tsx": "4.17.0"
|
|
86
|
+
"tshy": "^4.1.3",
|
|
87
|
+
"tsx": "4.17.0",
|
|
88
|
+
"typescript": "6.0.3",
|
|
89
|
+
"typescript5": "npm:typescript@5.9.3",
|
|
90
|
+
"typescript7": "npm:typescript@7.0.2"
|
|
91
|
+
},
|
|
92
|
+
"peerDependencies": {
|
|
93
|
+
"@typescript/typescript6": "^6.0.0",
|
|
94
|
+
"typescript": ">=5.0.0"
|
|
95
|
+
},
|
|
96
|
+
"peerDependenciesMeta": {
|
|
97
|
+
"@typescript/typescript6": {
|
|
98
|
+
"optional": true
|
|
99
|
+
},
|
|
100
|
+
"typescript": {
|
|
101
|
+
"optional": true
|
|
102
|
+
}
|
|
87
103
|
},
|
|
88
104
|
"engines": {
|
|
89
105
|
"node": ">=18.20.0"
|