UNPKG

create-snippet

Version:
54 lines (53 loc) 2.72 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModulePath = void 0; const path_1 = __importDefault(require("path")); const enums_1 = require("../../enums"); const string_1 = require("../string"); class ModulePath { string; constructor() { this.string = new string_1.ModuleString(); } generateSnippetFileName(options) { return path_1.default .basename(options.pathToSnippet) .replaceAll(enums_1.enumSnippetName.camelCase, this.string.toCamelCase(options.name)) .replaceAll(enums_1.enumSnippetName.lowerKebabCase, this.string.toLowerKebabCase(options.name)) .replaceAll(enums_1.enumSnippetName.lowerSnakeCase, this.string.toLowerSnakeCase(options.name)) .replaceAll(enums_1.enumSnippetName.pascalCase, this.string.toPascalCase(options.name)) .replaceAll(enums_1.enumSnippetName.upperKebabCase, this.string.toUpperKebabCase(options.name)) .replaceAll(enums_1.enumSnippetName.upperSnakeCase, this.string.toUpperSnakeCase(options.name)); } generateDefaultPath(options) { const snippetFileName = this.generateSnippetFileName(options); const unformattedPath = path_1.default.join(options.config.pathToSnippet); const formattedPath = path_1.default.join(...[options.path, options.name]); const dirname = path_1.default.dirname(options.pathToSnippet); const pathSnippetFile = path_1.default.join(...[dirname.replaceAll(unformattedPath, formattedPath)]); const pathWriteSnippetFile = path_1.default.join(...[pathSnippetFile, snippetFileName]); return { pathSnippetFile, pathWriteSnippetFile }; } generateFlatPath(options) { const snippetFileName = this.generateSnippetFileName(options); const pathFlatSnippetFile = path_1.default.join(...[options.path]); const pathFlatWriteSnippetFile = path_1.default.join(...[pathFlatSnippetFile, snippetFileName]); return { pathFlatSnippetFile, pathFlatWriteSnippetFile }; } generate(options) { const snippetFileName = this.generateSnippetFileName(options); const { pathSnippetFile, pathWriteSnippetFile } = this.generateDefaultPath(options); const { pathFlatSnippetFile, pathFlatWriteSnippetFile } = this.generateFlatPath(options); return { snippetFileName, pathSnippetFile, pathFlatSnippetFile, pathWriteSnippetFile, pathFlatWriteSnippetFile, }; } } exports.ModulePath = ModulePath;