@selfage/generator_cli
Version:
Code generation for message, service, and database.
55 lines • 6.37 kB
JavaScript
;
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=