@zohodesk/react-cli 0.0.1-exp.162.3 → 0.0.1-exp.166.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,9 +7,11 @@ exports.default = void 0;
7
7
 
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
 
10
+ var _os = _interopRequireDefault(require("os"));
11
+
10
12
  var _utils = require("../utils");
11
13
 
12
- var _os = _interopRequireDefault(require("os"));
14
+ var _testPattern = require("./testPattern");
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
@@ -39,91 +41,83 @@ let isReact = module => {
39
41
  } = module;
40
42
  let reactBundle = ['react', 'react-dom'];
41
43
  return userRequest && reactBundle.some(pkg => userRequest.indexOf(`node_modules${ps}${pkg}${ps}`) >= 0);
42
- }; // let defaultChunks = {
43
- // 'react.vendor': {
44
- // name: 'react.vendor',
45
- // chunks: 'all',
46
- // minChunks: 1,
47
- // test: isReact,
48
- // priority: -10
49
- // },
50
- // vendor: {
51
- // name: 'vendor',
52
- // chunks: 'all',
53
- // minChunks: 1,
54
- // test: isVendor,
55
- // priority: -10
56
- // },
57
- // zohocharts: {
58
- // chunks: 'all',
59
- // minChunks: 1,
60
- // test: /[\\/]node_modules[\\/]((@zohodesk|@zohocharts))[\\/]((zc-custom|d3).*)/,
61
- // priority: 30,
62
- // enforce: true
63
- // }
64
- // };
65
-
44
+ };
66
45
 
67
46
  let defaultChunks = {
68
- vendors: {
69
- // picks up everything from node_modules as long as the sum of node modules is larger than minSize
70
- //test: /[\\/]node_modules[\\/]((?!react).*)[\\/]/,
71
- test: isVendor,
72
- name: 'vendors',
73
- priority: 19,
47
+ 'react.vendor': {
48
+ name: 'react.vendor',
49
+ chunks: 'all',
50
+ minChunks: 1,
51
+ test: isReact,
74
52
  enforce: true,
75
- // causes maxInitialRequests to be ignored, minSize still respected if specified in cacheGroup
76
- minSize: 30000 // use the default minSize
77
-
78
- },
79
- vendorsAsync: {
80
- // vendors async chunk, remaining asynchronously used node modules as single chunk file
81
- test: /[\\/]node_modules[\\/]((?!react).*)[\\/]/,
82
- name: 'vendors.async',
83
- chunks: 'async',
84
- priority: 9,
85
- reuseExistingChunk: true,
86
- minSize: 10000 // use smaller minSize to avoid too much potential bundle bloat due to module duplication.
87
-
88
- },
89
- react: {
90
- automaticNamePrefix: 'react',
91
- test: /[\\/]node_modules[\\/]((react).*)[\\/]/,
53
+ // priority: 10
92
54
  priority: -10
93
55
  },
94
- commonsAsync: {
95
- // commons async chunk, remaining asynchronously used modules as single chunk file
96
- name: 'commons.async',
97
- minChunks: 2,
98
- // Minimum number of chunks that must share a module before splitting
99
- chunks: 'async',
100
- priority: -10,
101
- reuseExistingChunk: true,
102
- //minSize: 10000 // use smaller minSize to avoid too much potential bundle bloat due to module duplication.
103
- minSize: 5000
104
- },
105
- zohocharts: {
56
+ vendor: {
57
+ name: 'vendor',
106
58
  chunks: 'all',
59
+ // chunks: 'initial',
107
60
  minChunks: 1,
108
- test: /[\\/]node_modules[\\/]((@zohodesk|@zohocharts))[\\/]((zc-custom|d3).*)/,
109
- priority: 30,
110
- enforce: true
61
+ test: isVendor,
62
+ // priority: 19,
63
+ priority: -10
111
64
  }
112
65
  };
113
66
  let customChunksConfig = {};
114
- customChunks.map(({
67
+ customChunks.map((obj, index) => ({
68
+ name: obj.name,
69
+ pattern: obj.pattern,
70
+ minChunks: obj.minChunks || obj.size || 2,
71
+ rules: obj.rules,
72
+ // includeDepenency: obj.includeDepenency || false,
73
+ priority: obj.priority || -10 * (index + 2),
74
+ enforce: obj.enforce || true,
75
+ maxSize: obj.maxSize,
76
+ // || 0,
77
+ minSize: obj.minSize,
78
+ // || 20000,
79
+ chunks: obj.chunks || 'all'
80
+ })).map(({
115
81
  name,
116
82
  pattern,
117
- size = 2
118
- }, index) => customChunksConfig[name] = {
119
- name,
120
- test: new RegExp(isWindows ? pattern.replace(/\//g, '\\') : pattern),
121
- chunks: 'all',
122
- enforce: true,
123
- minChunks: size,
124
- priority: -10 * (index + 2)
83
+ minChunks,
84
+ rules,
85
+ priority,
86
+ // includeDepenency,
87
+ enforce,
88
+ minSize,
89
+ maxSize,
90
+ chunks = 'all'
91
+ }) => {
92
+ let obj = {
93
+ name,
94
+ test: rules ? m => {
95
+ const {
96
+ userRequest
97
+ } = m;
98
+ return (0, _testPattern.testPattern)(userRequest, rules); // return (
99
+ // pkgs.some(p => isRelated(userRequest, p)) ||
100
+ // (includeDepenency && isDependency(m, pkgs))
101
+ // );
102
+ } : new RegExp(isWindows ? pattern.replace(/\//g, '\\') : pattern),
103
+ chunks,
104
+ enforce,
105
+ minChunks,
106
+ priority
107
+ };
108
+
109
+ if (minSize !== undefined) {
110
+ obj.minSize = minSize;
111
+ }
112
+
113
+ if (maxSize !== undefined) {
114
+ obj.maxSize = maxSize;
115
+ }
116
+
117
+ return customChunksConfig[name] = obj;
125
118
  });
126
119
  var _default = {
120
+ minSize: 12000,
127
121
  cacheGroups: Object.assign({
128
122
  default: false,
129
123
  vendors: false
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isDependency = isDependency;
7
+ exports.isRelatedPackage = exports.isRelated = void 0;
8
+ exports.testPattern = testPattern;
9
+
10
+ var _path = require("path");
11
+
12
+ // in our development we only use windows, mac and linux
13
+ const isWindows = _path.sep !== '/'; // this function will return true if pattern matched
14
+
15
+ function _testPattern(req, pattern) {
16
+ let modifyedPattern = pattern;
17
+
18
+ if (/[*.$^]/.test(modifyedPattern)) {
19
+ if (isWindows) {
20
+ // modifyedPattern = pattern.replace(/\//g, ps.replace(/\\/g, '\\\\'));
21
+ modifyedPattern = modifyedPattern.replace(/\//g, '\\\\');
22
+ }
23
+
24
+ modifyedPattern = modifyedPattern.replace(/\./g, '\\.').replace(/\*/g, '.*');
25
+ const re = new RegExp(modifyedPattern);
26
+ return re.test(req);
27
+ }
28
+
29
+ if (isWindows) {
30
+ // modifyedPattern = pattern.replace(/\//g, ps.replace(/\\/g, '\\\\'));
31
+ modifyedPattern = modifyedPattern.replace(/\//g, '\\');
32
+ }
33
+
34
+ return req.indexOf(modifyedPattern) !== -1;
35
+ }
36
+
37
+ function testPattern(req, pattern) {
38
+ if (!req || !pattern) {
39
+ return false;
40
+ }
41
+
42
+ if (Array.isArray(pattern)) {
43
+ // eslint-disable-next-line no-unused-vars
44
+ return pattern.every(p => testPattern(req, p));
45
+ }
46
+
47
+ if (pattern[0] === '!') {
48
+ return !_testPattern(req, pattern.slice(1));
49
+ }
50
+
51
+ return _testPattern(req, pattern);
52
+ }
53
+
54
+ const isRelated = (req, item) => req && req.indexOf(item) !== -1; // export const isRelated = (req, item) => testPattern(req, item);
55
+
56
+
57
+ exports.isRelated = isRelated;
58
+
59
+ const isRelatedPackage = (req, item) => isRelated(req, `node_modules${_path.sep}${item}${_path.sep}`) !== -1; // export const isRelated = (req, item) => testPattern(req, item);
60
+
61
+
62
+ exports.isRelatedPackage = isRelatedPackage;
63
+
64
+ function isDependency(m, excludeList) {
65
+ // let reasons = m.reasons.map(r => r.module.userRequest);
66
+ // m.reasons.some(r => !r.module || !r.module.userRequest) && console.log(m.reasons);
67
+ return m.reasons.some(r => excludeList.some(item => r.module && isRelated(r.module.userRequest, item)));
68
+ } // export function queryHandler(conditions, pattern) {
69
+ // }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _postcss = _interopRequireDefault(require("postcss"));
4
+
5
+ var _path = _interopRequireDefault(require("path"));
6
+
7
+ var _fs = _interopRequireDefault(require("fs"));
8
+
9
+ var _folderIterator = _interopRequireDefault(require("../utils/folderIterator"));
10
+
11
+ var _utils = require("../utils");
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ const cwd = process.cwd();
16
+
17
+ const src = _path.default.join(cwd, process.argv[2]);
18
+
19
+ const dist = _path.default.join(cwd, process.argv[3]);
20
+
21
+ const docopy = process.argv[4] === 'true';
22
+ const {
23
+ css: {
24
+ valueReplacer
25
+ }
26
+ } = (0, _utils.getOptions)();
27
+
28
+ if (!_fs.default.existsSync(dist)) {
29
+ _fs.default.mkdirSync(dist, {
30
+ recursive: true
31
+ });
32
+ }
33
+
34
+ (0, _folderIterator.default)(src, dist, docopy ? false : ['.css'], false, (fromPath, toPath) => {
35
+ //console.log({ fromPath: fromPath, toPath: toPath });
36
+ let css = _fs.default.readFileSync(fromPath);
37
+
38
+ if (docopy && !fromPath.endsWith('.css')) {
39
+ //console.log(toPath,'....');
40
+ _fs.default.writeFileSync(toPath, css);
41
+
42
+ return;
43
+ }
44
+
45
+ (0, _postcss.default)([valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer)]).process(css, {
46
+ from: fromPath,
47
+ to: toPath
48
+ }).then(result => {
49
+ _fs.default.writeFile(toPath, result.css, () => true);
50
+
51
+ if (result.map) {
52
+ _fs.default.writeFile(`${toPath}.map`, result.map, () => true);
53
+ }
54
+ });
55
+ });
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _fs = require("fs");
4
+
3
5
  var _path = _interopRequireDefault(require("path"));
4
6
 
5
7
  var _libAlias = require("./libAlias");
@@ -13,6 +15,9 @@ let moduleNameMapper = Object.keys(_libAlias.libAlias).reduce((previousValue, ke
13
15
  previousValue[`^${key}(.*)$`] = `${_libAlias.libAlias[key]}$1`;
14
16
  return previousValue;
15
17
  }, {});
18
+
19
+ const appGlobals = _path.default.resolve(appPath, '__testUtils__', 'globals.js');
20
+
16
21
  let commonConfig = {
17
22
  coverageReporters: ['json', 'html', 'json-summary', 'text'],
18
23
  collectCoverage: true,
@@ -28,7 +33,7 @@ let commonConfig = {
28
33
  transformIgnorePatterns: ['/node_modules/(?!(@zohodesk)/)'],
29
34
  // transformIgnorePatterns: ['/node_modules.*?.js$'],
30
35
  moduleFileExtensions: ['js'],
31
- setupFiles: [_path.default.resolve(appPath, '__testUtils__', 'globals.js'), _path.default.resolve(__dirname, '..', 'jest', 'setup.js')],
36
+ setupFiles: [(0, _fs.existsSync)(appGlobals) && appGlobals, _path.default.resolve(__dirname, '..', 'jest', 'setup.js')].filter(Boolean),
32
37
  globals: {
33
38
  __DEVELOPMENT__: true,
34
39
  __DOCS__: false,
@@ -8,6 +8,8 @@ var _pluginUtils = require("../pluginUtils");
8
8
 
9
9
  var _loaderUtils = require("../loaderUtils");
10
10
 
11
+ var _libAlias = require("./libAlias");
12
+
11
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
14
 
13
15
  let options = (0, _utils.getOptions)();
@@ -21,46 +23,47 @@ let {
21
23
  classNamePrefix
22
24
  },
23
25
  app: {
24
- folder
26
+ folder,
27
+ disableES5Transpile
25
28
  }
26
29
  } = options;
27
30
  let appPath = process.cwd();
28
31
 
29
32
  module.exports = isSSTest => ({
30
33
  entry: {
31
- main: [_path.default.resolve(__dirname, "..", "hooks", "docsProptypeHook.js"), _path.default.join(appPath, componentFolder, "index.js")],
32
- vendor: ["react", "react-dom", "redux", "react-redux"]
34
+ main: [_path.default.resolve(__dirname, '..', 'hooks', 'docsProptypeHook.js'), _path.default.join(appPath, componentFolder, 'index.js')],
35
+ vendor: ['react', 'react-dom', 'redux', 'react-redux']
33
36
  },
34
- devtool: "none",
35
- mode: "development",
37
+ devtool: 'none',
38
+ mode: 'development',
36
39
  output: {
37
- path: _path.default.join(appPath, "build"),
38
- filename: "js/[name].js",
39
- publicPath: "/docs/",
40
- library: "Component",
41
- libraryTarget: "umd"
40
+ path: _path.default.join(appPath, 'build'),
41
+ filename: 'js/[name].js',
42
+ publicPath: '/docs/',
43
+ library: 'Component',
44
+ libraryTarget: 'umd'
42
45
  },
43
46
  plugins: (0, _pluginUtils.getDocsPlugins)(isSSTest, options),
44
47
  module: {
45
48
  rules: [{
46
49
  test: /\.js$/,
47
50
  use: [{
48
- loader: "babel-loader",
51
+ loader: 'babel-loader',
49
52
  options: {
50
- presets: [[require.resolve("@babel/preset-env"), {
53
+ presets: [[require.resolve('@babel/preset-env'), {
51
54
  modules: false
52
- }], require.resolve("@babel/preset-react")],
53
- plugins: [[require.resolve("@babel/plugin-transform-runtime"), {
55
+ }], require.resolve('@babel/preset-react')],
56
+ plugins: [[require.resolve('@babel/plugin-transform-runtime'), {
54
57
  helpers: true,
55
58
  regenerator: false
56
- }], require.resolve("@babel/plugin-syntax-dynamic-import"), require.resolve("@babel/plugin-syntax-object-rest-spread")],
59
+ }], require.resolve('@babel/plugin-syntax-dynamic-import'), require.resolve('@babel/plugin-syntax-object-rest-spread')],
57
60
  cacheDirectory: true
58
61
  }
59
62
  }],
60
63
  include: _path.default.join(appPath, folder)
61
64
  }, {
62
65
  test: /\.docs\.js$/,
63
- use: require.resolve("../loaders/docsLoader.js"),
66
+ use: require.resolve('../loaders/docsLoader.js'),
64
67
  include: _path.default.join(appPath, folder),
65
68
  exclude: /node_modules/
66
69
  }, {
@@ -68,29 +71,29 @@ module.exports = isSSTest => ({
68
71
  use: (0, _loaderUtils.getCSSLoaders)(hasRTL, rtlExclude, false, cssUniqueness, null, cssHashSelectors, classNamePrefix)
69
72
  }, {
70
73
  test: /\.jpe?g$|\.gif$|\.png$/,
71
- use: ["url-loader?limit=1000&name=./images/[name].[ext]"]
74
+ use: ['url-loader?limit=1000&name=./images/[name].[ext]']
72
75
  }, {
73
76
  test: /\.woff2|\.woff$|\.ttf$|\.eot$/,
74
- use: ["url-loader?limit=1000&name=./fonts/[name].[ext]"]
77
+ use: ['url-loader?limit=1000&name=./fonts/[name].[ext]']
75
78
  }, {
76
79
  test: /\.svg$/,
77
- use: ["url-loader?limit=1&name=./fonts/[name].[ext]"]
80
+ use: ['url-loader?limit=1&name=./fonts/[name].[ext]']
78
81
  }, {
79
82
  test: /\.html$/,
80
83
  use: {
81
- loader: "html-loader",
84
+ loader: 'html-loader',
82
85
  options: {
83
- attrs: [":data-src"],
84
- interpolate: "require"
86
+ attrs: [':data-src'],
87
+ interpolate: 'require'
85
88
  }
86
89
  }
87
90
  }, {
88
91
  test: /\.ogg$/,
89
- use: ["file-loader?name=./fonts/[name].[ext]"]
92
+ use: ['file-loader?name=./fonts/[name].[ext]']
90
93
  }, {
91
94
  test: /\.tmpl$/,
92
95
  use: [{
93
- loader: "html-loader",
96
+ loader: 'html-loader',
94
97
  options: {
95
98
  minimize: {
96
99
  removeComments: true,
@@ -104,12 +107,13 @@ module.exports = isSSTest => ({
104
107
  }]
105
108
  },
106
109
  externals: {
107
- ZC: "$ZC"
110
+ ZC: '$ZC'
108
111
  },
109
112
  resolve: {
110
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
113
+ modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules'],
114
+ alias: disableES5Transpile ? _libAlias.libAlias : {}
111
115
  },
112
116
  resolveLoader: {
113
- modules: [_path.default.resolve(__dirname, "..", "..", "node_modules"), "node_modules"]
117
+ modules: [_path.default.resolve(__dirname, '..', '..', 'node_modules'), 'node_modules']
114
118
  }
115
119
  });
@@ -20,6 +20,9 @@ let getCSSLoaders = (hasRTL, rtlExclude, classNameBlob, cssUniqueness, selectorR
20
20
  const {
21
21
  devCssFileBountry
22
22
  } = options.app;
23
+ const {
24
+ valueReplacer
25
+ } = options.css;
23
26
  const {
24
27
  cssSelectorZipPath
25
28
  } = options.impactService;
@@ -36,6 +39,18 @@ let getCSSLoaders = (hasRTL, rtlExclude, classNameBlob, cssUniqueness, selectorR
36
39
  cssLoaderOptions.modules.getLocalIdent = (0, _cssClassNameGenerate.default)(cssUniqueness, cssHashSelectors, classNamePrefix);
37
40
  }
38
41
 
42
+ const postcssPlugins = [valueReplacer && require('../postcss-plugins/ValueReplacer')(valueReplacer), selectorReplace && require('postcss-selector-replace')(selectorReplace), hasRTL && require('../postcss-plugins/ExcludeRTLPlugin')({
43
+ ignore: rtlExcludeLocal,
44
+ plugins: [require('@zohodesk/postcss-rtl')({
45
+ addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
46
+ if (prefix === '[dir]') {
47
+ return selector;
48
+ }
49
+
50
+ return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
51
+ }
52
+ })]
53
+ })].filter(Boolean);
39
54
  return [cssSelectorZipPath && {
40
55
  loader: require.resolve('../loaders/selectorMappingLoader')
41
56
  }, {
@@ -51,23 +66,12 @@ let getCSSLoaders = (hasRTL, rtlExclude, classNameBlob, cssUniqueness, selectorR
51
66
  options: {
52
67
  devCssFileBountry
53
68
  }
54
- }, hasRTL || selectorReplace ? {
69
+ }, postcssPlugins.length > 0 ? {
55
70
  loader: 'postcss-loader',
56
71
  options: {
57
72
  ident: 'postcss',
58
73
  plugins: function () {
59
- return [selectorReplace && require('postcss-selector-replace')(selectorReplace), hasRTL && require('../postcss-plugins/ExcludeRTLPlugin')({
60
- ignore: rtlExcludeLocal,
61
- plugins: [require('@zohodesk/postcss-rtl')({
62
- addPrefixToSelector: function addPrefixToSelector(selector, prefix) {
63
- if (prefix === '[dir]') {
64
- return selector;
65
- }
66
-
67
- return `${prefix} ${selector}`; // Make selectors like [dir=rtl] > .selector
68
- }
69
- })]
70
- })].filter(Boolean);
74
+ return postcssPlugins;
71
75
  }
72
76
  }
73
77
  } : null].filter(Boolean);
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _postcss = _interopRequireDefault(require("postcss"));
4
+
5
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6
+
7
+ // module.exports = postcss.plugin('postcss-value-replacer', opts => {
8
+ // const { plugins } = opts;
9
+ // return (root, result) => {
10
+ // const inputFile = root.source.input.file;
11
+ // let isIgnoredFile= opts.ignore.some(file => inputFile.indexOf(file)!==-1);
12
+ // if (!isIgnoredFile) {
13
+ // const handler = response =>
14
+ // response.messages.forEach(msg => result.messages.push(msg));
15
+ // return postcss(plugins)
16
+ // .process(root, { from: undefined })
17
+ // .then(handler);
18
+ // }
19
+ // };
20
+ // });
21
+ // export default
22
+ module.exports = _postcss.default.plugin('postcss-value-replacer', (valueReplacer = {}) => // Work with options here
23
+ root => {
24
+ root.walkDecls(decl => {
25
+ valueReplacer.forEach(obj => {
26
+ if (obj.props.indexOf(decl.prop) !== -1) {
27
+ let ks = Object.keys(obj.values).sort((a, b) => b.length - a.length);
28
+ ks.forEach(k => {
29
+ decl.value = decl.value.replace(k, obj.values[k]);
30
+ }); //decl.value = obj.values[decl.value];
31
+ }
32
+ }); //console.log({root, roots:root+""}, root+"")
33
+ // Transform CSS AST here
34
+ }); // root.walkDecls(decl => {
35
+ // valueReplacer.forEach(obj => {
36
+ // if (
37
+ // obj.props.indexOf(decl.prop) !== -1 &&
38
+ // obj.values[decl.value] !== undefined
39
+ // ) {
40
+ // decl.value = obj.values[decl.value];
41
+ // }
42
+ // });
43
+ // //console.log({root, roots:root+""}, root+"")
44
+ // // Transform CSS AST here
45
+ // });
46
+ });
@@ -44,6 +44,17 @@ var _default = {
44
44
  },
45
45
  css: {
46
46
  enableRTLSplit: false,
47
+ valueReplacer: null,
48
+ //valueReplacer: [
49
+ // {
50
+ // props: ['font', 'font-family'],
51
+ // values: {
52
+ // 'zdfonts-rCallBar': 'zdfonts-rCallBar01',
53
+ // 'zdfonts-rCall': 'zdfonts-rCallBar02'
54
+ // }
55
+ // // ,suffix: '0'
56
+ // }
57
+ // ],
47
58
  templateLabel: '{{--dir}}',
48
59
  disableMiniFiySelector: false,
49
60
  dirVarName: 'document.dir'
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPaths = getPaths;
7
+
8
+ var _fs = _interopRequireDefault(require("fs"));
9
+
10
+ var _path = _interopRequireDefault(require("path"));
11
+
12
+ var _child_process = require("child_process");
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _getCliPath = require("./getCliPath");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ const options = (0, _utils.getOptions)(); // const args = process.argv.slice(3);
21
+
22
+ const {
23
+ app: {
24
+ outputFolder
25
+ }
26
+ } = options;
27
+ const {
28
+ cssSelectorZipPath
29
+ } = options.impactService;
30
+ const zipname = cssSelectorZipPath ? _path.default.parse(cssSelectorZipPath).name : null;
31
+
32
+ const outputFolderLocation = _path.default.join(process.cwd(), outputFolder);
33
+
34
+ function execSyncDefalut(command) {
35
+ console.log(' command running ==>', command);
36
+ return (0, _child_process.execSync)(command, {
37
+ stdio: 'inherit'
38
+ });
39
+ }
40
+
41
+ const isQuiet = 'q';
42
+ const webpack = (0, _getCliPath.getCliPath)('webpack'); // console.log('webpack === > ', webpack, fs.existsSync(webpack));
43
+
44
+ if (_fs.default.existsSync(outputFolderLocation)) {
45
+ execSyncDefalut(`rm -rf ${outputFolder}`);
46
+ console.log(`previous ${outputFolder} removed`);
47
+ }
48
+
49
+ if (_fs.default.existsSync(_path.default.join(process.cwd(), 'build.zip'))) {
50
+ execSyncDefalut('rm build.zip');
51
+ console.log('previous build.zip removed');
52
+ } // execSyncDefalut(`${webpack } --version`);
53
+ // execSyncDefalut(`${webpack} --config ${require.resolve('../configs/webpack.dev.config.js')}`);
54
+
55
+
56
+ console.log('webpack compilation starts...');
57
+ const startTime = Date.now(); // const result = spawnSync(
58
+ // webpack,
59
+ // ['--config', require.resolve('../configs/webpack.dev.config.js')].concat(
60
+ // args
61
+ // ),
62
+ // { stdio: 'inherit' }
63
+ // );
64
+
65
+ const result = execSyncDefalut(`${webpack} --config ${require.resolve('../configs/webpack.dev.config.js')}`);
66
+ result && console.log(result);
67
+
68
+ if (result && result.stderr) {
69
+ throw result.stderr;
70
+ }
71
+
72
+ console.log(`compailation done in ${Date.now() - startTime}ms`);
73
+
74
+ if (zipname) {
75
+ execSyncDefalut(`zip -r${isQuiet} build.zip ${outputFolder}/*`);
76
+ console.log('build.zip file created');
77
+ const result = execSyncDefalut(`zip -r${isQuiet} ${cssSelectorZipPath} ${zipname}/*`);
78
+ execSyncDefalut(`rm -rf ${zipname}`);
79
+
80
+ if (result && result.stderr) {
81
+ console.log('zip file not created', cssSelectorZipPath);
82
+ console.error(result.stderr);
83
+ } else {
84
+ console.log('zip file created', cssSelectorZipPath);
85
+ }
86
+ } // npm run start --app:domain=tsi --impact:cssbountry="{$@&&@$}" --disable-watch --dev-cache --cssselector_zip=css-source-map.zip
87
+ // npm run start --app_domain=tsi --impact_cssbountry="{$@&&@$}" --disable-watch --dev-cache --cssselector_zip=css-source-map.zip
88
+
89
+
90
+ console.log(`compailation done in ${Date.now() - startTime}ms`);
91
+
92
+ function getPaths() {
93
+ return {
94
+ zipname,
95
+ cssSelectorZipPath,
96
+ outputFolderLocation
97
+ };
98
+ }