@decohere/forge 0.0.1-dev.64 → 0.0.1-dev.65
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/commonjs/src/factories/swc-config.factory.js +13 -19
- package/es6/src/factories/swc-config.factory.js +13 -19
- package/package.json +5 -5
- package/types/src/factories/swc-config.factory.d.ts +1 -6
- package/commonjs/src/workspace-package-aliases.js +0 -65
- package/es6/src/workspace-package-aliases.js +0 -43
- package/types/src/workspace-package-aliases.d.ts +0 -10
|
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "SwcConfigFactory", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
12
|
+
const _mesh = require("@decohere/mesh");
|
|
12
13
|
const _diagnostics = require("@decohere/nexus/diagnostics");
|
|
13
14
|
const _objects = require("@decohere/nexus/objects");
|
|
14
15
|
const _errors = require("../errors.js");
|
|
15
|
-
const _workspacepackagealiases = require("../workspace-package-aliases.js");
|
|
16
16
|
function _interop_require_default(obj) {
|
|
17
17
|
return obj && obj.__esModule ? obj : {
|
|
18
18
|
default: obj
|
|
@@ -50,8 +50,13 @@ class SwcConfigFactory {
|
|
|
50
50
|
*/ createBaseConfig(buildTarget, configOptions) {
|
|
51
51
|
const { userConfig, tsConfig, aliasPaths, workspace, projects } = configOptions;
|
|
52
52
|
const { compilerOptions } = tsConfig ?? {};
|
|
53
|
-
const
|
|
54
|
-
|
|
53
|
+
const aliases = aliasPaths ? workspace != null ? workspace.getPackageAliases(projects?.[0]?.configuration.name ?? "debug") : projects != null && projects.length > 0 ? _mesh.packageAliases.build(projects, {
|
|
54
|
+
baseUrl: SwcConfigFactory.getBaseUrl(tsConfig) ?? _nodepath.default.resolve(projects[0].rootDir),
|
|
55
|
+
tsconfigPaths: compilerOptions?.paths
|
|
56
|
+
}) : undefined : undefined;
|
|
57
|
+
const tsconfigOnlyPaths = aliasPaths && aliases == null ? compilerOptions?.paths : undefined;
|
|
58
|
+
const paths = SwcConfigFactory.nonemptyPaths(aliases?.paths ?? tsconfigOnlyPaths);
|
|
59
|
+
const baseUrl = aliases?.baseUrl ?? SwcConfigFactory.getBaseUrl(tsConfig) ?? (workspace != null ? _nodepath.default.resolve(workspace.rootDir) : undefined) ?? (paths != null ? _nodepath.default.resolve(".") : undefined);
|
|
55
60
|
const options = {
|
|
56
61
|
jsc: {
|
|
57
62
|
baseUrl,
|
|
@@ -73,6 +78,10 @@ class SwcConfigFactory {
|
|
|
73
78
|
this.validate(config);
|
|
74
79
|
return config;
|
|
75
80
|
}
|
|
81
|
+
static nonemptyPaths(paths) {
|
|
82
|
+
if (paths == null || Object.keys(paths).length === 0) return undefined;
|
|
83
|
+
return paths;
|
|
84
|
+
}
|
|
76
85
|
/**
|
|
77
86
|
* Validates SWC options against known causes of Rust/NAPI process crashes.
|
|
78
87
|
* Throws a ForgeError with a descriptive message instead of letting the
|
|
@@ -86,21 +95,6 @@ class SwcConfigFactory {
|
|
|
86
95
|
throw new _errors.ForgeError(`SWC config: jsc.baseUrl must be an absolute path to avoid a process crash, got: "${baseUrl}". Use path.resolve() to convert it.`);
|
|
87
96
|
}
|
|
88
97
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Convention aliases from workspace packages, then `tsconfig` `paths` overrides.
|
|
91
|
-
* Empty maps are omitted so SWC is not given a useless `jsc.paths`.
|
|
92
|
-
*/ buildAliasPaths(tsconfigPaths, workspace, projects, baseUrl) {
|
|
93
|
-
const resolvedBase = baseUrl ?? _nodepath.default.resolve(".");
|
|
94
|
-
const convention = (0, _workspacepackagealiases.buildWorkspaceAliasPaths)((0, _workspacepackagealiases.resolveAliasProjects)(workspace, projects), resolvedBase);
|
|
95
|
-
const merged = (0, _workspacepackagealiases.mergeAliasPaths)(convention, tsconfigPaths);
|
|
96
|
-
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
97
|
-
}
|
|
98
|
-
resolveAliasBaseUrl(tsConfig, workspace) {
|
|
99
|
-
const fromTs = SwcConfigFactory.getBaseUrl(tsConfig);
|
|
100
|
-
if (fromTs != null) return fromTs;
|
|
101
|
-
if (workspace != null) return _nodepath.default.resolve(workspace.rootDir);
|
|
102
|
-
return undefined;
|
|
103
|
-
}
|
|
104
98
|
/** Resolves tsconfig baseUrl to an absolute path. Returns undefined if not set. */ static getBaseUrl(tsConfig) {
|
|
105
99
|
const baseUrl = tsConfig?.compilerOptions?.baseUrl;
|
|
106
100
|
if (baseUrl == null) return undefined;
|
|
@@ -111,4 +105,4 @@ SwcConfigFactory = _ts_decorate([
|
|
|
111
105
|
_diagnostics.Trace
|
|
112
106
|
], SwcConfigFactory);
|
|
113
107
|
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9mYWN0b3JpZXMvc3djLWNvbmZpZy5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHBhY2thZ2VBbGlhc2VzLCB0eXBlIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL29iamVjdHNcIjtcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyB9IGZyb20gXCJAc3djL2NvcmVcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zcGlsZVRhcmdldCB9IGZyb20gXCIuLi90eXBlcy9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTd2NDb25maWdPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzL3N3Yy1jb25maWcudHlwZS5qc1wiO1xuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcblx0anNjOiB7XG5cdFx0cGFyc2VyOiB7XG5cdFx0XHRzeW50YXg6IFwidHlwZXNjcmlwdFwiLFxuXHRcdFx0ZGVjb3JhdG9yczogdHJ1ZSxcblx0XHR9LFxuXHRcdHRhcmdldDogXCJlc25leHRcIixcblx0XHR0cmFuc2Zvcm06IHtcblx0XHRcdGRlY29yYXRvck1ldGFkYXRhOiB0cnVlLFxuXHRcdH0sXG5cdFx0ZXhwZXJpbWVudGFsOiB7IGtlZXBJbXBvcnRBdHRyaWJ1dGVzOiB0cnVlIH0sXG5cdH0sXG5cdG1vZHVsZToge1xuXHRcdHJlc29sdmVGdWxseTogdHJ1ZSxcblx0fSxcblx0c291cmNlTWFwczogXCJpbmxpbmVcIixcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZ0ZhY3Rvcnkge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIGJhc2UgY29uZmlnIGZvciBhIHByb2plY3QrdGFyZ2V0IGNvbWJpbmF0aW9uLCB3aXRob3V0IGEgZmlsZW5hbWUuXG5cdCAqIENhbGwgb25jZSBwZXIgKHByb2plY3QsIHRhcmdldCkgYW5kIHRoZW4gdXNlIGNyZWF0ZUZpbGVDb25maWcoKSBwZXIgZmlsZS5cblx0ICovXG5cdHB1YmxpYyBjcmVhdGVCYXNlQ29uZmlnKFxuXHRcdGJ1aWxkVGFyZ2V0OiBUcmFuc3BpbGVUYXJnZXQsXG5cdFx0Y29uZmlnT3B0aW9uczogU3djQ29uZmlnT3B0aW9ucyxcblx0KTogT3B0aW9ucyB7XG5cdFx0Y29uc3QgeyB1c2VyQ29uZmlnLCB0c0NvbmZpZywgYWxpYXNQYXRocywgd29ya3NwYWNlLCBwcm9qZWN0cyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCB7IGNvbXBpbGVyT3B0aW9ucyB9ID0gdHNDb25maWcgPz8ge307XG5cdFx0Y29uc3QgYWxpYXNlcyA9IGFsaWFzUGF0aHNcblx0XHRcdD8gd29ya3NwYWNlICE9IG51bGxcblx0XHRcdFx0PyB3b3Jrc3BhY2UuZ2V0UGFja2FnZUFsaWFzZXMocHJvamVjdHM/LlswXT8uY29uZmlndXJhdGlvbi5uYW1lID8/IFwiZGVidWdcIilcblx0XHRcdFx0OiBwcm9qZWN0cyAhPSBudWxsICYmIHByb2plY3RzLmxlbmd0aCA+IDBcblx0XHRcdFx0XHQ/IHBhY2thZ2VBbGlhc2VzLmJ1aWxkKHByb2plY3RzLCB7XG5cdFx0XHRcdFx0XHRcdGJhc2VVcmw6XG5cdFx0XHRcdFx0XHRcdFx0U3djQ29uZmlnRmFjdG9yeS5nZXRCYXNlVXJsKHRzQ29uZmlnKSA/PyBwYXRoLnJlc29sdmUocHJvamVjdHNbMF0ucm9vdERpciksXG5cdFx0XHRcdFx0XHRcdHRzY29uZmlnUGF0aHM6IGNvbXBpbGVyT3B0aW9ucz8ucGF0aHMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgdHNjb25maWdPbmx5UGF0aHMgPVxuXHRcdFx0YWxpYXNQYXRocyAmJiBhbGlhc2VzID09IG51bGxcblx0XHRcdFx0PyAoY29tcGlsZXJPcHRpb25zPy5wYXRocyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQpXG5cdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHBhdGhzID0gU3djQ29uZmlnRmFjdG9yeS5ub25lbXB0eVBhdGhzKGFsaWFzZXM/LnBhdGhzID8/IHRzY29uZmlnT25seVBhdGhzKTtcblx0XHRjb25zdCBiYXNlVXJsID1cblx0XHRcdGFsaWFzZXM/LmJhc2VVcmwgPz9cblx0XHRcdFN3Y0NvbmZpZ0ZhY3RvcnkuZ2V0QmFzZVVybCh0c0NvbmZpZykgPz9cblx0XHRcdCh3b3Jrc3BhY2UgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZSh3b3Jrc3BhY2Uucm9vdERpcikgOiB1bmRlZmluZWQpID8/XG5cdFx0XHQocGF0aHMgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZShcIi5cIikgOiB1bmRlZmluZWQpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHtcblx0XHRcdGpzYzoge1xuXHRcdFx0XHRiYXNlVXJsLFxuXHRcdFx0XHRwYXRocyxcblx0XHRcdH0sXG5cdFx0XHRtb2R1bGU6IHtcblx0XHRcdFx0dHlwZTogYnVpbGRUYXJnZXQsXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHRyZXR1cm4gbWVyZ2Uud2l0aE9wdGlvbnM8T3B0aW9ucz4oXG5cdFx0XHR7IG1lcmdlQXJyYXlzOiBmYWxzZSB9LFxuXHRcdFx0ZGVmYXVsdE9wdGlvbnMsXG5cdFx0XHRvcHRpb25zLFxuXHRcdFx0dXNlckNvbmZpZyA/PyB7fSxcblx0XHQpO1xuXHR9XG5cblx0LyoqIFN0YW1wcyBhIHBlci1maWxlIGZpbGVuYW1lIG9udG8gYSBwcmUtYnVpbHQgYmFzZSBjb25maWcuICovXG5cdHB1YmxpYyBjcmVhdGVGaWxlQ29uZmlnKGZpbGU6IEZpbGVFeCwgYmFzZUNvbmZpZzogT3B0aW9ucyk6IE9wdGlvbnMge1xuXHRcdGNvbnN0IGNvbmZpZyA9IHsgLi4uYmFzZUNvbmZpZywgZmlsZW5hbWU6IGZpbGUuZnVsbFBhdGggfTtcblx0XHR0aGlzLnZhbGlkYXRlKGNvbmZpZyk7XG5cdFx0cmV0dXJuIGNvbmZpZztcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIG5vbmVtcHR5UGF0aHMoXG5cdFx0cGF0aHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZCxcblx0KTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAocGF0aHMgPT0gbnVsbCB8fCBPYmplY3Qua2V5cyhwYXRocykubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRocztcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgU1dDIG9wdGlvbnMgYWdhaW5zdCBrbm93biBjYXVzZXMgb2YgUnVzdC9OQVBJIHByb2Nlc3MgY3Jhc2hlcy5cblx0ICogVGhyb3dzIGEgRm9yZ2VFcnJvciB3aXRoIGEgZGVzY3JpcHRpdmUgbWVzc2FnZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlXG5cdCAqIE5BUEkgbGF5ZXIgYWJvcnQgdGhlIHByb2Nlc3MuXG5cdCAqXG5cdCAqIEtub3duIGNyYXNoIGNhdXNlczpcblx0ICogLSBganNjLmJhc2VVcmxgIHNldCB0byBhIHJlbGF0aXZlIHBhdGggKFNXQyByZXF1aXJlcyBhbiBhYnNvbHV0ZSBwYXRoKVxuXHQgKi9cblx0cHVibGljIHZhbGlkYXRlKG9wdGlvbnM6IE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gb3B0aW9ucy5qc2M/LmJhc2VVcmw7XG5cdFx0aWYgKGJhc2VVcmwgIT0gbnVsbCAmJiAhcGF0aC5pc0Fic29sdXRlKGJhc2VVcmwpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRm9yZ2VFcnJvcihcblx0XHRcdFx0YFNXQyBjb25maWc6IGpzYy5iYXNlVXJsIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aCB0byBhdm9pZCBhIHByb2Nlc3MgY3Jhc2gsIGdvdDogXCIke2Jhc2VVcmx9XCIuIFVzZSBwYXRoLnJlc29sdmUoKSB0byBjb252ZXJ0IGl0LmAsXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBSZXNvbHZlcyB0c2NvbmZpZyBiYXNlVXJsIHRvIGFuIGFic29sdXRlIHBhdGguIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vdCBzZXQuICovXG5cdHByaXZhdGUgc3RhdGljIGdldEJhc2VVcmwodHNDb25maWc6IFRzY29uZmlnIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gdHNDb25maWc/LmNvbXBpbGVyT3B0aW9ucz8uYmFzZVVybDtcblx0XHRpZiAoYmFzZVVybCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRoLnJlc29sdmUoYmFzZVVybCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJTd2NDb25maWdGYWN0b3J5IiwiZGVmYXVsdE9wdGlvbnMiLCJqc2MiLCJwYXJzZXIiLCJzeW50YXgiLCJkZWNvcmF0b3JzIiwidGFyZ2V0IiwidHJhbnNmb3JtIiwiZGVjb3JhdG9yTWV0YWRhdGEiLCJleHBlcmltZW50YWwiLCJrZWVwSW1wb3J0QXR0cmlidXRlcyIsIm1vZHVsZSIsInJlc29sdmVGdWxseSIsInNvdXJjZU1hcHMiLCJjcmVhdGVCYXNlQ29uZmlnIiwiYnVpbGRUYXJnZXQiLCJjb25maWdPcHRpb25zIiwidXNlckNvbmZpZyIsInRzQ29uZmlnIiwiYWxpYXNQYXRocyIsIndvcmtzcGFjZSIsInByb2plY3RzIiwiY29tcGlsZXJPcHRpb25zIiwiYWxpYXNlcyIsImdldFBhY2thZ2VBbGlhc2VzIiwiY29uZmlndXJhdGlvbiIsIm5hbWUiLCJsZW5ndGgiLCJwYWNrYWdlQWxpYXNlcyIsImJ1aWxkIiwiYmFzZVVybCIsImdldEJhc2VVcmwiLCJwYXRoIiwicmVzb2x2ZSIsInJvb3REaXIiLCJ0c2NvbmZpZ1BhdGhzIiwicGF0aHMiLCJ1bmRlZmluZWQiLCJ0c2NvbmZpZ09ubHlQYXRocyIsIm5vbmVtcHR5UGF0aHMiLCJvcHRpb25zIiwidHlwZSIsIm1lcmdlIiwid2l0aE9wdGlvbnMiLCJtZXJnZUFycmF5cyIsImNyZWF0ZUZpbGVDb25maWciLCJmaWxlIiwiYmFzZUNvbmZpZyIsImNvbmZpZyIsImZpbGVuYW1lIiwiZnVsbFBhdGgiLCJ2YWxpZGF0ZSIsIk9iamVjdCIsImtleXMiLCJpc0Fic29sdXRlIiwiRm9yZ2VFcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE2QmFBOzs7ZUFBQUE7OztpRUE3Qkk7c0JBQzZCOzZCQUN4Qjt5QkFFQTt3QkFFSzs7Ozs7Ozs7Ozs7O0FBSTNCLE1BQU1DLGlCQUFpQjtJQUN0QkMsS0FBSztRQUNKQyxRQUFRO1lBQ1BDLFFBQVE7WUFDUkMsWUFBWTtRQUNiO1FBQ0FDLFFBQVE7UUFDUkMsV0FBVztZQUNWQyxtQkFBbUI7UUFDcEI7UUFDQUMsY0FBYztZQUFFQyxzQkFBc0I7UUFBSztJQUM1QztJQUNBQyxRQUFRO1FBQ1BDLGNBQWM7SUFDZjtJQUNBQyxZQUFZO0FBQ2I7QUFHTyxNQUFNYjtJQUNaOzs7RUFHQyxHQUNELEFBQU9jLGlCQUNOQyxXQUE0QixFQUM1QkMsYUFBK0IsRUFDckI7UUFDVixNQUFNLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFLEdBQUdMO1FBQ2xFLE1BQU0sRUFBRU0sZUFBZSxFQUFFLEdBQUdKLFlBQVksQ0FBQztRQUN6QyxNQUFNSyxVQUFVSixhQUNiQyxhQUFhLE9BQ1pBLFVBQVVJLGlCQUFpQixDQUFDSCxVQUFVLENBQUMsRUFBRSxFQUFFSSxjQUFjQyxRQUFRLFdBQ2pFTCxZQUFZLFFBQVFBLFNBQVNNLE1BQU0sR0FBRyxJQUNyQ0Msb0JBQWMsQ0FBQ0MsS0FBSyxDQUFDUixVQUFVO1lBQy9CUyxTQUNDOUIsaUJBQWlCK0IsVUFBVSxDQUFDYixhQUFhYyxpQkFBSSxDQUFDQyxPQUFPLENBQUNaLFFBQVEsQ0FBQyxFQUFFLENBQUNhLE9BQU87WUFDMUVDLGVBQWViLGlCQUFpQmM7UUFDakMsS0FDQ0MsWUFDRkE7UUFDSCxNQUFNQyxvQkFDTG5CLGNBQWNJLFdBQVcsT0FDckJELGlCQUFpQmMsUUFDbEJDO1FBQ0osTUFBTUQsUUFBUXBDLGlCQUFpQnVDLGFBQWEsQ0FBQ2hCLFNBQVNhLFNBQVNFO1FBQy9ELE1BQU1SLFVBQ0xQLFNBQVNPLFdBQ1Q5QixpQkFBaUIrQixVQUFVLENBQUNiLGFBQzNCRSxDQUFBQSxhQUFhLE9BQU9ZLGlCQUFJLENBQUNDLE9BQU8sQ0FBQ2IsVUFBVWMsT0FBTyxJQUFJRyxTQUFRLEtBQzlERCxDQUFBQSxTQUFTLE9BQU9KLGlCQUFJLENBQUNDLE9BQU8sQ0FBQyxPQUFPSSxTQUFRO1FBRTlDLE1BQU1HLFVBQW1CO1lBQ3hCdEMsS0FBSztnQkFDSjRCO2dCQUNBTTtZQUNEO1lBQ0F6QixRQUFRO2dCQUNQOEIsTUFBTTFCO1lBQ1A7UUFDRDtRQUVBLE9BQU8yQixjQUFLLENBQUNDLFdBQVcsQ0FDdkI7WUFBRUMsYUFBYTtRQUFNLEdBQ3JCM0MsZ0JBQ0F1QyxTQUNBdkIsY0FBYyxDQUFDO0lBRWpCO0lBRUEsNkRBQTZELEdBQzdELEFBQU80QixpQkFBaUJDLElBQVksRUFBRUMsVUFBbUIsRUFBVztRQUNuRSxNQUFNQyxTQUFTO1lBQUUsR0FBR0QsVUFBVTtZQUFFRSxVQUFVSCxLQUFLSSxRQUFRO1FBQUM7UUFDeEQsSUFBSSxDQUFDQyxRQUFRLENBQUNIO1FBQ2QsT0FBT0E7SUFDUjtJQUVBLE9BQWVULGNBQ2RILEtBQTJDLEVBQ0o7UUFDdkMsSUFBSUEsU0FBUyxRQUFRZ0IsT0FBT0MsSUFBSSxDQUFDakIsT0FBT1QsTUFBTSxLQUFLLEdBQUcsT0FBT1U7UUFDN0QsT0FBT0Q7SUFDUjtJQUVBOzs7Ozs7O0VBT0MsR0FDRCxBQUFPZSxTQUFTWCxPQUFnQixFQUFRO1FBQ3ZDLE1BQU1WLFVBQVVVLFFBQVF0QyxHQUFHLEVBQUU0QjtRQUM3QixJQUFJQSxXQUFXLFFBQVEsQ0FBQ0UsaUJBQUksQ0FBQ3NCLFVBQVUsQ0FBQ3hCLFVBQVU7WUFDakQsTUFBTSxJQUFJeUIsa0JBQVUsQ0FDbkIsQ0FBQyxpRkFBaUYsRUFBRXpCLFFBQVEsb0NBQW9DLENBQUM7UUFFbkk7SUFDRDtJQUVBLGlGQUFpRixHQUNqRixPQUFlQyxXQUFXYixRQUE4QixFQUFzQjtRQUM3RSxNQUFNWSxVQUFVWixVQUFVSSxpQkFBaUJRO1FBQzNDLElBQUlBLFdBQVcsTUFBTSxPQUFPTztRQUM1QixPQUFPTCxpQkFBSSxDQUFDQyxPQUFPLENBQUNIO0lBQ3JCO0FBQ0QifQ==
|
|
@@ -5,10 +5,10 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
}
|
|
7
7
|
import path from "node:path";
|
|
8
|
+
import { packageAliases } from "@decohere/mesh";
|
|
8
9
|
import { Trace } from "@decohere/nexus/diagnostics";
|
|
9
10
|
import { merge } from "@decohere/nexus/objects";
|
|
10
11
|
import { ForgeError } from "../errors.js";
|
|
11
|
-
import { buildWorkspaceAliasPaths, mergeAliasPaths, resolveAliasProjects } from "../workspace-package-aliases.js";
|
|
12
12
|
const defaultOptions = {
|
|
13
13
|
jsc: {
|
|
14
14
|
parser: {
|
|
@@ -35,8 +35,13 @@ export class SwcConfigFactory {
|
|
|
35
35
|
*/ createBaseConfig(buildTarget, configOptions) {
|
|
36
36
|
const { userConfig, tsConfig, aliasPaths, workspace, projects } = configOptions;
|
|
37
37
|
const { compilerOptions } = tsConfig ?? {};
|
|
38
|
-
const
|
|
39
|
-
|
|
38
|
+
const aliases = aliasPaths ? workspace != null ? workspace.getPackageAliases(projects?.[0]?.configuration.name ?? "debug") : projects != null && projects.length > 0 ? packageAliases.build(projects, {
|
|
39
|
+
baseUrl: SwcConfigFactory.getBaseUrl(tsConfig) ?? path.resolve(projects[0].rootDir),
|
|
40
|
+
tsconfigPaths: compilerOptions?.paths
|
|
41
|
+
}) : undefined : undefined;
|
|
42
|
+
const tsconfigOnlyPaths = aliasPaths && aliases == null ? compilerOptions?.paths : undefined;
|
|
43
|
+
const paths = SwcConfigFactory.nonemptyPaths(aliases?.paths ?? tsconfigOnlyPaths);
|
|
44
|
+
const baseUrl = aliases?.baseUrl ?? SwcConfigFactory.getBaseUrl(tsConfig) ?? (workspace != null ? path.resolve(workspace.rootDir) : undefined) ?? (paths != null ? path.resolve(".") : undefined);
|
|
40
45
|
const options = {
|
|
41
46
|
jsc: {
|
|
42
47
|
baseUrl,
|
|
@@ -58,6 +63,10 @@ export class SwcConfigFactory {
|
|
|
58
63
|
this.validate(config);
|
|
59
64
|
return config;
|
|
60
65
|
}
|
|
66
|
+
static nonemptyPaths(paths) {
|
|
67
|
+
if (paths == null || Object.keys(paths).length === 0) return undefined;
|
|
68
|
+
return paths;
|
|
69
|
+
}
|
|
61
70
|
/**
|
|
62
71
|
* Validates SWC options against known causes of Rust/NAPI process crashes.
|
|
63
72
|
* Throws a ForgeError with a descriptive message instead of letting the
|
|
@@ -71,21 +80,6 @@ export class SwcConfigFactory {
|
|
|
71
80
|
throw new ForgeError(`SWC config: jsc.baseUrl must be an absolute path to avoid a process crash, got: "${baseUrl}". Use path.resolve() to convert it.`);
|
|
72
81
|
}
|
|
73
82
|
}
|
|
74
|
-
/**
|
|
75
|
-
* Convention aliases from workspace packages, then `tsconfig` `paths` overrides.
|
|
76
|
-
* Empty maps are omitted so SWC is not given a useless `jsc.paths`.
|
|
77
|
-
*/ buildAliasPaths(tsconfigPaths, workspace, projects, baseUrl) {
|
|
78
|
-
const resolvedBase = baseUrl ?? path.resolve(".");
|
|
79
|
-
const convention = buildWorkspaceAliasPaths(resolveAliasProjects(workspace, projects), resolvedBase);
|
|
80
|
-
const merged = mergeAliasPaths(convention, tsconfigPaths);
|
|
81
|
-
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
82
|
-
}
|
|
83
|
-
resolveAliasBaseUrl(tsConfig, workspace) {
|
|
84
|
-
const fromTs = SwcConfigFactory.getBaseUrl(tsConfig);
|
|
85
|
-
if (fromTs != null) return fromTs;
|
|
86
|
-
if (workspace != null) return path.resolve(workspace.rootDir);
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
89
83
|
/** Resolves tsconfig baseUrl to an absolute path. Returns undefined if not set. */ static getBaseUrl(tsConfig) {
|
|
90
84
|
const baseUrl = tsConfig?.compilerOptions?.baseUrl;
|
|
91
85
|
if (baseUrl == null) return undefined;
|
|
@@ -96,4 +90,4 @@ SwcConfigFactory = _ts_decorate([
|
|
|
96
90
|
Trace
|
|
97
91
|
], SwcConfigFactory);
|
|
98
92
|
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy9mYWN0b3JpZXMvc3djLWNvbmZpZy5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHBhY2thZ2VBbGlhc2VzLCB0eXBlIFRzY29uZmlnIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5pbXBvcnQgeyBUcmFjZSB9IGZyb20gXCJAZGVjb2hlcmUvbmV4dXMvZGlhZ25vc3RpY3NcIjtcbmltcG9ydCB0eXBlIHsgRmlsZUV4IH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9pb1wiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL29iamVjdHNcIjtcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyB9IGZyb20gXCJAc3djL2NvcmVcIjtcbmltcG9ydCB7IEZvcmdlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRyYW5zcGlsZVRhcmdldCB9IGZyb20gXCIuLi90eXBlcy9idWlsZC10YXJnZXQudHlwZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTd2NDb25maWdPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzL3N3Yy1jb25maWcudHlwZS5qc1wiO1xuXG5jb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcblx0anNjOiB7XG5cdFx0cGFyc2VyOiB7XG5cdFx0XHRzeW50YXg6IFwidHlwZXNjcmlwdFwiLFxuXHRcdFx0ZGVjb3JhdG9yczogdHJ1ZSxcblx0XHR9LFxuXHRcdHRhcmdldDogXCJlc25leHRcIixcblx0XHR0cmFuc2Zvcm06IHtcblx0XHRcdGRlY29yYXRvck1ldGFkYXRhOiB0cnVlLFxuXHRcdH0sXG5cdFx0ZXhwZXJpbWVudGFsOiB7IGtlZXBJbXBvcnRBdHRyaWJ1dGVzOiB0cnVlIH0sXG5cdH0sXG5cdG1vZHVsZToge1xuXHRcdHJlc29sdmVGdWxseTogdHJ1ZSxcblx0fSxcblx0c291cmNlTWFwczogXCJpbmxpbmVcIixcbn07XG5cbkBUcmFjZVxuZXhwb3J0IGNsYXNzIFN3Y0NvbmZpZ0ZhY3Rvcnkge1xuXHQvKipcblx0ICogQ3JlYXRlcyBhIGJhc2UgY29uZmlnIGZvciBhIHByb2plY3QrdGFyZ2V0IGNvbWJpbmF0aW9uLCB3aXRob3V0IGEgZmlsZW5hbWUuXG5cdCAqIENhbGwgb25jZSBwZXIgKHByb2plY3QsIHRhcmdldCkgYW5kIHRoZW4gdXNlIGNyZWF0ZUZpbGVDb25maWcoKSBwZXIgZmlsZS5cblx0ICovXG5cdHB1YmxpYyBjcmVhdGVCYXNlQ29uZmlnKFxuXHRcdGJ1aWxkVGFyZ2V0OiBUcmFuc3BpbGVUYXJnZXQsXG5cdFx0Y29uZmlnT3B0aW9uczogU3djQ29uZmlnT3B0aW9ucyxcblx0KTogT3B0aW9ucyB7XG5cdFx0Y29uc3QgeyB1c2VyQ29uZmlnLCB0c0NvbmZpZywgYWxpYXNQYXRocywgd29ya3NwYWNlLCBwcm9qZWN0cyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCB7IGNvbXBpbGVyT3B0aW9ucyB9ID0gdHNDb25maWcgPz8ge307XG5cdFx0Y29uc3QgYWxpYXNlcyA9IGFsaWFzUGF0aHNcblx0XHRcdD8gd29ya3NwYWNlICE9IG51bGxcblx0XHRcdFx0PyB3b3Jrc3BhY2UuZ2V0UGFja2FnZUFsaWFzZXMocHJvamVjdHM/LlswXT8uY29uZmlndXJhdGlvbi5uYW1lID8/IFwiZGVidWdcIilcblx0XHRcdFx0OiBwcm9qZWN0cyAhPSBudWxsICYmIHByb2plY3RzLmxlbmd0aCA+IDBcblx0XHRcdFx0XHQ/IHBhY2thZ2VBbGlhc2VzLmJ1aWxkKHByb2plY3RzLCB7XG5cdFx0XHRcdFx0XHRcdGJhc2VVcmw6XG5cdFx0XHRcdFx0XHRcdFx0U3djQ29uZmlnRmFjdG9yeS5nZXRCYXNlVXJsKHRzQ29uZmlnKSA/PyBwYXRoLnJlc29sdmUocHJvamVjdHNbMF0ucm9vdERpciksXG5cdFx0XHRcdFx0XHRcdHRzY29uZmlnUGF0aHM6IGNvbXBpbGVyT3B0aW9ucz8ucGF0aHMgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgdHNjb25maWdPbmx5UGF0aHMgPVxuXHRcdFx0YWxpYXNQYXRocyAmJiBhbGlhc2VzID09IG51bGxcblx0XHRcdFx0PyAoY29tcGlsZXJPcHRpb25zPy5wYXRocyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQpXG5cdFx0XHRcdDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IHBhdGhzID0gU3djQ29uZmlnRmFjdG9yeS5ub25lbXB0eVBhdGhzKGFsaWFzZXM/LnBhdGhzID8/IHRzY29uZmlnT25seVBhdGhzKTtcblx0XHRjb25zdCBiYXNlVXJsID1cblx0XHRcdGFsaWFzZXM/LmJhc2VVcmwgPz9cblx0XHRcdFN3Y0NvbmZpZ0ZhY3RvcnkuZ2V0QmFzZVVybCh0c0NvbmZpZykgPz9cblx0XHRcdCh3b3Jrc3BhY2UgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZSh3b3Jrc3BhY2Uucm9vdERpcikgOiB1bmRlZmluZWQpID8/XG5cdFx0XHQocGF0aHMgIT0gbnVsbCA/IHBhdGgucmVzb2x2ZShcIi5cIikgOiB1bmRlZmluZWQpO1xuXG5cdFx0Y29uc3Qgb3B0aW9uczogT3B0aW9ucyA9IHtcblx0XHRcdGpzYzoge1xuXHRcdFx0XHRiYXNlVXJsLFxuXHRcdFx0XHRwYXRocyxcblx0XHRcdH0sXG5cdFx0XHRtb2R1bGU6IHtcblx0XHRcdFx0dHlwZTogYnVpbGRUYXJnZXQsXG5cdFx0XHR9LFxuXHRcdH07XG5cblx0XHRyZXR1cm4gbWVyZ2Uud2l0aE9wdGlvbnM8T3B0aW9ucz4oXG5cdFx0XHR7IG1lcmdlQXJyYXlzOiBmYWxzZSB9LFxuXHRcdFx0ZGVmYXVsdE9wdGlvbnMsXG5cdFx0XHRvcHRpb25zLFxuXHRcdFx0dXNlckNvbmZpZyA/PyB7fSxcblx0XHQpO1xuXHR9XG5cblx0LyoqIFN0YW1wcyBhIHBlci1maWxlIGZpbGVuYW1lIG9udG8gYSBwcmUtYnVpbHQgYmFzZSBjb25maWcuICovXG5cdHB1YmxpYyBjcmVhdGVGaWxlQ29uZmlnKGZpbGU6IEZpbGVFeCwgYmFzZUNvbmZpZzogT3B0aW9ucyk6IE9wdGlvbnMge1xuXHRcdGNvbnN0IGNvbmZpZyA9IHsgLi4uYmFzZUNvbmZpZywgZmlsZW5hbWU6IGZpbGUuZnVsbFBhdGggfTtcblx0XHR0aGlzLnZhbGlkYXRlKGNvbmZpZyk7XG5cdFx0cmV0dXJuIGNvbmZpZztcblx0fVxuXG5cdHByaXZhdGUgc3RhdGljIG5vbmVtcHR5UGF0aHMoXG5cdFx0cGF0aHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiB8IHVuZGVmaW5lZCxcblx0KTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHwgdW5kZWZpbmVkIHtcblx0XHRpZiAocGF0aHMgPT0gbnVsbCB8fCBPYmplY3Qua2V5cyhwYXRocykubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRocztcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgU1dDIG9wdGlvbnMgYWdhaW5zdCBrbm93biBjYXVzZXMgb2YgUnVzdC9OQVBJIHByb2Nlc3MgY3Jhc2hlcy5cblx0ICogVGhyb3dzIGEgRm9yZ2VFcnJvciB3aXRoIGEgZGVzY3JpcHRpdmUgbWVzc2FnZSBpbnN0ZWFkIG9mIGxldHRpbmcgdGhlXG5cdCAqIE5BUEkgbGF5ZXIgYWJvcnQgdGhlIHByb2Nlc3MuXG5cdCAqXG5cdCAqIEtub3duIGNyYXNoIGNhdXNlczpcblx0ICogLSBganNjLmJhc2VVcmxgIHNldCB0byBhIHJlbGF0aXZlIHBhdGggKFNXQyByZXF1aXJlcyBhbiBhYnNvbHV0ZSBwYXRoKVxuXHQgKi9cblx0cHVibGljIHZhbGlkYXRlKG9wdGlvbnM6IE9wdGlvbnMpOiB2b2lkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gb3B0aW9ucy5qc2M/LmJhc2VVcmw7XG5cdFx0aWYgKGJhc2VVcmwgIT0gbnVsbCAmJiAhcGF0aC5pc0Fic29sdXRlKGJhc2VVcmwpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRm9yZ2VFcnJvcihcblx0XHRcdFx0YFNXQyBjb25maWc6IGpzYy5iYXNlVXJsIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aCB0byBhdm9pZCBhIHByb2Nlc3MgY3Jhc2gsIGdvdDogXCIke2Jhc2VVcmx9XCIuIFVzZSBwYXRoLnJlc29sdmUoKSB0byBjb252ZXJ0IGl0LmAsXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBSZXNvbHZlcyB0c2NvbmZpZyBiYXNlVXJsIHRvIGFuIGFic29sdXRlIHBhdGguIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vdCBzZXQuICovXG5cdHByaXZhdGUgc3RhdGljIGdldEJhc2VVcmwodHNDb25maWc6IFRzY29uZmlnIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBiYXNlVXJsID0gdHNDb25maWc/LmNvbXBpbGVyT3B0aW9ucz8uYmFzZVVybDtcblx0XHRpZiAoYmFzZVVybCA9PSBudWxsKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRcdHJldHVybiBwYXRoLnJlc29sdmUoYmFzZVVybCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwicGFja2FnZUFsaWFzZXMiLCJUcmFjZSIsIm1lcmdlIiwiRm9yZ2VFcnJvciIsImRlZmF1bHRPcHRpb25zIiwianNjIiwicGFyc2VyIiwic3ludGF4IiwiZGVjb3JhdG9ycyIsInRhcmdldCIsInRyYW5zZm9ybSIsImRlY29yYXRvck1ldGFkYXRhIiwiZXhwZXJpbWVudGFsIiwia2VlcEltcG9ydEF0dHJpYnV0ZXMiLCJtb2R1bGUiLCJyZXNvbHZlRnVsbHkiLCJzb3VyY2VNYXBzIiwiU3djQ29uZmlnRmFjdG9yeSIsImNyZWF0ZUJhc2VDb25maWciLCJidWlsZFRhcmdldCIsImNvbmZpZ09wdGlvbnMiLCJ1c2VyQ29uZmlnIiwidHNDb25maWciLCJhbGlhc1BhdGhzIiwid29ya3NwYWNlIiwicHJvamVjdHMiLCJjb21waWxlck9wdGlvbnMiLCJhbGlhc2VzIiwiZ2V0UGFja2FnZUFsaWFzZXMiLCJjb25maWd1cmF0aW9uIiwibmFtZSIsImxlbmd0aCIsImJ1aWxkIiwiYmFzZVVybCIsImdldEJhc2VVcmwiLCJyZXNvbHZlIiwicm9vdERpciIsInRzY29uZmlnUGF0aHMiLCJwYXRocyIsInVuZGVmaW5lZCIsInRzY29uZmlnT25seVBhdGhzIiwibm9uZW1wdHlQYXRocyIsIm9wdGlvbnMiLCJ0eXBlIiwid2l0aE9wdGlvbnMiLCJtZXJnZUFycmF5cyIsImNyZWF0ZUZpbGVDb25maWciLCJmaWxlIiwiYmFzZUNvbmZpZyIsImNvbmZpZyIsImZpbGVuYW1lIiwiZnVsbFBhdGgiLCJ2YWxpZGF0ZSIsIk9iamVjdCIsImtleXMiLCJpc0Fic29sdXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPQSxVQUFVLFlBQVk7QUFDN0IsU0FBU0MsY0FBYyxRQUF1QixpQkFBaUI7QUFDL0QsU0FBU0MsS0FBSyxRQUFRLDhCQUE4QjtBQUVwRCxTQUFTQyxLQUFLLFFBQVEsMEJBQTBCO0FBRWhELFNBQVNDLFVBQVUsUUFBUSxlQUFlO0FBSTFDLE1BQU1DLGlCQUFpQjtJQUN0QkMsS0FBSztRQUNKQyxRQUFRO1lBQ1BDLFFBQVE7WUFDUkMsWUFBWTtRQUNiO1FBQ0FDLFFBQVE7UUFDUkMsV0FBVztZQUNWQyxtQkFBbUI7UUFDcEI7UUFDQUMsY0FBYztZQUFFQyxzQkFBc0I7UUFBSztJQUM1QztJQUNBQyxRQUFRO1FBQ1BDLGNBQWM7SUFDZjtJQUNBQyxZQUFZO0FBQ2I7QUFHQSxPQUFPLE1BQU1DO0lBQ1o7OztFQUdDLEdBQ0QsQUFBT0MsaUJBQ05DLFdBQTRCLEVBQzVCQyxhQUErQixFQUNyQjtRQUNWLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUUsR0FBR0w7UUFDbEUsTUFBTSxFQUFFTSxlQUFlLEVBQUUsR0FBR0osWUFBWSxDQUFDO1FBQ3pDLE1BQU1LLFVBQVVKLGFBQ2JDLGFBQWEsT0FDWkEsVUFBVUksaUJBQWlCLENBQUNILFVBQVUsQ0FBQyxFQUFFLEVBQUVJLGNBQWNDLFFBQVEsV0FDakVMLFlBQVksUUFBUUEsU0FBU00sTUFBTSxHQUFHLElBQ3JDL0IsZUFBZWdDLEtBQUssQ0FBQ1AsVUFBVTtZQUMvQlEsU0FDQ2hCLGlCQUFpQmlCLFVBQVUsQ0FBQ1osYUFBYXZCLEtBQUtvQyxPQUFPLENBQUNWLFFBQVEsQ0FBQyxFQUFFLENBQUNXLE9BQU87WUFDMUVDLGVBQWVYLGlCQUFpQlk7UUFDakMsS0FDQ0MsWUFDRkE7UUFDSCxNQUFNQyxvQkFDTGpCLGNBQWNJLFdBQVcsT0FDckJELGlCQUFpQlksUUFDbEJDO1FBQ0osTUFBTUQsUUFBUXJCLGlCQUFpQndCLGFBQWEsQ0FBQ2QsU0FBU1csU0FBU0U7UUFDL0QsTUFBTVAsVUFDTE4sU0FBU00sV0FDVGhCLGlCQUFpQmlCLFVBQVUsQ0FBQ1osYUFDM0JFLENBQUFBLGFBQWEsT0FBT3pCLEtBQUtvQyxPQUFPLENBQUNYLFVBQVVZLE9BQU8sSUFBSUcsU0FBUSxLQUM5REQsQ0FBQUEsU0FBUyxPQUFPdkMsS0FBS29DLE9BQU8sQ0FBQyxPQUFPSSxTQUFRO1FBRTlDLE1BQU1HLFVBQW1CO1lBQ3hCckMsS0FBSztnQkFDSjRCO2dCQUNBSztZQUNEO1lBQ0F4QixRQUFRO2dCQUNQNkIsTUFBTXhCO1lBQ1A7UUFDRDtRQUVBLE9BQU9qQixNQUFNMEMsV0FBVyxDQUN2QjtZQUFFQyxhQUFhO1FBQU0sR0FDckJ6QyxnQkFDQXNDLFNBQ0FyQixjQUFjLENBQUM7SUFFakI7SUFFQSw2REFBNkQsR0FDN0QsQUFBT3lCLGlCQUFpQkMsSUFBWSxFQUFFQyxVQUFtQixFQUFXO1FBQ25FLE1BQU1DLFNBQVM7WUFBRSxHQUFHRCxVQUFVO1lBQUVFLFVBQVVILEtBQUtJLFFBQVE7UUFBQztRQUN4RCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0g7UUFDZCxPQUFPQTtJQUNSO0lBRUEsT0FBZVIsY0FDZEgsS0FBMkMsRUFDSjtRQUN2QyxJQUFJQSxTQUFTLFFBQVFlLE9BQU9DLElBQUksQ0FBQ2hCLE9BQU9QLE1BQU0sS0FBSyxHQUFHLE9BQU9RO1FBQzdELE9BQU9EO0lBQ1I7SUFFQTs7Ozs7OztFQU9DLEdBQ0QsQUFBT2MsU0FBU1YsT0FBZ0IsRUFBUTtRQUN2QyxNQUFNVCxVQUFVUyxRQUFRckMsR0FBRyxFQUFFNEI7UUFDN0IsSUFBSUEsV0FBVyxRQUFRLENBQUNsQyxLQUFLd0QsVUFBVSxDQUFDdEIsVUFBVTtZQUNqRCxNQUFNLElBQUk5QixXQUNULENBQUMsaUZBQWlGLEVBQUU4QixRQUFRLG9DQUFvQyxDQUFDO1FBRW5JO0lBQ0Q7SUFFQSxpRkFBaUYsR0FDakYsT0FBZUMsV0FBV1osUUFBOEIsRUFBc0I7UUFDN0UsTUFBTVcsVUFBVVgsVUFBVUksaUJBQWlCTztRQUMzQyxJQUFJQSxXQUFXLE1BQU0sT0FBT007UUFDNUIsT0FBT3hDLEtBQUtvQyxPQUFPLENBQUNGO0lBQ3JCO0FBQ0QifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decohere/forge",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.65",
|
|
4
4
|
"description": "TypeScript monorepo build system — zero config, fast compilation, streamlined developer workflow",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@decohere/crucible": "0.0.1-dev.
|
|
33
|
-
"@decohere/mesh": "0.0.1-dev.
|
|
34
|
-
"@decohere/nexus": "0.0.1-dev.
|
|
35
|
-
"@decohere/scribe": "0.0.1-dev.
|
|
32
|
+
"@decohere/crucible": "0.0.1-dev.65",
|
|
33
|
+
"@decohere/mesh": "0.0.1-dev.65",
|
|
34
|
+
"@decohere/nexus": "0.0.1-dev.65",
|
|
35
|
+
"@decohere/scribe": "0.0.1-dev.65",
|
|
36
36
|
"@swc/core": "^1.11.11",
|
|
37
37
|
"async": "^3.2.6",
|
|
38
38
|
"parse-imports": "^2.2.1",
|
|
@@ -10,6 +10,7 @@ export declare class SwcConfigFactory {
|
|
|
10
10
|
createBaseConfig(buildTarget: TranspileTarget, configOptions: SwcConfigOptions): Options;
|
|
11
11
|
/** Stamps a per-file filename onto a pre-built base config. */
|
|
12
12
|
createFileConfig(file: FileEx, baseConfig: Options): Options;
|
|
13
|
+
private static nonemptyPaths;
|
|
13
14
|
/**
|
|
14
15
|
* Validates SWC options against known causes of Rust/NAPI process crashes.
|
|
15
16
|
* Throws a ForgeError with a descriptive message instead of letting the
|
|
@@ -19,12 +20,6 @@ export declare class SwcConfigFactory {
|
|
|
19
20
|
* - `jsc.baseUrl` set to a relative path (SWC requires an absolute path)
|
|
20
21
|
*/
|
|
21
22
|
validate(options: Options): void;
|
|
22
|
-
/**
|
|
23
|
-
* Convention aliases from workspace packages, then `tsconfig` `paths` overrides.
|
|
24
|
-
* Empty maps are omitted so SWC is not given a useless `jsc.paths`.
|
|
25
|
-
*/
|
|
26
|
-
private buildAliasPaths;
|
|
27
|
-
private resolveAliasBaseUrl;
|
|
28
23
|
/** Resolves tsconfig baseUrl to an absolute path. Returns undefined if not set. */
|
|
29
24
|
private static getBaseUrl;
|
|
30
25
|
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get buildWorkspaceAliasPaths () {
|
|
13
|
-
return buildWorkspaceAliasPaths;
|
|
14
|
-
},
|
|
15
|
-
get mergeAliasPaths () {
|
|
16
|
-
return mergeAliasPaths;
|
|
17
|
-
},
|
|
18
|
-
get resolveAliasProjects () {
|
|
19
|
-
return resolveAliasProjects;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path"));
|
|
23
|
-
function _interop_require_default(obj) {
|
|
24
|
-
return obj && obj.__esModule ? obj : {
|
|
25
|
-
default: obj
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
function buildWorkspaceAliasPaths(projects, baseUrl) {
|
|
29
|
-
const aliases = {};
|
|
30
|
-
const resolvedBase = _nodepath.default.resolve(baseUrl);
|
|
31
|
-
for (const project of projects){
|
|
32
|
-
const name = project.name;
|
|
33
|
-
if (name.length === 0) continue;
|
|
34
|
-
const entry = _nodepath.default.resolve(project.getSourceEntryPath());
|
|
35
|
-
aliases[name] = [
|
|
36
|
-
toPosixRelative(resolvedBase, entry)
|
|
37
|
-
];
|
|
38
|
-
const sourceDir = _nodepath.default.dirname(entry);
|
|
39
|
-
aliases[`${name}/*`] = [
|
|
40
|
-
`${toPosixRelative(resolvedBase, sourceDir)}/*`
|
|
41
|
-
];
|
|
42
|
-
}
|
|
43
|
-
return aliases;
|
|
44
|
-
}
|
|
45
|
-
function mergeAliasPaths(convention, tsconfigPaths) {
|
|
46
|
-
if (tsconfigPaths == null) return convention;
|
|
47
|
-
return {
|
|
48
|
-
...convention,
|
|
49
|
-
...tsconfigPaths
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function resolveAliasProjects(workspace, projects) {
|
|
53
|
-
if (workspace != null) {
|
|
54
|
-
const configuration = projects?.[0]?.configuration.name ?? "debug";
|
|
55
|
-
return workspace.getProjects(configuration);
|
|
56
|
-
}
|
|
57
|
-
return projects ?? [];
|
|
58
|
-
}
|
|
59
|
-
function toPosixRelative(from, to) {
|
|
60
|
-
const relative = _nodepath.default.relative(from, to);
|
|
61
|
-
if (relative === "") return ".";
|
|
62
|
-
return relative.split(_nodepath.default.sep).join("/");
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UtcGFja2FnZS1hbGlhc2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbi8qKlxuICogQ29udmVudGlvbjogZWFjaCB3b3Jrc3BhY2UgcGFja2FnZSBuYW1lIG1hcHMgdG8gaXRzIHNvdXJjZSBlbnRyeSAoYHBhY2thZ2UuanNvbmAgbWFpbilcbiAqIGFuZCBhIGBuYW1lLypgIHN1YnBhdGggdG8gdGhhdCBlbnRyeSdzIGRpcmVjdG9yeS4gUGF0aHMgYXJlIHJlbGF0aXZlIHRvIGBiYXNlVXJsYFxuICogZm9yIFNXQyBganNjLnBhdGhzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV29ya3NwYWNlQWxpYXNQYXRocyhcblx0cHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSxcblx0YmFzZVVybDogc3RyaW5nLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWxpYXNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGNvbnN0IHJlc29sdmVkQmFzZSA9IHBhdGgucmVzb2x2ZShiYXNlVXJsKTtcblxuXHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRjb25zdCBuYW1lID0gcHJvamVjdC5uYW1lO1xuXHRcdGlmIChuYW1lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cblx0XHRjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9qZWN0LmdldFNvdXJjZUVudHJ5UGF0aCgpKTtcblx0XHRhbGlhc2VzW25hbWVdID0gW3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIGVudHJ5KV07XG5cblx0XHRjb25zdCBzb3VyY2VEaXIgPSBwYXRoLmRpcm5hbWUoZW50cnkpO1xuXHRcdGFsaWFzZXNbYCR7bmFtZX0vKmBdID0gW2Ake3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIHNvdXJjZURpcil9LypgXTtcblx0fVxuXG5cdHJldHVybiBhbGlhc2VzO1xufVxuXG4vKiogYHRzY29uZmlnYCBgcGF0aHNgIG92ZXJyaWRlIGNvbnZlbnRpb24gZW50cmllcyBmb3IgdGhlIHNhbWUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQWxpYXNQYXRocyhcblx0Y29udmVudGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+LFxuXHR0c2NvbmZpZ1BhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuXHRpZiAodHNjb25maWdQYXRocyA9PSBudWxsKSByZXR1cm4gY29udmVudGlvbjtcblx0cmV0dXJuIHsgLi4uY29udmVudGlvbiwgLi4udHNjb25maWdQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsaWFzUHJvamVjdHMoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlIHwgdW5kZWZpbmVkLFxuXHRwcm9qZWN0czogcmVhZG9ubHkgUHJvamVjdFtdIHwgdW5kZWZpbmVkLFxuKTogcmVhZG9ubHkgUHJvamVjdFtdIHtcblx0aWYgKHdvcmtzcGFjZSAhPSBudWxsKSB7XG5cdFx0Y29uc3QgY29uZmlndXJhdGlvbiA9IHByb2plY3RzPy5bMF0/LmNvbmZpZ3VyYXRpb24ubmFtZSA/PyBcImRlYnVnXCI7XG5cdFx0cmV0dXJuIHdvcmtzcGFjZS5nZXRQcm9qZWN0cyhjb25maWd1cmF0aW9uKTtcblx0fVxuXHRyZXR1cm4gcHJvamVjdHMgPz8gW107XG59XG5cbmZ1bmN0aW9uIHRvUG9zaXhSZWxhdGl2ZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuXHRpZiAocmVsYXRpdmUgPT09IFwiXCIpIHJldHVybiBcIi5cIjtcblx0cmV0dXJuIHJlbGF0aXZlLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcbn1cbiJdLCJuYW1lcyI6WyJidWlsZFdvcmtzcGFjZUFsaWFzUGF0aHMiLCJtZXJnZUFsaWFzUGF0aHMiLCJyZXNvbHZlQWxpYXNQcm9qZWN0cyIsInByb2plY3RzIiwiYmFzZVVybCIsImFsaWFzZXMiLCJyZXNvbHZlZEJhc2UiLCJwYXRoIiwicmVzb2x2ZSIsInByb2plY3QiLCJuYW1lIiwibGVuZ3RoIiwiZW50cnkiLCJnZXRTb3VyY2VFbnRyeVBhdGgiLCJ0b1Bvc2l4UmVsYXRpdmUiLCJzb3VyY2VEaXIiLCJkaXJuYW1lIiwiY29udmVudGlvbiIsInRzY29uZmlnUGF0aHMiLCJ3b3Jrc3BhY2UiLCJjb25maWd1cmF0aW9uIiwiZ2V0UHJvamVjdHMiLCJmcm9tIiwidG8iLCJyZWxhdGl2ZSIsInNwbGl0Iiwic2VwIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFRZ0JBO2VBQUFBOztRQXNCQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOzs7aUVBdENDOzs7Ozs7QUFRVixTQUFTRix5QkFDZkcsUUFBNEIsRUFDNUJDLE9BQWU7SUFFZixNQUFNQyxVQUFvQyxDQUFDO0lBQzNDLE1BQU1DLGVBQWVDLGlCQUFJLENBQUNDLE9BQU8sQ0FBQ0o7SUFFbEMsS0FBSyxNQUFNSyxXQUFXTixTQUFVO1FBQy9CLE1BQU1PLE9BQU9ELFFBQVFDLElBQUk7UUFDekIsSUFBSUEsS0FBS0MsTUFBTSxLQUFLLEdBQUc7UUFFdkIsTUFBTUMsUUFBUUwsaUJBQUksQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRSSxrQkFBa0I7UUFDckRSLE9BQU8sQ0FBQ0ssS0FBSyxHQUFHO1lBQUNJLGdCQUFnQlIsY0FBY007U0FBTztRQUV0RCxNQUFNRyxZQUFZUixpQkFBSSxDQUFDUyxPQUFPLENBQUNKO1FBQy9CUCxPQUFPLENBQUMsR0FBR0ssS0FBSyxFQUFFLENBQUMsQ0FBQyxHQUFHO1lBQUMsR0FBR0ksZ0JBQWdCUixjQUFjUyxXQUFXLEVBQUUsQ0FBQztTQUFDO0lBQ3pFO0lBRUEsT0FBT1Y7QUFDUjtBQUdPLFNBQVNKLGdCQUNmZ0IsVUFBb0MsRUFDcENDLGFBQW1EO0lBRW5ELElBQUlBLGlCQUFpQixNQUFNLE9BQU9EO0lBQ2xDLE9BQU87UUFBRSxHQUFHQSxVQUFVO1FBQUUsR0FBR0MsYUFBYTtJQUFDO0FBQzFDO0FBRU8sU0FBU2hCLHFCQUNmaUIsU0FBZ0MsRUFDaENoQixRQUF3QztJQUV4QyxJQUFJZ0IsYUFBYSxNQUFNO1FBQ3RCLE1BQU1DLGdCQUFnQmpCLFVBQVUsQ0FBQyxFQUFFLEVBQUVpQixjQUFjVixRQUFRO1FBQzNELE9BQU9TLFVBQVVFLFdBQVcsQ0FBQ0Q7SUFDOUI7SUFDQSxPQUFPakIsWUFBWSxFQUFFO0FBQ3RCO0FBRUEsU0FBU1csZ0JBQWdCUSxJQUFZLEVBQUVDLEVBQVU7SUFDaEQsTUFBTUMsV0FBV2pCLGlCQUFJLENBQUNpQixRQUFRLENBQUNGLE1BQU1DO0lBQ3JDLElBQUlDLGFBQWEsSUFBSSxPQUFPO0lBQzVCLE9BQU9BLFNBQVNDLEtBQUssQ0FBQ2xCLGlCQUFJLENBQUNtQixHQUFHLEVBQUVDLElBQUksQ0FBQztBQUN0QyJ9
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
/**
|
|
3
|
-
* Convention: each workspace package name maps to its source entry (`package.json` main)
|
|
4
|
-
* and a `name/*` subpath to that entry's directory. Paths are relative to `baseUrl`
|
|
5
|
-
* for SWC `jsc.paths`.
|
|
6
|
-
*/ export function buildWorkspaceAliasPaths(projects, baseUrl) {
|
|
7
|
-
const aliases = {};
|
|
8
|
-
const resolvedBase = path.resolve(baseUrl);
|
|
9
|
-
for (const project of projects){
|
|
10
|
-
const name = project.name;
|
|
11
|
-
if (name.length === 0) continue;
|
|
12
|
-
const entry = path.resolve(project.getSourceEntryPath());
|
|
13
|
-
aliases[name] = [
|
|
14
|
-
toPosixRelative(resolvedBase, entry)
|
|
15
|
-
];
|
|
16
|
-
const sourceDir = path.dirname(entry);
|
|
17
|
-
aliases[`${name}/*`] = [
|
|
18
|
-
`${toPosixRelative(resolvedBase, sourceDir)}/*`
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
return aliases;
|
|
22
|
-
}
|
|
23
|
-
/** `tsconfig` `paths` override convention entries for the same key. */ export function mergeAliasPaths(convention, tsconfigPaths) {
|
|
24
|
-
if (tsconfigPaths == null) return convention;
|
|
25
|
-
return {
|
|
26
|
-
...convention,
|
|
27
|
-
...tsconfigPaths
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export function resolveAliasProjects(workspace, projects) {
|
|
31
|
-
if (workspace != null) {
|
|
32
|
-
const configuration = projects?.[0]?.configuration.name ?? "debug";
|
|
33
|
-
return workspace.getProjects(configuration);
|
|
34
|
-
}
|
|
35
|
-
return projects ?? [];
|
|
36
|
-
}
|
|
37
|
-
function toPosixRelative(from, to) {
|
|
38
|
-
const relative = path.relative(from, to);
|
|
39
|
-
if (relative === "") return ".";
|
|
40
|
-
return relative.split(path.sep).join("/");
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2ZvcmdlL3NyYy93b3Jrc3BhY2UtcGFja2FnZS1hbGlhc2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCwgV29ya3NwYWNlIH0gZnJvbSBcIkBkZWNvaGVyZS9tZXNoXCI7XG5cbi8qKlxuICogQ29udmVudGlvbjogZWFjaCB3b3Jrc3BhY2UgcGFja2FnZSBuYW1lIG1hcHMgdG8gaXRzIHNvdXJjZSBlbnRyeSAoYHBhY2thZ2UuanNvbmAgbWFpbilcbiAqIGFuZCBhIGBuYW1lLypgIHN1YnBhdGggdG8gdGhhdCBlbnRyeSdzIGRpcmVjdG9yeS4gUGF0aHMgYXJlIHJlbGF0aXZlIHRvIGBiYXNlVXJsYFxuICogZm9yIFNXQyBganNjLnBhdGhzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV29ya3NwYWNlQWxpYXNQYXRocyhcblx0cHJvamVjdHM6IHJlYWRvbmx5IFByb2plY3RbXSxcblx0YmFzZVVybDogc3RyaW5nLFxuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0Y29uc3QgYWxpYXNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG5cdGNvbnN0IHJlc29sdmVkQmFzZSA9IHBhdGgucmVzb2x2ZShiYXNlVXJsKTtcblxuXHRmb3IgKGNvbnN0IHByb2plY3Qgb2YgcHJvamVjdHMpIHtcblx0XHRjb25zdCBuYW1lID0gcHJvamVjdC5uYW1lO1xuXHRcdGlmIChuYW1lLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG5cblx0XHRjb25zdCBlbnRyeSA9IHBhdGgucmVzb2x2ZShwcm9qZWN0LmdldFNvdXJjZUVudHJ5UGF0aCgpKTtcblx0XHRhbGlhc2VzW25hbWVdID0gW3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIGVudHJ5KV07XG5cblx0XHRjb25zdCBzb3VyY2VEaXIgPSBwYXRoLmRpcm5hbWUoZW50cnkpO1xuXHRcdGFsaWFzZXNbYCR7bmFtZX0vKmBdID0gW2Ake3RvUG9zaXhSZWxhdGl2ZShyZXNvbHZlZEJhc2UsIHNvdXJjZURpcil9LypgXTtcblx0fVxuXG5cdHJldHVybiBhbGlhc2VzO1xufVxuXG4vKiogYHRzY29uZmlnYCBgcGF0aHNgIG92ZXJyaWRlIGNvbnZlbnRpb24gZW50cmllcyBmb3IgdGhlIHNhbWUga2V5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQWxpYXNQYXRocyhcblx0Y29udmVudGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+LFxuXHR0c2NvbmZpZ1BhdGhzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gfCB1bmRlZmluZWQsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4ge1xuXHRpZiAodHNjb25maWdQYXRocyA9PSBudWxsKSByZXR1cm4gY29udmVudGlvbjtcblx0cmV0dXJuIHsgLi4uY29udmVudGlvbiwgLi4udHNjb25maWdQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsaWFzUHJvamVjdHMoXG5cdHdvcmtzcGFjZTogV29ya3NwYWNlIHwgdW5kZWZpbmVkLFxuXHRwcm9qZWN0czogcmVhZG9ubHkgUHJvamVjdFtdIHwgdW5kZWZpbmVkLFxuKTogcmVhZG9ubHkgUHJvamVjdFtdIHtcblx0aWYgKHdvcmtzcGFjZSAhPSBudWxsKSB7XG5cdFx0Y29uc3QgY29uZmlndXJhdGlvbiA9IHByb2plY3RzPy5bMF0/LmNvbmZpZ3VyYXRpb24ubmFtZSA/PyBcImRlYnVnXCI7XG5cdFx0cmV0dXJuIHdvcmtzcGFjZS5nZXRQcm9qZWN0cyhjb25maWd1cmF0aW9uKTtcblx0fVxuXHRyZXR1cm4gcHJvamVjdHMgPz8gW107XG59XG5cbmZ1bmN0aW9uIHRvUG9zaXhSZWxhdGl2ZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUoZnJvbSwgdG8pO1xuXHRpZiAocmVsYXRpdmUgPT09IFwiXCIpIHJldHVybiBcIi5cIjtcblx0cmV0dXJuIHJlbGF0aXZlLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiYnVpbGRXb3Jrc3BhY2VBbGlhc1BhdGhzIiwicHJvamVjdHMiLCJiYXNlVXJsIiwiYWxpYXNlcyIsInJlc29sdmVkQmFzZSIsInJlc29sdmUiLCJwcm9qZWN0IiwibmFtZSIsImxlbmd0aCIsImVudHJ5IiwiZ2V0U291cmNlRW50cnlQYXRoIiwidG9Qb3NpeFJlbGF0aXZlIiwic291cmNlRGlyIiwiZGlybmFtZSIsIm1lcmdlQWxpYXNQYXRocyIsImNvbnZlbnRpb24iLCJ0c2NvbmZpZ1BhdGhzIiwicmVzb2x2ZUFsaWFzUHJvamVjdHMiLCJ3b3Jrc3BhY2UiLCJjb25maWd1cmF0aW9uIiwiZ2V0UHJvamVjdHMiLCJmcm9tIiwidG8iLCJyZWxhdGl2ZSIsInNwbGl0Iiwic2VwIiwiam9pbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsVUFBVSxZQUFZO0FBRzdCOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVNDLHlCQUNmQyxRQUE0QixFQUM1QkMsT0FBZTtJQUVmLE1BQU1DLFVBQW9DLENBQUM7SUFDM0MsTUFBTUMsZUFBZUwsS0FBS00sT0FBTyxDQUFDSDtJQUVsQyxLQUFLLE1BQU1JLFdBQVdMLFNBQVU7UUFDL0IsTUFBTU0sT0FBT0QsUUFBUUMsSUFBSTtRQUN6QixJQUFJQSxLQUFLQyxNQUFNLEtBQUssR0FBRztRQUV2QixNQUFNQyxRQUFRVixLQUFLTSxPQUFPLENBQUNDLFFBQVFJLGtCQUFrQjtRQUNyRFAsT0FBTyxDQUFDSSxLQUFLLEdBQUc7WUFBQ0ksZ0JBQWdCUCxjQUFjSztTQUFPO1FBRXRELE1BQU1HLFlBQVliLEtBQUtjLE9BQU8sQ0FBQ0o7UUFDL0JOLE9BQU8sQ0FBQyxHQUFHSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUc7WUFBQyxHQUFHSSxnQkFBZ0JQLGNBQWNRLFdBQVcsRUFBRSxDQUFDO1NBQUM7SUFDekU7SUFFQSxPQUFPVDtBQUNSO0FBRUEscUVBQXFFLEdBQ3JFLE9BQU8sU0FBU1csZ0JBQ2ZDLFVBQW9DLEVBQ3BDQyxhQUFtRDtJQUVuRCxJQUFJQSxpQkFBaUIsTUFBTSxPQUFPRDtJQUNsQyxPQUFPO1FBQUUsR0FBR0EsVUFBVTtRQUFFLEdBQUdDLGFBQWE7SUFBQztBQUMxQztBQUVBLE9BQU8sU0FBU0MscUJBQ2ZDLFNBQWdDLEVBQ2hDakIsUUFBd0M7SUFFeEMsSUFBSWlCLGFBQWEsTUFBTTtRQUN0QixNQUFNQyxnQkFBZ0JsQixVQUFVLENBQUMsRUFBRSxFQUFFa0IsY0FBY1osUUFBUTtRQUMzRCxPQUFPVyxVQUFVRSxXQUFXLENBQUNEO0lBQzlCO0lBQ0EsT0FBT2xCLFlBQVksRUFBRTtBQUN0QjtBQUVBLFNBQVNVLGdCQUFnQlUsSUFBWSxFQUFFQyxFQUFVO0lBQ2hELE1BQU1DLFdBQVd4QixLQUFLd0IsUUFBUSxDQUFDRixNQUFNQztJQUNyQyxJQUFJQyxhQUFhLElBQUksT0FBTztJQUM1QixPQUFPQSxTQUFTQyxLQUFLLENBQUN6QixLQUFLMEIsR0FBRyxFQUFFQyxJQUFJLENBQUM7QUFDdEMifQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Project, Workspace } from "@decohere/mesh";
|
|
2
|
-
/**
|
|
3
|
-
* Convention: each workspace package name maps to its source entry (`package.json` main)
|
|
4
|
-
* and a `name/*` subpath to that entry's directory. Paths are relative to `baseUrl`
|
|
5
|
-
* for SWC `jsc.paths`.
|
|
6
|
-
*/
|
|
7
|
-
export declare function buildWorkspaceAliasPaths(projects: readonly Project[], baseUrl: string): Record<string, string[]>;
|
|
8
|
-
/** `tsconfig` `paths` override convention entries for the same key. */
|
|
9
|
-
export declare function mergeAliasPaths(convention: Record<string, string[]>, tsconfigPaths: Record<string, string[]> | undefined): Record<string, string[]>;
|
|
10
|
-
export declare function resolveAliasProjects(workspace: Workspace | undefined, projects: readonly Project[] | undefined): readonly Project[];
|