@ibm-adw/skill-toolkit
Version:
Developing your own skills with IBM Automation Digital Worker Skill Toolkit
73 lines (57 loc) • 3.1 kB
JavaScript
/*
Licensed Materials - Property of IBM
5737-I23
Copyright IBM Corp. 2019. All Rights Reserved.
U.S. Government Users Restricted Rights:
Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
*/
const { generateReadMe } = require('./generator/readme-generator');
const { generateDoc } = require('./generator/skill-documentation-generator');
const { generatePackage } = require('./generator/package-generator');
const { generateSpec } = require('./generator/skill-spec-generator');
const fs = require('fs');
const pathModule = require('path');
// Write to file
const writeToFile = (fileName, data) => {
fs.writeFileSync(fileName, data);
};
const writeToJsonFile = (fileName, jsonObject) => {
writeToFile(fileName, JSON.stringify(jsonObject, null, 4));
};
// Copy file
const copyFile = (sourceFile, destinationFile) => {
fs.copyFileSync(sourceFile, destinationFile);
};
// Create folder
const createFolder = (pathFolder) => {
if (!fs.existsSync(pathFolder)) {
fs.mkdirSync(pathFolder);
}
};
// Main: generate all files
const generateAllFiles = async (path, skillProjectRepo, skillData, sample) => {
createFolder(path + '/nls');
createFolder(path + '/tests');
writeToJsonFile(path + '/package.json', generatePackage(skillData, sample));
writeToJsonFile(path + '/skill-spec.json', generateSpec(skillData, sample));
writeToFile(path + '/README.md', generateReadMe(skillProjectRepo, skillData));
writeToFile(path + '/skill-documentation.md', generateDoc(skillProjectRepo, skillData, sample));
copyFile(pathModule.resolve(__dirname, '../resources/.gitignore-example'), path + '/.gitignore');
copyFile(pathModule.resolve(__dirname, '../resources/.npmignore-example'), path + '/.npmignore');
copyFile(pathModule.resolve(__dirname, '../resources/.eslintrc-example.json'), path + '/.eslintrc.json');
copyFile(pathModule.resolve(__dirname, '../resources/DOCUMENTATION.md'), path + '/DOCUMENTATION.md');
const folder = ( sample ? 'example' : 'base');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-config.js'), path + '/skill-config.js');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-config-test.js'), path + '/tests/skill-config.test.js');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-api.js'), path + '/skill-api.js');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/skill-api-test.js'), path + '/tests/skill-api.test.js');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/en.json'), path + '/nls/en.json');
if (sample) {
createFolder(path + '/tests/resources');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/test-resources/data.html'), path + '/tests/resources/data.html');
copyFile(pathModule.resolve(__dirname, '../resources/' + folder + '/test-resources/data_empty.html'), path + '/tests/resources/data_empty.html');
}
};
module.exports = { generateAllFiles };