UNPKG

@selfage/generator_cli

Version:

Code generation for message, service, and database.

55 lines 6.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRelativePath = isRelativePath; exports.normalizeRelativePathForNode = normalizeRelativePathForNode; exports.toInitialUppercased = toInitialUppercased; exports.toInitalLowercased = toInitalLowercased; exports.toUppercaseSnaked = toUppercaseSnaked; exports.joinArray = joinArray; exports.toUnixPath = toUnixPath; const path = require("path"); let UPPER_CASES_REGEXP = /[A-Z]/; function isRelativePath(p) { return p.startsWith("../") || p.startsWith("./"); } // Given a resolved relative path, return the relative path compliant with // Nodejs module resolution, i.e., must start with `./` or `../`. function normalizeRelativePathForNode(relativePath) { if (isRelativePath(relativePath)) { return relativePath; } else { return "./" + relativePath; } } function toInitialUppercased(name) { return name.charAt(0).toUpperCase() + name.slice(1); } function toInitalLowercased(name) { return name.charAt(0).toLowerCase() + name.slice(1); } function toUppercaseSnaked(name) { let upperCaseSnakedName = new Array(); upperCaseSnakedName.push(name.charAt(0)); for (let i = 1; i < name.length; i++) { let char = name.charAt(i); if (UPPER_CASES_REGEXP.test(char)) { upperCaseSnakedName.push("_", char); } else { upperCaseSnakedName.push(char.toUpperCase()); } } return upperCaseSnakedName.join(""); } // Add prefix and suffix to each statement. function joinArray(statements, prefix, suffix) { return statements.map((s) => `${prefix}${s}${suffix}`).join(""); } function toUnixPath(originalPath) { if (!originalPath) { return undefined; } return originalPath.split(path.sep).join(path.posix.sep); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSx3Q0FFQztBQUlELG9FQU1DO0FBRUQsa0RBRUM7QUFFRCxnREFFQztBQUVELDhDQVlDO0FBR0QsOEJBRUM7QUFFRCxnQ0FLQztBQWxERCw2QkFBOEI7QUFFOUIsSUFBSSxrQkFBa0IsR0FBRyxPQUFPLENBQUM7QUFFakMsU0FBZ0IsY0FBYyxDQUFDLENBQVM7SUFDdEMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELDBFQUEwRTtBQUMxRSxpRUFBaUU7QUFDakUsU0FBZ0IsNEJBQTRCLENBQUMsWUFBb0I7SUFDL0QsSUFBSSxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxHQUFHLFlBQVksQ0FBQztJQUM3QixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLElBQVk7SUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLElBQVk7SUFDNUMsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzlDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCwyQ0FBMkM7QUFDM0MsU0FBZ0IsU0FBUyxDQUFDLFVBQXlCLEVBQUUsTUFBYyxFQUFFLE1BQWM7SUFDakYsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxZQUFxQjtJQUM5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XG5cbmxldCBVUFBFUl9DQVNFU19SRUdFWFAgPSAvW0EtWl0vO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZWxhdGl2ZVBhdGgocDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwLnN0YXJ0c1dpdGgoXCIuLi9cIikgfHwgcC5zdGFydHNXaXRoKFwiLi9cIik7XG59XG5cbi8vIEdpdmVuIGEgcmVzb2x2ZWQgcmVsYXRpdmUgcGF0aCwgcmV0dXJuIHRoZSByZWxhdGl2ZSBwYXRoIGNvbXBsaWFudCB3aXRoXG4vLyBOb2RlanMgbW9kdWxlIHJlc29sdXRpb24sIGkuZS4sIG11c3Qgc3RhcnQgd2l0aCBgLi9gIG9yIGAuLi9gLlxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlbGF0aXZlUGF0aEZvck5vZGUocmVsYXRpdmVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaXNSZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoKSkge1xuICAgIHJldHVybiByZWxhdGl2ZVBhdGg7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFwiLi9cIiArIHJlbGF0aXZlUGF0aDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9Jbml0aWFsVXBwZXJjYXNlZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG5hbWUuc2xpY2UoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0luaXRhbExvd2VyY2FzZWQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VcHBlcmNhc2VTbmFrZWQobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHVwcGVyQ2FzZVNuYWtlZE5hbWUgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICB1cHBlckNhc2VTbmFrZWROYW1lLnB1c2gobmFtZS5jaGFyQXQoMCkpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8IG5hbWUubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgY2hhciA9IG5hbWUuY2hhckF0KGkpO1xuICAgIGlmIChVUFBFUl9DQVNFU19SRUdFWFAudGVzdChjaGFyKSkge1xuICAgICAgdXBwZXJDYXNlU25ha2VkTmFtZS5wdXNoKFwiX1wiLCBjaGFyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdXBwZXJDYXNlU25ha2VkTmFtZS5wdXNoKGNoYXIudG9VcHBlckNhc2UoKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB1cHBlckNhc2VTbmFrZWROYW1lLmpvaW4oXCJcIik7XG59XG5cbi8vIEFkZCBwcmVmaXggYW5kIHN1ZmZpeCB0byBlYWNoIHN0YXRlbWVudC5cbmV4cG9ydCBmdW5jdGlvbiBqb2luQXJyYXkoc3RhdGVtZW50czogQXJyYXk8c3RyaW5nPiwgcHJlZml4OiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0YXRlbWVudHMubWFwKChzKSA9PiBgJHtwcmVmaXh9JHtzfSR7c3VmZml4fWApLmpvaW4oXCJcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1VuaXhQYXRoKG9yaWdpbmFsUGF0aD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghb3JpZ2luYWxQYXRoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBcbiAgcmV0dXJuIG9yaWdpbmFsUGF0aC5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnBvc2l4LnNlcCk7XG59XG4iXX0=