UNPKG

derw

Version:

An Elm-inspired language that transpiles to TypeScript

152 lines (151 loc) 5.51 kB
#!/usr/bin/env ts-node "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.main = void 0; const result_1 = require("@eeue56/ts-core/build/main/lib/result"); function parseCliCommand() { if (typeof process.argv[2] === "undefined") { return (0, result_1.Err)("No command provided."); } switch (process.argv[2]) { case "init": return (0, result_1.Ok)("init"); case "compile": return (0, result_1.Ok)("compile"); case "test": return (0, result_1.Ok)("test"); case "install": return (0, result_1.Ok)("install"); case "info": return (0, result_1.Ok)("info"); case "repl": return (0, result_1.Ok)("repl"); case "bundle": return (0, result_1.Ok)("bundle"); case "format": return (0, result_1.Ok)("format"); case "template": return (0, result_1.Ok)("template"); case "version": return (0, result_1.Ok)("version"); default: { return (0, result_1.Err)(`Unknown command \`${process.argv[2]}\``); } } } function showCommandHelp() { console.log("To get started:"); console.log("Start a package via `init`"); console.log("Compile via `compile`"); console.log("Or compile and test via `test`"); console.log("Or get info about a file or package via `info`"); console.log("Available commands:"); console.log([ "init", "compile", "test", "install", "info", "repl", "bundle", "format", "template", ].join(" | ")); } async function main() { const command = parseCliCommand(); if (command.kind === "Err") { console.log(command.error); showCommandHelp(); process.exit(1); } const argv = process.argv; const { fileExists } = await Promise.resolve().then(() => __importStar(require("./cli/utils"))); const isInPackageDirectory = await fileExists("derw-package.json"); switch (command.value) { case "compile": { const { compileFiles } = await Promise.resolve().then(() => __importStar(require("./cli/compile"))); await compileFiles(isInPackageDirectory, argv); return 0; } case "init": { const { init } = await Promise.resolve().then(() => __importStar(require("./cli/init"))); await init(isInPackageDirectory, argv); return 0; } case "install": { const { install } = await Promise.resolve().then(() => __importStar(require("./cli/install"))); await install(isInPackageDirectory, argv); return 0; } case "test": { const { runTests } = await Promise.resolve().then(() => __importStar(require("./cli/testing"))); await runTests(isInPackageDirectory, argv); return 0; } case "info": { const { info } = await Promise.resolve().then(() => __importStar(require("./cli/info"))); await info(isInPackageDirectory, argv); return 0; } case "repl": { const { repl } = await Promise.resolve().then(() => __importStar(require("./cli/repl"))); await repl(isInPackageDirectory, argv); return 0; } case "bundle": { const { bundle } = await Promise.resolve().then(() => __importStar(require("./cli/bundle"))); await bundle(isInPackageDirectory, argv); return 0; } case "format": { const { format } = await Promise.resolve().then(() => __importStar(require("./cli/format"))); await format(isInPackageDirectory, argv); return 0; } case "template": { const { template } = await Promise.resolve().then(() => __importStar(require("./cli/template"))); await template(isInPackageDirectory, argv); return 0; } case "version": { const { version } = await Promise.resolve().then(() => __importStar(require("./cli/version"))); await version(isInPackageDirectory, argv); return 0; } } } exports.main = main; if (process.versions.bun) { if (require.main === process.mainModule) { main(); } } else { if (require.main === module) { main(); } }