forked from stackblitz/alien-signals
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
66 lines (63 loc) · 1.69 KB
/
build.js
File metadata and controls
66 lines (63 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const path = require('path');
const ts = require('typescript');
const config = ts.getParsedCommandLineOfConfigFile(
path.join(__dirname, 'tsconfig.json'),
undefined,
{
...ts.sys,
onUnRecoverableConfigFileDiagnostic: () => { },
}
);
if (config === undefined) {
console.error('Failed to parse tsconfig.json');
process.exit(1);
}
const typesProgram = ts.createProgram({
rootNames: config.fileNames,
configFileParsingDiagnostics: config.errors,
options: {
...config.options,
outDir: 'types',
declaration: true,
emitDeclarationOnly: true,
},
});
const cjsProgram = ts.createProgram({
rootNames: config.fileNames,
configFileParsingDiagnostics: config.errors,
options: {
...config.options,
outDir: 'cjs',
removeComments: true,
module: ts.ModuleKind.CommonJS,
},
});
const esmProgram = ts.createProgram({
rootNames: config.fileNames,
configFileParsingDiagnostics: config.errors,
options: {
...config.options,
outDir: 'esm',
removeComments: true,
module: ts.ModuleKind.ESNext,
},
});
typesProgram.emit(undefined, ts.sys.writeFile);
cjsProgram.emit(undefined, (fileName, text) => {
fileName = fileName.slice(0, -'.js'.length) + '.cjs';
text = text.replace(/\.\/system\.js/g, './system.cjs');
ts.sys.writeFile(fileName, text);
});
esmProgram.emit(undefined, (fileName, text) => {
fileName = fileName.slice(0, -'.js'.length) + '.mjs';
text = text.replace(/\.\/system\.js/g, './system.mjs');
text = text.replace(
`var ReactiveFlags;\n(function (ReactiveFlags)`,
`var ReactiveFlags = /*#__PURE__*/(function (ReactiveFlags = {})`,
);
text = text.replace(
`})(ReactiveFlags || (ReactiveFlags = {}));`,
` return ReactiveFlags;\n})();`,
)
ts.sys.writeFile(fileName, text);
});