UNPKG

generate-riot-ts

Version:

Script to generate riot.js template files with typescript

64 lines (63 loc) 2.97 kB
"use strict"; exports.__esModule = true; var tslib_1 = require("tslib"); var fs = require("fs"); var path = require("path"); var template_file_1 = require("template-file"); function generate(exportPath, componentName) { return tslib_1.__awaiter(this, void 0, void 0, function () { var cwd, exportDirPath, templateDirPath, lowerName, upperName, exportRootPath, err_1, exportPathRiot, exportPathTypes, data, renderedRiot, renderedTypes; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: cwd = process.cwd(); exportDirPath = path.resolve(cwd, exportPath); templateDirPath = path.resolve(__dirname, "../template"); lowerName = componentName.toLowerCase(); upperName = componentName .split("-") .map(function (word) { return word.replace(/^./, word[0].toUpperCase()); }) .join(""); exportRootPath = path.join(exportDirPath, lowerName); _a.label = 1; case 1: _a.trys.push([1, 3, , 6]); return [4 /*yield*/, fs.readdirSync(exportRootPath)]; case 2: _a.sent(); return [3 /*break*/, 6]; case 3: err_1 = _a.sent(); if (!(err_1.code == "ENOENT")) return [3 /*break*/, 5]; return [4 /*yield*/, fs.mkdirSync(exportRootPath, { recursive: true })]; case 4: _a.sent(); _a.label = 5; case 5: return [3 /*break*/, 6]; case 6: exportPathRiot = path.join(exportRootPath, lowerName + ".riot"); exportPathTypes = path.join(exportRootPath, "types.ts"); data = { lower: lowerName, upper: upperName }; return [4 /*yield*/, template_file_1.renderTemplateFile(path.join(templateDirPath, "riot"), data)]; case 7: renderedRiot = _a.sent(); return [4 /*yield*/, template_file_1.renderTemplateFile(path.join(templateDirPath, "types"), data)]; case 8: renderedTypes = _a.sent(); return [4 /*yield*/, fs.writeFileSync(exportPathRiot, renderedRiot)]; case 9: _a.sent(); return [4 /*yield*/, fs.writeFileSync(exportPathTypes, renderedTypes)]; case 10: _a.sent(); return [2 /*return*/, exportRootPath]; } }); }); } exports.generate = generate;