@proteinjs/reflection-build 1.5.0 → 2.0.0
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/CHANGELOG.md +29 -0
- package/dist/src/BuildContract.d.ts +69 -0
- package/dist/src/BuildContract.js +393 -0
- package/dist/src/BuildContract.js.map +1 -0
- package/dist/src/ReflectionDoctor.d.ts +95 -0
- package/dist/src/ReflectionDoctor.js +588 -0
- package/dist/src/ReflectionDoctor.js.map +1 -0
- package/dist/src/build.d.ts +5 -1
- package/dist/src/build.js +13 -77
- package/dist/src/build.js.map +1 -1
- package/dist/src/codegen/writeGeneratedIndex.d.ts +18 -0
- package/dist/src/codegen/writeGeneratedIndex.js +58 -15
- package/dist/src/codegen/writeGeneratedIndex.js.map +1 -1
- package/dist/src/parser/createGraphBuilder.js +30 -5
- package/dist/src/parser/createGraphBuilder.js.map +1 -1
- package/dist/src/runBuild.js +12 -2
- package/dist/src/runBuild.js.map +1 -1
- package/dist/src/runDoctor.d.ts +2 -0
- package/dist/src/runDoctor.js +83 -0
- package/dist/src/runDoctor.js.map +1 -0
- package/dist/test/GraphEmitRelativePaths.test.d.ts +1 -0
- package/dist/test/GraphEmitRelativePaths.test.js +162 -0
- package/dist/test/GraphEmitRelativePaths.test.js.map +1 -0
- package/dist/test/ReflectionDoctor.test.d.ts +1 -0
- package/dist/test/ReflectionDoctor.test.js +316 -0
- package/dist/test/ReflectionDoctor.test.js.map +1 -0
- package/dist/test/TestSubpathContract.test.d.ts +1 -0
- package/dist/test/TestSubpathContract.test.js +260 -0
- package/dist/test/TestSubpathContract.test.js.map +1 -0
- package/dist/test/ValidateDontMutate.test.d.ts +1 -0
- package/dist/test/ValidateDontMutate.test.js +238 -0
- package/dist/test/ValidateDontMutate.test.js.map +1 -0
- package/dist/test/examples/source-repository/a/generated/index.js +1 -1
- package/dist/test/examples/source-repository/a/generated/index.js.map +1 -1
- package/dist/test/examples/source-repository/b/generated/index.js +1 -1
- package/dist/test/examples/source-repository/b/generated/index.js.map +1 -1
- package/package.json +5 -4
- package/src/BuildContract.ts +384 -0
- package/src/ReflectionDoctor.ts +589 -0
- package/src/build.ts +19 -56
- package/src/codegen/writeGeneratedIndex.ts +51 -13
- package/src/parser/createGraphBuilder.ts +9 -4
- package/src/runBuild.ts +7 -1
- package/src/runDoctor.ts +34 -0
- package/test/GraphEmitRelativePaths.test.ts +95 -0
- package/test/ReflectionDoctor.test.ts +193 -0
- package/test/TestSubpathContract.test.ts +148 -0
- package/test/ValidateDontMutate.test.ts +126 -0
- package/test/examples/source-repository/a/dist/BuildContract.d.ts +69 -0
- package/test/examples/source-repository/a/dist/BuildContract.js +393 -0
- package/test/examples/source-repository/a/dist/BuildContract.js.map +1 -0
- package/test/examples/source-repository/a/dist/build.d.ts +5 -1
- package/test/examples/source-repository/a/dist/build.js +13 -77
- package/test/examples/source-repository/a/dist/build.js.map +1 -1
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.d.ts +18 -0
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js +58 -15
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js.map +1 -1
- package/test/examples/source-repository/a/dist/generated/index.js +1 -1
- package/test/examples/source-repository/a/dist/generated/index.js.map +1 -1
- package/test/examples/source-repository/a/dist/parser/createGraphBuilder.js +30 -5
- package/test/examples/source-repository/a/dist/parser/createGraphBuilder.js.map +1 -1
- package/test/examples/source-repository/a/dist/runBuild.js +12 -2
- package/test/examples/source-repository/a/dist/runBuild.js.map +1 -1
- package/test/examples/source-repository/a/generated/index.ts +1 -1
- package/test/examples/source-repository/b/dist/BuildContract.d.ts +69 -0
- package/test/examples/source-repository/b/dist/BuildContract.js +393 -0
- package/test/examples/source-repository/b/dist/BuildContract.js.map +1 -0
- package/test/examples/source-repository/b/dist/build.d.ts +5 -1
- package/test/examples/source-repository/b/dist/build.js +13 -77
- package/test/examples/source-repository/b/dist/build.js.map +1 -1
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.d.ts +18 -0
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js +58 -15
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js.map +1 -1
- package/test/examples/source-repository/b/dist/generated/index.js +1 -1
- package/test/examples/source-repository/b/dist/generated/index.js.map +1 -1
- package/test/examples/source-repository/b/dist/parser/createGraphBuilder.js +30 -5
- package/test/examples/source-repository/b/dist/parser/createGraphBuilder.js.map +1 -1
- package/test/examples/source-repository/b/dist/runBuild.js +12 -2
- package/test/examples/source-repository/b/dist/runBuild.js.map +1 -1
- package/test/examples/source-repository/b/generated/index.ts +1 -1
|
@@ -61,84 +61,16 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
61
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
62
|
exports.build = void 0;
|
|
63
63
|
var path = __importStar(require("path"));
|
|
64
|
-
var tsconfig = require('./tsconfigTemplate.json');
|
|
65
|
-
var util_node_1 = require("@proteinjs/util-node");
|
|
66
64
|
var writeGeneratedIndex_1 = require("./codegen/writeGeneratedIndex");
|
|
67
|
-
|
|
65
|
+
var BuildContract_1 = require("./BuildContract");
|
|
66
|
+
function build(options) {
|
|
67
|
+
if (options === void 0) { options = {}; }
|
|
68
68
|
return __awaiter(this, void 0, void 0, function () {
|
|
69
|
-
|
|
70
|
-
function updatePackageJson() {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
72
|
-
var targetDirPackageJson, targetPackageJson, originalPackageJsonString, isProd, targetDirDist, relGenPath, targetDirDistGenerated, generatedIndexJs, generatedIndexDts, updatedPackageJsonString;
|
|
73
|
-
return __generator(this, function (_a) {
|
|
74
|
-
switch (_a.label) {
|
|
75
|
-
case 0:
|
|
76
|
-
targetDirPackageJson = path.join(targetDir, 'package.json');
|
|
77
|
-
return [4 /*yield*/, util_node_1.promisifiedFs.exists(targetDirPackageJson)];
|
|
78
|
-
case 1:
|
|
79
|
-
if (!(_a.sent())) {
|
|
80
|
-
throw new Error("package.json does not exist, run `npm init -y` to create one");
|
|
81
|
-
}
|
|
82
|
-
targetPackageJson = require(targetDirPackageJson);
|
|
83
|
-
originalPackageJsonString = JSON.stringify(targetPackageJson, null, 2);
|
|
84
|
-
isProd = primaryRoot === 'src';
|
|
85
|
-
if (isProd) {
|
|
86
|
-
targetDirDist = path.join(targetDir, distDirRel);
|
|
87
|
-
relGenPath = primaryRoot && primaryRoot !== 'src'
|
|
88
|
-
? path.relative(targetDir, path.join(targetDir, 'generated', primaryRoot))
|
|
89
|
-
: path.relative(targetDir, path.join(targetDir, 'generated'));
|
|
90
|
-
targetDirDistGenerated = path.join(targetDirDist, relGenPath);
|
|
91
|
-
generatedIndexJs = path.join(targetDirDistGenerated, 'index.js');
|
|
92
|
-
generatedIndexDts = path.join(targetDirDistGenerated, 'index.d.ts');
|
|
93
|
-
targetPackageJson.main = "./".concat(path.relative(targetDir, generatedIndexJs));
|
|
94
|
-
targetPackageJson.types = "./".concat(path.relative(targetDir, generatedIndexDts));
|
|
95
|
-
}
|
|
96
|
-
updatedPackageJsonString = JSON.stringify(targetPackageJson, null, 2);
|
|
97
|
-
if (!(originalPackageJsonString !== updatedPackageJsonString)) return [3 /*break*/, 3];
|
|
98
|
-
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(targetDirPackageJson, updatedPackageJsonString)];
|
|
99
|
-
case 2:
|
|
100
|
-
_a.sent();
|
|
101
|
-
_a.label = 3;
|
|
102
|
-
case 3: return [2 /*return*/];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
function writeTsconfig() {
|
|
108
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
-
var existingTsconfig, includePath, generatedTsconfig;
|
|
110
|
-
return __generator(this, function (_a) {
|
|
111
|
-
switch (_a.label) {
|
|
112
|
-
case 0: return [4 /*yield*/, util_node_1.promisifiedFs.exists(targetDirTsconfig)];
|
|
113
|
-
case 1:
|
|
114
|
-
if (!_a.sent()) return [3 /*break*/, 4];
|
|
115
|
-
existingTsconfig = require(targetDirTsconfig);
|
|
116
|
-
includePath = "./".concat(path.relative(targetDir, generatedIndex));
|
|
117
|
-
if (!(existingTsconfig.include && !existingTsconfig.include.includes(includePath))) return [3 /*break*/, 3];
|
|
118
|
-
existingTsconfig.include.push(includePath);
|
|
119
|
-
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(targetDirTsconfig, JSON.stringify(existingTsconfig, null, 4))];
|
|
120
|
-
case 2:
|
|
121
|
-
_a.sent();
|
|
122
|
-
_a.label = 3;
|
|
123
|
-
case 3: return [3 /*break*/, 6];
|
|
124
|
-
case 4:
|
|
125
|
-
generatedTsconfig = Object.assign({}, tsconfig);
|
|
126
|
-
generatedTsconfig.include = ["./".concat(path.relative(targetDir, generatedIndex))];
|
|
127
|
-
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(targetDirTsconfig, JSON.stringify(generatedTsconfig, null, 4))];
|
|
128
|
-
case 5:
|
|
129
|
-
_a.sent();
|
|
130
|
-
_a.label = 6;
|
|
131
|
-
case 6: return [2 /*return*/];
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, publicEntryRelOverride, distDirRel, targetDirGenerated, generatedIndex;
|
|
69
|
+
var targetDir, sourceRootsRaw, sourceRoots, primaryRoot, publicEntryRelOverride, distDirRel, targetDirGenerated, generatedIndex, contract;
|
|
137
70
|
return __generator(this, function (_a) {
|
|
138
71
|
switch (_a.label) {
|
|
139
72
|
case 0:
|
|
140
73
|
targetDir = process.env.INIT_CWD;
|
|
141
|
-
targetDirTsconfig = path.join(targetDir, 'tsconfig.json');
|
|
142
74
|
sourceRootsRaw = (process.env.REFLECTION_SOURCE_DIRS || '')
|
|
143
75
|
.split(',')
|
|
144
76
|
.map(function (s) { return s.trim(); })
|
|
@@ -151,14 +83,18 @@ function build() {
|
|
|
151
83
|
? path.join(targetDir, 'generated', primaryRoot)
|
|
152
84
|
: path.join(targetDir, 'generated');
|
|
153
85
|
generatedIndex = path.join(targetDirGenerated, 'index.ts');
|
|
154
|
-
|
|
86
|
+
contract = new BuildContract_1.BuildContract({
|
|
87
|
+
packageDir: targetDir,
|
|
88
|
+
primaryRoot: primaryRoot,
|
|
89
|
+
distDirRel: distDirRel,
|
|
90
|
+
generatedIndexPath: generatedIndex,
|
|
91
|
+
fix: !!options.fix,
|
|
92
|
+
});
|
|
93
|
+
return [4 /*yield*/, contract.apply()];
|
|
155
94
|
case 1:
|
|
156
|
-
_a.sent();
|
|
157
|
-
return [4 /*yield*/, writeTsconfig()];
|
|
158
|
-
case 2:
|
|
159
95
|
_a.sent();
|
|
160
96
|
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots, publicEntryRelOverride)];
|
|
161
|
-
case
|
|
97
|
+
case 2:
|
|
162
98
|
_a.sent();
|
|
163
99
|
return [2 /*return*/];
|
|
164
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,qEAAoE;AACpE,iDAAgD;AAOhD,SAAsB,KAAK,CAAC,OAA0B;IAA1B,wBAAA,EAAA,YAA0B;;;;;;oBAC9C,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAkB,CAAC;oBAK3C,cAAc,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;yBAC9D,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC;yBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;oBAGb,WAAW,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACnE,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAI7B,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;oBAE5D,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC;oBAKvD,kBAAkB,GACtB,WAAW,IAAI,WAAW,KAAK,KAAK;wBAClC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;wBAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAElC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;oBAK3D,QAAQ,GAAG,IAAI,6BAAa,CAAC;wBACjC,UAAU,EAAE,SAAS;wBACrB,WAAW,aAAA;wBACX,UAAU,YAAA;wBACV,kBAAkB,EAAE,cAAc;wBAClC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG;qBACnB,CAAC,CAAC;oBACH,qBAAM,QAAQ,CAAC,KAAK,EAAE,EAAA;;oBAAtB,SAAsB,CAAC;oBAEvB,qBAAM,IAAA,yCAAmB,EAAC,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,sBAAsB,CAAC,EAAA;;oBAA7G,SAA6G,CAAC;;;;;CAC/G;AA5CD,sBA4CC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Graph } from '@dagrejs/graphlib';
|
|
1
2
|
/**
|
|
2
3
|
* @param packageDir Root of the package (contains package.json)
|
|
3
4
|
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
@@ -15,3 +16,20 @@ export declare function writeGeneratedIndex(packageDir: string, packageGenerated
|
|
|
15
16
|
* and correct for workspace symlinks (the symlinked package root carries its own dist).
|
|
16
17
|
*/
|
|
17
18
|
export declare function dependencyHasSourceGraph(packageDir: string, packageName: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Full path to the dependency's source-graph artifact, or undefined when the dependency is
|
|
21
|
+
* not installed or not reflection-built. Same walk as `dependencyHasSourceGraph`; exposed for
|
|
22
|
+
* static graph harvesting (reflection-doctor).
|
|
23
|
+
*/
|
|
24
|
+
export declare function findDependencySourceGraph(packageDir: string, packageName: string): string | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The installed location of a dependency, resolved by walking `node_modules` up from the
|
|
27
|
+
* consuming package — npm-layout resolution: the nearest installed copy shadows hoisted ones.
|
|
28
|
+
*/
|
|
29
|
+
export declare function findDependencyDir(packageDir: string, packageName: string): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The graph exactly as a build emits it: parsed from the package's source roots, with
|
|
32
|
+
* build-time-non-loadable declarations pruned. Owned here so build emit and diagnostic
|
|
33
|
+
* tooling (reflection-doctor drift checks) share one pipeline.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createEmittedSourceGraph(packageDir: string, sourceRootsRel: string[]): Promise<Graph>;
|
|
@@ -62,7 +62,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
62
62
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
63
63
|
};
|
|
64
64
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
65
|
-
exports.dependencyHasSourceGraph = exports.writeGeneratedIndex = void 0;
|
|
65
|
+
exports.createEmittedSourceGraph = exports.findDependencyDir = exports.findDependencySourceGraph = exports.dependencyHasSourceGraph = exports.writeGeneratedIndex = void 0;
|
|
66
66
|
var fs = __importStar(require("fs"));
|
|
67
67
|
var path = __importStar(require("path"));
|
|
68
68
|
var util_node_1 = require("@proteinjs/util-node");
|
|
@@ -143,11 +143,11 @@ function sourceRepositoryLoader(packageDir, generatedIndexPath, sourceRootsRel)
|
|
|
143
143
|
packageJson = _a.sent();
|
|
144
144
|
code = loadDependencySourceGraphs(packageDir, packageJson);
|
|
145
145
|
roots = Array.isArray(sourceRootsRel) ? sourceRootsRel : [sourceRootsRel];
|
|
146
|
-
return [4 /*yield*/, (
|
|
146
|
+
return [4 /*yield*/, createEmittedSourceGraph(packageDir, roots)];
|
|
147
147
|
case 2:
|
|
148
148
|
sourceGraph = _a.sent();
|
|
149
|
-
code += generateSourceGraph(sourceGraph
|
|
150
|
-
code += generateSourceLinks(sourceGraph, packageJson, generatedIndexPath);
|
|
149
|
+
code += generateSourceGraph(sourceGraph);
|
|
150
|
+
code += generateSourceLinks(sourceGraph, packageJson, packageDir, generatedIndexPath);
|
|
151
151
|
code += mergeSourceGraph();
|
|
152
152
|
return [2 /*return*/, code];
|
|
153
153
|
}
|
|
@@ -210,24 +210,43 @@ function loadDependencySourceGraphs(packageDir, packageJson) {
|
|
|
210
210
|
* and correct for workspace symlinks (the symlinked package root carries its own dist).
|
|
211
211
|
*/
|
|
212
212
|
function dependencyHasSourceGraph(packageDir, packageName) {
|
|
213
|
+
return !!findDependencySourceGraph(packageDir, packageName);
|
|
214
|
+
}
|
|
215
|
+
exports.dependencyHasSourceGraph = dependencyHasSourceGraph;
|
|
216
|
+
/**
|
|
217
|
+
* Full path to the dependency's source-graph artifact, or undefined when the dependency is
|
|
218
|
+
* not installed or not reflection-built. Same walk as `dependencyHasSourceGraph`; exposed for
|
|
219
|
+
* static graph harvesting (reflection-doctor).
|
|
220
|
+
*/
|
|
221
|
+
function findDependencySourceGraph(packageDir, packageName) {
|
|
222
|
+
var dependencyDir = findDependencyDir(packageDir, packageName);
|
|
223
|
+
if (!dependencyDir) {
|
|
224
|
+
return undefined;
|
|
225
|
+
}
|
|
226
|
+
var artifactPath = path.join(dependencyDir, 'dist', 'generated', 'index.js');
|
|
227
|
+
return fs.existsSync(artifactPath) ? artifactPath : undefined;
|
|
228
|
+
}
|
|
229
|
+
exports.findDependencySourceGraph = findDependencySourceGraph;
|
|
230
|
+
/**
|
|
231
|
+
* The installed location of a dependency, resolved by walking `node_modules` up from the
|
|
232
|
+
* consuming package — npm-layout resolution: the nearest installed copy shadows hoisted ones.
|
|
233
|
+
*/
|
|
234
|
+
function findDependencyDir(packageDir, packageName) {
|
|
213
235
|
var currentDir = packageDir;
|
|
214
|
-
// Upward fs walk; exits are internal (found /
|
|
236
|
+
// Upward fs walk; exits are internal (found / fs root).
|
|
215
237
|
for (;;) {
|
|
216
238
|
var candidate = path.join(currentDir, 'node_modules', packageName);
|
|
217
|
-
if (fs.existsSync(path.join(candidate, 'dist', 'generated', 'index.js'))) {
|
|
218
|
-
return true;
|
|
219
|
-
}
|
|
220
239
|
if (fs.existsSync(candidate)) {
|
|
221
|
-
return
|
|
240
|
+
return candidate;
|
|
222
241
|
}
|
|
223
242
|
var parent_1 = path.dirname(currentDir);
|
|
224
243
|
if (parent_1 === currentDir) {
|
|
225
|
-
return
|
|
244
|
+
return undefined;
|
|
226
245
|
}
|
|
227
246
|
currentDir = parent_1;
|
|
228
247
|
}
|
|
229
248
|
}
|
|
230
|
-
exports.
|
|
249
|
+
exports.findDependencyDir = findDependencyDir;
|
|
231
250
|
/**
|
|
232
251
|
* Determine an import specifier for a dependency that respects its package.json exports or main/module fields.
|
|
233
252
|
*/
|
|
@@ -283,8 +302,30 @@ function getDependencyImportSpecifier(packageDir, packageName) {
|
|
|
283
302
|
return "".concat(packageName, "/").concat(entryPoint);
|
|
284
303
|
}
|
|
285
304
|
}
|
|
286
|
-
|
|
287
|
-
|
|
305
|
+
/**
|
|
306
|
+
* The graph exactly as a build emits it: parsed from the package's source roots, with
|
|
307
|
+
* build-time-non-loadable declarations pruned. Owned here so build emit and diagnostic
|
|
308
|
+
* tooling (reflection-doctor drift checks) share one pipeline.
|
|
309
|
+
*/
|
|
310
|
+
function createEmittedSourceGraph(packageDir, sourceRootsRel) {
|
|
311
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
312
|
+
var packageJson, sourceGraph;
|
|
313
|
+
return __generator(this, function (_a) {
|
|
314
|
+
switch (_a.label) {
|
|
315
|
+
case 0: return [4 /*yield*/, getPackageJson(packageDir)];
|
|
316
|
+
case 1:
|
|
317
|
+
packageJson = _a.sent();
|
|
318
|
+
return [4 /*yield*/, (0, createSourceGraph_1.createSourceGraph)(packageDir, [], sourceRootsRel)];
|
|
319
|
+
case 2:
|
|
320
|
+
sourceGraph = _a.sent();
|
|
321
|
+
removeNonLoadables(sourceGraph, packageJson.name);
|
|
322
|
+
return [2 /*return*/, sourceGraph];
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
exports.createEmittedSourceGraph = createEmittedSourceGraph;
|
|
328
|
+
function generateSourceGraph(sourceGraph) {
|
|
288
329
|
var code = "\n\n/** Generate Source Graph */\n\n";
|
|
289
330
|
var serializedSourceGraph = util_1.graphSerializer.serialize(sourceGraph);
|
|
290
331
|
var doubleEscapedSerializedSourceGraph = (0, jsesc_1.default)(serializedSourceGraph, { json: true }); // since we write to file, need to escape a second time
|
|
@@ -349,7 +390,7 @@ function removeNonLoadableNode(packageScope, buildTargetPackageName, sourceGraph
|
|
|
349
390
|
}
|
|
350
391
|
return shouldRemove;
|
|
351
392
|
}
|
|
352
|
-
function generateSourceLinks(sourceGraph, packageJson, generatedIndexPath) {
|
|
393
|
+
function generateSourceLinks(sourceGraph, packageJson, packageDir, generatedIndexPath) {
|
|
353
394
|
var code = "\n\n/** Generate Source Links */\n\n";
|
|
354
395
|
var linkableNodes = [];
|
|
355
396
|
for (var _i = 0, _a = sourceGraph.nodes(); _i < _a.length; _i++) {
|
|
@@ -367,7 +408,9 @@ function generateSourceLinks(sourceGraph, packageJson, generatedIndexPath) {
|
|
|
367
408
|
if (!node.filePath) {
|
|
368
409
|
continue;
|
|
369
410
|
}
|
|
370
|
-
|
|
411
|
+
// node.filePath is package-relative (never serialized absolute); resolve against the
|
|
412
|
+
// package dir to compute the real import location for the generated index.
|
|
413
|
+
var relativeImportPath = path.relative(path.dirname(generatedIndexPath), path.join(packageDir, node.filePath));
|
|
371
414
|
code += "import { ".concat(node.name, " } from '").concat(relativeImportPath.replace(/\.[^/.]+$/, ''), "';\n");
|
|
372
415
|
linkableNodes.push(node);
|
|
373
416
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|