@zohodesk/react-cli 1.1.11-exp.6 → 1.1.11-exp.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -44,6 +44,18 @@ Now to run app
44
44
 
45
45
  # Change Logs
46
46
 
47
+
48
+ # 1.1.11-exp.8 (4-9-2023)
49
+
50
+ **Changes**
51
+ - Re-factoring related changes
52
+
53
+
54
+ # 1.1.11-exp.7 (1-9-2023)
55
+
56
+ **Changes**
57
+ - Fixed the unInsall variable not available via window varaible issue with resource cleanup plugin
58
+
47
59
  # 1.1.11-exp.6 (31-8-2023)
48
60
 
49
61
  **Features**
@@ -193,7 +193,9 @@ const getDevPlugins = (options, publicPath) => {
193
193
  }));
194
194
  instrumentScript && pluginsArr.push(new _plugins.ScriptInstrumentPlugin());
195
195
  customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
196
- customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(customAttributes));
196
+ customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
197
+ globalCacheObj: context
198
+ })));
197
199
  hasShadowDOM && pluginsArr.push(new _plugins.ShadowDOMSupportPlugin());
198
200
 
199
201
  if (devCssFileBountry) {
@@ -298,7 +298,9 @@ const getProdPlugins = (options, publicPath = '') => {
298
298
 
299
299
 
300
300
  customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
301
- customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(customAttributes));
301
+ customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
302
+ globalCacheObj: context
303
+ })));
302
304
  enableStats && pluginsArr.push(new _StatsPlugin.default({
303
305
  statsOptions,
304
306
  statsOutputExcludeKeys,
@@ -15,10 +15,14 @@ module.exports = class EfcResouceCleanupPlugin {
15
15
  mainTemplate
16
16
  }) => {
17
17
  mainTemplate.hooks.afterStartup.tap(plugInName, source => {
18
- const attributesArr = Object.entries(this.options.attributes);
18
+ const {
19
+ attributes,
20
+ globalCacheObj
21
+ } = this.options;
22
+ const attributesArr = Object.entries(attributes);
19
23
  const [[attributekey, attributeValue]] = attributesArr;
20
24
  const resourceSelector = `[${attributekey}="${attributeValue}"]`;
21
- return Template.asString([source, Template.indent([` jsonpArray.unInstall = function() {
25
+ return Template.asString([source, Template.indent([` window['${globalCacheObj}Jsonp'].unInstall = function() {
22
26
  Object.keys(installedModules).forEach(installedModulesKey => installedModules[installedModulesKey] = null);
23
27
  Object.keys(modules).forEach(moduleKey => modules[moduleKey] = null);
24
28
  `, `
@@ -27,11 +31,11 @@ module.exports = class EfcResouceCleanupPlugin {
27
31
  __webpack_require__.m = null;
28
32
  __webpack_require__.c = null;
29
33
 
30
- `, `
31
- const addedResources = document.querySelectorAll('${resourceSelector}');
32
- addedResources.forEach(addedResource => addedResource.remove());
33
- }
34
- `])]);
34
+ `, attributekey && attributeValue ? `
35
+ const addedResources = document.querySelectorAll('${resourceSelector}');
36
+ addedResources.forEach(addedResource => addedResource.remove());
37
+ }
38
+ ` : ''])]);
35
39
  });
36
40
  });
37
41
  }
@@ -9,7 +9,8 @@ const {
9
9
  } = require('stream');
10
10
 
11
11
  const {
12
- removeKeysFromObject
12
+ removeKeysFromObject,
13
+ convertObjectToStringGen
13
14
  } = require('../utils/object-manipulation');
14
15
 
15
16
  const pluginName = 'stats-plugin';
@@ -17,52 +18,15 @@ const statsSchema = {
17
18
  all: true
18
19
  };
19
20
 
20
- function* convertObjectToStringGen(obj) {
21
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || obj === null) {
22
- yield JSON.stringify(obj);
23
- } else if (Array.isArray(obj)) {
24
- yield '[';
25
- let isFirst = true;
26
-
27
- for (let item of obj) {
28
- if (item === undefined) {
29
- item = null;
30
- }
31
-
32
- yield `${isFirst ? '' : ','}`;
33
- yield* convertObjectToStringGen(item);
34
- isFirst = false;
35
- }
36
-
37
- yield ']';
38
- } else {
39
- yield '{';
40
- let isFirst = true;
41
- const entries = Object.entries(obj);
42
-
43
- for (const [itemKey, itemValue] of entries) {
44
- if (itemValue === undefined) {
45
- continue;
46
- }
47
-
48
- yield `${isFirst ? '' : ','}${JSON.stringify(itemKey)}: `;
49
- yield* convertObjectToStringGen(itemValue);
50
- isFirst = false;
51
- }
52
-
53
- yield '}';
54
- }
55
- }
56
-
57
21
  class StatsPlugin {
58
22
  constructor({
59
- statsOptions = {},
60
- statsOutputExcludeKeys = [],
61
- statsFileName = 'bundle-report-integrity.json'
23
+ statsOptions,
24
+ statsOutputExcludeKeys,
25
+ statsFileName
62
26
  }) {
63
- this.excludeKeysInStat = statsOutputExcludeKeys;
64
- this.statsOptions = Object.assign({}, statsSchema, statsOptions);
65
- this.statsFileName = statsFileName;
27
+ this.excludeKeysInStat = statsOutputExcludeKeys || [];
28
+ this.statsFileName = statsFileName || 'bundle-report-integrity.json';
29
+ this.statsOptions = Object.assign({}, statsSchema, statsOptions || {});
66
30
  }
67
31
 
68
32
  apply(compiler) {
@@ -729,9 +729,9 @@ var _default = {
729
729
  value: false,
730
730
  cli: 'enable_stats'
731
731
  },
732
- fileName: undefined,
733
- options: undefined,
734
- excludeKeys: undefined
732
+ fileName: null,
733
+ options: null,
734
+ excludeKeys: null
735
735
  }
736
736
  };
737
737
  exports.default = _default;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.convertObjectToStringGen = convertObjectToStringGen;
6
7
  exports.removeKeysFromObject = removeKeysFromObject;
7
8
 
8
9
  function objectPathMatcher(currentKey, objHierarchy = [], keysToBeRemoved = []) {
@@ -20,7 +21,9 @@ function objectPathMatcher(currentKey, objHierarchy = [], keysToBeRemoved = [])
20
21
  }
21
22
  /*
22
23
  1) *.keyTobeRemoved -> means match every object path, this key will be removed
23
- 2) don't need to account for object iteration, just object key path is enough in the key to be removed.
24
+ 2) keyToBeremoved -> means root object key
25
+ 3) nestedPath.keyToBeRemoved -> means only that nested path key
26
+ 4) don't need to account for array iteration, just object key path is enough in the key to be removed.
24
27
  */
25
28
 
26
29
 
@@ -45,4 +48,41 @@ function removeKeysFromObject(obj, keysToBeRemoved, prevKeys = []) {
45
48
  }
46
49
 
47
50
  return obj;
51
+ }
52
+
53
+ function* convertObjectToStringGen(obj) {
54
+ if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || obj === null) {
55
+ yield JSON.stringify(obj);
56
+ } else if (Array.isArray(obj)) {
57
+ yield '[';
58
+ let isFirst = true;
59
+
60
+ for (let item of obj) {
61
+ if (item === undefined) {
62
+ item = null;
63
+ }
64
+
65
+ yield `${isFirst ? '' : ','}`;
66
+ yield* convertObjectToStringGen(item);
67
+ isFirst = false;
68
+ }
69
+
70
+ yield ']';
71
+ } else {
72
+ yield '{';
73
+ let isFirst = true;
74
+ const entries = Object.entries(obj);
75
+
76
+ for (const [itemKey, itemValue] of entries) {
77
+ if (itemValue === undefined) {
78
+ continue;
79
+ }
80
+
81
+ yield `${isFirst ? '' : ','}${JSON.stringify(itemKey)}: `;
82
+ yield* convertObjectToStringGen(itemValue);
83
+ isFirst = false;
84
+ }
85
+
86
+ yield '}';
87
+ }
48
88
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/react-cli",
3
- "version": "1.1.11-exp.6",
3
+ "version": "1.1.11-exp.8",
4
4
  "description": "A CLI tool for build modern web application and libraries",
5
5
  "scripts": {
6
6
  "init": "node ./lib/utils/init.js",