move-qcp
Version:
Deploy CPQ Quote Calculator Plugin
84 lines (76 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createQCP = void 0;
const path_1 = require("path");
const util_1 = require("util");
const fs_1 = require("fs");
const mkdirPromise = (0, util_1.promisify)(fs_1.mkdir);
const writeFilePromise = (0, util_1.promisify)(fs_1.writeFile);
async function createQCP(flags) {
try {
const path = flags.outputdir;
await Promise.all([
createFile(`${path}/${flags.name}/config.json`, getSettingFileCode(flags.name)),
createFile(`${path}/${flags.name}/main.js`, mainCode),
]);
await Promise.all([
createFile(`${path}/${flags.name}/onAfterCalculate/afterCalculate.js`, afterCalculateCode),
createFile(`${path}/${flags.name}/onBeforeCalculate/beforeCalculate.js`, beforeCalculateCode),
createFile(`${path}/${flags.name}/onInit/init.js`, initCode),
createFile(`${path}/${flags.name}/pageSecurityPlugin/psp.js`, pspCode),
]);
return { isSuccess: true };
}
catch (err) {
return { isSuccess: false, errorMessage: err };
}
}
exports.createQCP = createQCP;
async function createFile(path, contents) {
await mkdirPromise((0, path_1.dirname)(path), { recursive: true });
await writeFilePromise(path, contents);
}
const pspCode = `export function isVisible(fieldName, record, conn, objectName){
}
export function isEditable(fieldName, record, conn, objectName) {
}`;
const initCode = `export function init(lines, conn){
return Promise.resolve();
}`;
const beforeCalculateCode = `export function beforeCalculate(quoteModel, quoteLineModels, conn) {
return Promise.resolve();
};`;
const afterCalculateCode = `export function afterCalculate(quoteModel, quoteLineModels, conn) {
return Promise.resolve();
};`;
const mainCode = `import { isVisible, isEditable } from './pageSecurityPlugin/psp'
import { init } from './onInit/init'
import { beforeCalculate } from './onBeforeCalculate/beforeCalculate'
import { afterCalculate } from './onAfterCalculate/afterCalculate'
export function onInit(quoteLineModels, conn){
return init(quoteLineModels, conn);
}
export function onBeforeCalculate(quote, lines, conn){
return beforeCalculate(quote, lines, conn);
}
export function onAfterCalculate(quote, lines, conn){
return afterCalculate(quote, lines, conn);
}
export function isFieldVisibleForObject(fieldName, line, conn, objectName){
return isVisible(fieldName, line, conn, objectName);
}
export function isFieldEditableForObject(fieldName, line, conn, objectName){
return isEditable(fieldName, line, conn, objectName);
}`;
function getSettingFileCode(name) {
return `{
"Name": "${name}",
"SBQQ__GroupFields__c": [],
"SBQQ__ConsumptionScheduleFields__c": [],
"SBQQ__QuoteLineFields__c": [
],
"SBQQ__QuoteFields__c": [
]
}`;
}
//# sourceMappingURL=HandleCreateQCP.js.map