@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
49 lines • 1.92 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
const featuresUtil = {
filePathToActionCode(path) {
const parts = path.split(path_1.default.sep);
const name = parts.pop() ?? '';
const ext = path_1.default.extname(name);
const nameNoExt = name.substr(0, name.length - ext.length);
const code = nameNoExt.replace('Action', '');
return spruce_skill_utils_1.namesUtil.toCamel(code);
},
generateCommand(featureCode, actionCode) {
if (featureCode === actionCode) {
return featureCode;
}
return `${actionCode}.${featureCode}`;
},
generateCommandsIncludingAliases(featureCode, actionCode, action) {
const baseCommand = this.generateCommand(featureCode, actionCode);
const aliases = action.commandAliases ?? [];
return [baseCommand, ...aliases];
},
generateOptionAliases(schema) {
const fields = schema.fields || {};
const aliases = {};
Object.keys(fields).forEach((fieldName) => {
const fullName = `${fieldName}`;
let placeholder = '';
const field = fields[fieldName];
const type = field.type;
if (type !== 'boolean') {
placeholder = ` <${fullName}>`;
}
else {
placeholder = ` [true|false]`;
}
const fullNameWithPlaceholder = `--${fullName}${placeholder}`;
aliases[fieldName] = fullNameWithPlaceholder;
});
return aliases;
},
};
exports.default = featuresUtil;
//# sourceMappingURL=feature.utilities.js.map