-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.mjs
executable file
·41 lines (36 loc) · 1.22 KB
/
main.mjs
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
#!/usr/bin/env node
import * as fs from "fs";
import { ArgumentParser } from "argparse";
import { restore } from "./lib/core.mjs";
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const { version, description } = require("./package.json");
const parser = new ArgumentParser({ description });
parser.add_argument("-v", "--version", { action: "version", version });
parser.add_argument("min_file", { help: "Path to minified .js file" });
parser.add_argument("map_file", {
nargs: "?",
help: "Override path to .map file",
});
parser.add_argument("-vb", "--verbose", {
default: 0,
type: Number,
choices: [0, 1, 2],
help: "Verbosity level",
});
parser.add_argument("-o", "--out", {
required: true,
help: "Path to minified .js file",
});
const args = parser.parse_args();
if (args.map_file === undefined) {
if (!args.min_file.endsWith(".js")) {
console.error(`${args.min_file} is not JS file!`);
process.exit(1);
}
args.map_file = args.min_file + ".map";
}
const content = fs.readFileSync(args.min_file, "utf-8");
const mapContent = fs.readFileSync(args.map_file, "utf-8");
const restored = await restore(content, mapContent, args);
fs.writeFileSync(args.out, restored, "utf-8");