UNPKG

3.16 kBJavaScriptView Raw
1'use strict';
2
3var _path = require('path');
4
5var _path2 = _interopRequireDefault(_path);
6
7var _fsExtra = require('fs-extra');
8
9var _klawSync = require('klaw-sync');
10
11var _klawSync2 = _interopRequireDefault(_klawSync);
12
13var _decomment = require('decomment');
14
15var _decomment2 = _interopRequireDefault(_decomment);
16
17var _projectSettings = require('../webpack/projectSettings');
18
19var _utilities = require('../utilities');
20
21function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23(0, _utilities.log)({
24 title: 'prepare',
25 message: 'Copy templates into dev-toolkit distribution',
26 useSeparator: true
27});
28
29var ignoreDevFolders = function ignoreDevFolders(item) {
30 return item.indexOf('node_modules') < 0 && item.indexOf('build') < 0;
31};
32
33var removeDevFiles = function removeDevFiles(_ref) {
34 var directory = _ref.directory;
35
36 var devFiles = function devFiles(item) {
37 return item && item.path && (item.path.indexOf('package-lock') >= 0 || item.path.indexOf('.snyk') >= 0);
38 };
39 var allFiles = (0, _klawSync2.default)(directory, { nodir: true, filter: devFiles });
40 var allFilePaths = Object.keys(allFiles).map(function (item) {
41 return allFiles[item].path;
42 });
43
44 allFilePaths.forEach(function (filePath) {
45 (0, _fsExtra.removeSync)(filePath);
46 });
47};
48
49var removeCommentsFromJSFiles = function removeCommentsFromJSFiles(_ref2) {
50 var directory = _ref2.directory;
51
52 var onlyJSFiles = function onlyJSFiles(item) {
53 return item && item.path && _path2.default.extname(item.path) === '.js';
54 };
55 var allFiles = (0, _klawSync2.default)(directory, { nodir: true, filter: onlyJSFiles });
56 var allFilePaths = Object.keys(allFiles).map(function (item) {
57 return allFiles[item].path;
58 });
59
60 allFilePaths.forEach(function (filePath) {
61 (0, _fsExtra.readFile)(filePath, 'utf8').then(function (data) {
62 // Uncomment files as if they were plain text files (avoiding issues with jsx)
63 (0, _fsExtra.outputFile)(filePath, _decomment2.default.text(data));
64 }).catch(function (err) {
65 console.error(err);
66 });
67 });
68};
69
70(0, _utilities.log)({ message: 'Copying templates into dist folder...' });
71(0, _fsExtra.removeSync)(_projectSettings.generatedTemplates);
72(0, _fsExtra.ensureDirSync)(_projectSettings.generatedTemplates);
73(0, _fsExtra.copySync)(_projectSettings.originalTemplates, _projectSettings.generatedTemplates, { filter: ignoreDevFolders });
74removeDevFiles({ directory: _projectSettings.generatedTemplates });
75
76(0, _utilities.log)({ message: 'Creating an templates-folder in dist that has comments stripped out...' });
77(0, _fsExtra.removeSync)(_projectSettings.generatedTemplatesWithoutComments);
78(0, _fsExtra.ensureDirSync)(_projectSettings.generatedTemplatesWithoutComments);
79(0, _fsExtra.copySync)(_projectSettings.originalTemplates, _projectSettings.generatedTemplatesWithoutComments, { filter: ignoreDevFolders });
80removeDevFiles({ directory: _projectSettings.generatedTemplatesWithoutComments });
81removeCommentsFromJSFiles({ directory: _projectSettings.generatedTemplatesWithoutComments });
82
83(0, _utilities.log)({ message: 'Finished templates task\n', useSeparator: true });
\No newline at end of file