UNPKG

dev-toolkit

Version:

Universal Development Toolkit for React Veterans

98 lines (82 loc) 3.11 kB
"use strict"; var _path = _interopRequireDefault(require("path")); var _fsExtra = require("fs-extra"); var _klawSync = _interopRequireDefault(require("klaw-sync")); var _decomment = _interopRequireDefault(require("decomment")); var _projectSettings = require("../webpack/projectSettings"); var _utilities = require("../utilities"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _utilities.log)({ title: 'prepare', message: 'Copy templates into dev-toolkit distribution', useSeparator: true }); var ignoreDevFolders = function ignoreDevFolders(item) { return item.indexOf('node_modules') < 0 && item.indexOf('build') < 0; }; var removeDevFiles = function removeDevFiles(_ref) { var directory = _ref.directory; var devFiles = function devFiles(item) { return item && item.path && (item.path.indexOf('package-lock') >= 0 || item.path.indexOf('.snyk') >= 0); }; var allFiles = (0, _klawSync.default)(directory, { nodir: true, filter: devFiles }); var allFilePaths = Object.keys(allFiles).map(function (item) { return allFiles[item].path; }); allFilePaths.forEach(function (filePath) { (0, _fsExtra.removeSync)(filePath); }); }; var removeCommentsFromJSFiles = function removeCommentsFromJSFiles(_ref2) { var directory = _ref2.directory; var onlyJSFiles = function onlyJSFiles(item) { return item && item.path && _path.default.extname(item.path) === '.js'; }; var allFiles = (0, _klawSync.default)(directory, { nodir: true, filter: onlyJSFiles }); var allFilePaths = Object.keys(allFiles).map(function (item) { return allFiles[item].path; }); allFilePaths.forEach(function (filePath) { (0, _fsExtra.readFile)(filePath, 'utf8').then(function (data) { // Uncomment files as if they were plain text files (avoiding issues with jsx) (0, _fsExtra.outputFile)(filePath, _decomment.default.text(data)); }).catch(function (err) { console.error(err); }); }); }; (0, _utilities.log)({ message: 'Copying templates into dist folder...' }); (0, _fsExtra.removeSync)(_projectSettings.generatedTemplates); (0, _fsExtra.ensureDirSync)(_projectSettings.generatedTemplates); (0, _fsExtra.copySync)(_projectSettings.originalTemplates, _projectSettings.generatedTemplates, { filter: ignoreDevFolders }); removeDevFiles({ directory: _projectSettings.generatedTemplates }); (0, _utilities.log)({ message: 'Creating a templates-folder in dist that has comments stripped out...' }); (0, _fsExtra.removeSync)(_projectSettings.generatedTemplatesWithoutComments); (0, _fsExtra.ensureDirSync)(_projectSettings.generatedTemplatesWithoutComments); (0, _fsExtra.copySync)(_projectSettings.originalTemplates, _projectSettings.generatedTemplatesWithoutComments, { filter: ignoreDevFolders }); removeDevFiles({ directory: _projectSettings.generatedTemplatesWithoutComments }); removeCommentsFromJSFiles({ directory: _projectSettings.generatedTemplatesWithoutComments }); (0, _utilities.log)({ message: 'Finished templates task\n', useSeparator: true });