create-snippet
Version:
npx tool for generating code snippets
54 lines (53 loc) • 2.72 kB
JavaScript
;
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;