sfcc-dts
Version:
> High quality Salesforce Commerce Cloud type definitions. A dw-api-types "done right"
59 lines (57 loc) • 3.05 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const console_1 = require("console");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const picocolors_1 = __importDefault(require("picocolors"));
const prompts_1 = __importDefault(require("prompts"));
const customtypes_1 = require("./customtypes");
(async () => {
const banner = `
_|_| _| _|
_|_|_| _| _|_|_| _|_|_| _|_|_| _|_|_|_| _|_|_|
_|_| _|_|_|_| _| _| _|_|_|_|_| _| _| _| _|_|
_|_| _| _| _| _| _| _| _|_|
_|_|_| _| _|_|_| _|_|_| _|_|_| _|_| _|_|_|
`;
(0, console_1.log)(picocolors_1.default.magenta(banner));
(0, console_1.log)(`Welcome to ${picocolors_1.default.magenta('sfcc-dts')} custom attributes definition generator.\n`);
let defaultpath = './sites/site_template/meta/';
let defaultdest = './cartridges/app_project/cartridge/scripts/';
let extensions;
if (fs_1.default.existsSync(path_1.default.join(defaultpath, 'system-objecttype-extensions.xml'))) {
(0, console_1.log)(`system-objecttype-extensions.xml detected at ${defaultpath}`);
extensions = path_1.default.join(defaultpath, 'system-objecttype-extensions.xml');
}
else {
const response = await (0, prompts_1.default)([
{
type: 'text',
name: 'meta',
message: 'Directory containing system-objecttype-extensions.xml?',
initial: defaultpath,
validate: value => !fs_1.default.existsSync(path_1.default.join(value, 'system-objecttype-extensions.xml')) ? `system-objecttype-extensions.xml not found in ${path_1.default.join(value, 'system-objecttype-extensions.xml')}` : true
}
]);
extensions = path_1.default.join(response.meta, 'system-objecttype-extensions.xml');
}
const destresponse = await (0, prompts_1.default)([
{
type: 'text',
name: 'path',
message: 'Folder for generated constant file?',
initial: defaultdest,
validate: value => !fs_1.default.existsSync(value) ? `Folder ${value} not found` : true
}
]);
let destination = path_1.default.join(destresponse.path, 'preferences.js');
(0, console_1.log)(`Generating constants for organization and site preferences`);
if (extensions) {
await (0, customtypes_1.generateConstants)(extensions, destination);
}
(0, console_1.log)(`\nDone!`);
})();