UNPKG

typedraft

Version:

TypeDraft is a superset of typescript with built-in support for DSL extension and literate programming.

77 lines (76 loc) 2.6 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const program = require("commander"); const literator_1 = require("./literator"); const path_1 = require("path"); const fs_extra_1 = require("fs-extra"); const cli_common_1 = require("cli-common"); const cosmiconfig_1 = require("./cosmiconfig"); const package_json = fs_extra_1.readJSONSync(path_1.resolve(__dirname, "../../package.json")); program.version(package_json.version); program.command("help").action(() => { program.help(); }); program.command("dev").action(() => { cosmiconfig_1.withConfig(config => { config.Targets.forEach(({ src, dest, baseDir, extension = ".ts" }) => { const devConfig = { rename: { extension, }, transform(path, code) { if (path.endsWith(".tsx")) { let result = ""; try { result = literator_1.ComposeFile(code, config); } catch (error) { console.trace(error); } return result; } else { return code; } }, }; if (baseDir) { devConfig.baseDir = baseDir; } cli_common_1.dev(src, dest, devConfig); }); }); }); program.command("build").action(() => { cosmiconfig_1.withConfig(config => { config.Targets.forEach(({ src, dest, baseDir, extension = ".ts" }) => { const devConfig = { rename: { extension, }, transform(path, code) { if (path.endsWith(".tsx")) { const result = literator_1.ComposeFile(code, config); return result; } else { return code; } }, }; if (baseDir) { devConfig.baseDir = baseDir; } cli_common_1.build(src, dest, devConfig); }); }); }); program.command("clean").action(() => { cosmiconfig_1.withConfig(config => { config.Targets.forEach(({ dest }) => { cli_common_1.clean(dest); }); }); }); program.parse(process.argv);