generator-portals-clientside
Version:
Generates a SharePoint clientside project skeleton. Brought to you by Skyline's Portals & Collaboration Team.
36 lines (32 loc) • 1.29 kB
JavaScript
var fs = require("fs");
module.exports = {
write1: function() {
templateFile(this, "index.js");
templateFile(this, "menuTemplate.js");
templateFile(this, "menuData.js");
templateFile(this, "topnav.css");
templateFile(this, "constants.js");
this.fs.copy(this.templatePath("MenuListSchema.xml"), 'ProvisioningSchemas/MenuListSchema.xml');
this.fs.copy(this.templatePath("MenuSeedData.xlsx"), 'ProvisioningSchemas/MenuSeedData.xlsx');
updateComponentsIndex(this);
}
}
var templateFile = function(generator, filename) {
generator.fs.copyTpl(
generator.templatePath("component/" + filename),
`src/scripts/components/${generator.params.name}/${filename}`,
generator.params
);
};
var updateComponentsIndex = function(generator) {
var indexFilePath = generator.destinationPath("src/scripts/components/index.js");
var fileContents = generator.fs.read(indexFilePath);
var textToReplace = "module.exports = components;"
if (fileContents.indexOf(textToReplace) > -1) {
var newText =
`components.${generator.params.name} = require('./${generator.params.name}');
${textToReplace}`
fileContents = fileContents.replace(textToReplace, newText);
fs.writeFileSync(indexFilePath, fileContents);
}
}