-
Notifications
You must be signed in to change notification settings - Fork 0
/
ucpem.js
59 lines (49 loc) · 1.68 KB
/
ucpem.js
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
/// <reference path="./.vscode/config.d.ts" />
const { project, github, run, join, constants, copy } = require("ucpem")
const { build } = require("esbuild")
const { readFile, rename, rm } = require("fs/promises")
project.prefix("src").res("gekr",
github("bt7s7k7/CommonTypes").res("comTypes")
)
project.prefix("src").res("gekrPrinter",
project.ref("gekr"),
github("bt7s7k7/LogLib").res("prettyPrint"),
github("bt7s7k7/TextFormat").res("textFormatHTML")
)
project.script("build", async () => {
const target = join(constants.projectPath, "./dist")
await rm(join(target), { recursive: true })
const success = await build({
bundle: true,
format: "cjs",
entryPoints: ["./src/index.ts"],
outfile: "./dist/index.js",
sourcemap: "external",
logLevel: "info",
platform: "node",
external: [
"kompa",
],
plugins: [
{
name: "Externalize directory",
setup(build) {
build.onLoad({ filter: /./ }, async (args) => {
const contents = await readFile(args.path).then(v => v.toString()
.replace(/\.\.\/comTypes\/[^"]+/g, "kompa")
)
return { contents, loader: "ts" }
})
}
}
]
}).then(() => true, () => false)
if (success) await run("yarn tsc")
await rm(join(target, "./comTypes"), { recursive: true })
await copy(target, target, {
quiet: true,
replacements: [
[/\.\.\/comTypes\/[^"]+/g, "kompa"],
]
})
}, { desc: "Builds the npm target" })