nsify
Version:
NetSuite-side require() the node.js
39 lines (32 loc) • 1.09 kB
JavaScript
;
var path = require('path'),
nsify = require('./index');
module.exports = (nsObj, filePath) => {
let nskObj = JSON.parse(JSON.stringify(nsObj));
if (nskObj.id.indexOf('customscript') !== 0) {
nskObj.id = `customscript${nskObj.id}`;
}
let dir = path.dirname(filePath);
nskObj.files = [];
nskObj.libs.forEach(lib => {
let ext = ~lib.indexOf('.js') ? '' : '.js',
libPath = path.resolve(`${dir}/${lib}${ext}`),
libScript = nsify(libPath);
libScript && nskObj.files.push([libPath, libScript.alias]);
});
// add main file after libs
nskObj.files.push([filePath, nskObj.alias]);
let alias = nskObj.alias;
if (nskObj.functions) {
let funcs = nskObj.functions;
Object.keys(nskObj.functions).forEach(func => {
funcs[func] = `${alias}.${funcs[func]}`;
});
} else if (nskObj.function) {
nskObj.function = `${alias}.${nskObj.function}`;
}
['libs', 'custom'].forEach(prop => {
delete nskObj[prop];
});
return nskObj;
};