1 | 'use strict';
|
2 |
|
3 | var _path = require('path');
|
4 |
|
5 | var _path2 = _interopRequireDefault(_path);
|
6 |
|
7 | var _fsExtra = require('fs-extra');
|
8 |
|
9 | var _klawSync = require('klaw-sync');
|
10 |
|
11 | var _klawSync2 = _interopRequireDefault(_klawSync);
|
12 |
|
13 | var _decomment = require('decomment');
|
14 |
|
15 | var _decomment2 = _interopRequireDefault(_decomment);
|
16 |
|
17 | var _projectSettings = require('../webpack/projectSettings');
|
18 |
|
19 | var _utilities = require('../utilities');
|
20 |
|
21 | function _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 |
|
29 | var ignoreDevFolders = function ignoreDevFolders(item) {
|
30 | return item.indexOf('node_modules') < 0 && item.indexOf('build') < 0;
|
31 | };
|
32 |
|
33 | var 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 |
|
49 | var 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 |
|
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 });
|
74 | removeDevFiles({ 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 });
|
80 | removeDevFiles({ directory: _projectSettings.generatedTemplatesWithoutComments });
|
81 | removeCommentsFromJSFiles({ directory: _projectSettings.generatedTemplatesWithoutComments });
|
82 |
|
83 | (0, _utilities.log)({ message: 'Finished templates task\n', useSeparator: true }); |
\ | No newline at end of file |