-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerateSources.js
39 lines (36 loc) · 1.2 KB
/
generateSources.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
const fs = require("fs");
const path = require("path");
function genNewSrc(src) {
const newSrc = src.replace(
/(\s*)\/\*\s*([or]):([^]+?)\s*\*\/(\s*)(\w*)(\s*)/g,
function (_, bws, type, replacement, ews, ident, iws) {
let ret = "";
if (replacement.startsWith("-")) {
replacement = replacement.substring(1);
} else {
ret += bws;
}
if (type == "r") {
if (replacement.endsWith("-")) {
replacement = replacement.substring(0, replacement.length - 1);
iws = "";
}
ret += replacement + iws;
} else if (replacement.endsWith("-")) {
ret += replacement.substring(0, replacement.length - 1) + ident + iws;
} else {
ret += replacement + ews + ident + iws;
}
return ret;
}
);
return newSrc;
}
const pairs = [["src/IterPlus.ts", "src/AsyncIterPlus.ts"]];
for (const [src, dest] of pairs) {
fs.writeFileSync(
path.join(__dirname, dest),
genNewSrc(fs.readFileSync(path.join(__dirname, src), "utf8")),
"utf8"
);
}