@zohodesk/react-cli 1.1.14-exp.3 → 1.1.14-kubernetes
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 +16 -281
- package/bin/cli.js +55 -30
- package/docs/CustomChunks.md +9 -12
- package/docs/SelectorWeight.md +0 -3
- package/docs/ValueReplacer.md +0 -27
- package/docs/VariableConversion.md +1 -6
- package/lib/common/splitChunks.js +45 -65
- package/lib/common/testPattern.js +11 -9
- package/lib/common/valueReplacer.js +3 -1
- package/lib/configs/resolvers.js +5 -16
- package/lib/configs/webpack.css.umd.config.js +2 -3
- package/lib/configs/webpack.dev.config.js +5 -15
- package/lib/configs/webpack.docs.config.js +3 -14
- package/lib/configs/webpack.impact.config.js +2 -8
- package/lib/configs/webpack.prod.config.js +5 -15
- package/lib/constants.js +3 -3
- package/lib/loaderUtils/getCSSLoaders.js +49 -98
- package/lib/loaderUtils/windowsModification.js +1 -6
- package/lib/loaders/docsLoader.js +7 -18
- package/lib/loaders/selectorMappingLoader.js +9 -9
- package/lib/pluginUtils/getDevPlugins.js +6 -25
- package/lib/pluginUtils/getProdPlugins.js +5 -32
- package/lib/pluginUtils/getUMDCSSPlugins.js +1 -1
- package/lib/pluginUtils/getUMDComponentPlugins.js +1 -1
- package/lib/plugins/EFCPlugin.js +9 -9
- package/lib/plugins/EFCTemplatePlugin.js +12 -10
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +9 -8
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +3 -2
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +13 -30
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +7 -2
- package/lib/plugins/I18nSplitPlugin/index.js +1 -1
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +8 -8
- package/lib/plugins/ReportGeneratePlugin.js +6 -8
- package/lib/plugins/ResourceHintsPlugin.js +3 -13
- package/lib/plugins/SelectorPlugin.js +37 -77
- package/lib/plugins/{MinifyPlugin.js → UglifyCSSPlugin.js} +3 -3
- package/lib/plugins/UnusedFilesFindPlugin.js +5 -7
- package/lib/plugins/VariableConversionCollector.js +101 -40
- package/lib/plugins/composeCommonPlugin.js +30 -0
- package/lib/plugins/index.js +7 -7
- package/lib/postcss-plugins/ExcludePlugin.js +1 -1
- package/lib/postcss-plugins/RTLSplitPlugin.js +10 -4
- package/lib/postcss-plugins/ValueReplacer.js +29 -8
- package/lib/postcss-plugins/hoverActivePlugin.js +6 -0
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +1 -0
- package/lib/postcss-plugins/variableModificationPlugin/index.js +38 -94
- package/lib/postcss-plugins/variableModifier.js +244 -0
- package/lib/schemas/index.js +18 -94
- package/lib/servers/devBuild.js +11 -13
- package/lib/servers/getCliPath.js +5 -3
- package/lib/servers/httpsOptions.js +13 -12
- package/lib/servers/nowatchserver.js +55 -62
- package/lib/servers/server.js +52 -53
- package/lib/utils/cssClassNameGenerate.js +13 -70
- package/lib/utils/getOptions.js +28 -35
- package/lib/utils/getServerURL.js +9 -1
- package/lib/utils/index.js +12 -14
- package/lib/utils/initPreCommitHook.js +5 -5
- package/lib/utils/pullOrigin.js +3 -3
- package/lib/utils/reinstallDependencies.js +3 -3
- package/lib/utils/switchBranch.js +2 -4
- package/package.json +3 -5
- package/templates/docs/all.html +0 -1
- package/templates/docs/component.html +0 -1
- package/templates/docs/components.html +0 -1
- package/templates/docs/css/style.css +169 -136
- package/templates/docs/index.html +632 -796
- package/.vscode/settings.json +0 -25
- package/docs/ComposeMinification.md +0 -13
- package/docs/MarkdownParser.md +0 -18
- package/docs/ReactLive.md +0 -14
- package/docs/patternFiltering.md +0 -57
- package/lib/common/buildEs.js +0 -12
- package/lib/common/runPreProcess.js +0 -71
- package/lib/deprecationLogger.js +0 -40
- package/lib/loaderUtils/tests/windowsModification.test.js +0 -10
- package/lib/loaders/__test__/markdownLoader.spec.js +0 -145
- package/lib/loaders/composeLoader.js +0 -298
- package/lib/loaders/markdownLoader.js +0 -71
- package/lib/loaders/reactLiveConvertor.js +0 -105
- package/lib/logger.js +0 -27
- package/lib/plugins/CustomAttributePlugin.js +0 -82
- package/lib/plugins/CustomAttributePlugin.md +0 -35
- package/lib/plugins/EfcResourceCleanupPlugin.js +0 -43
- package/lib/plugins/StatsPlugin.js +0 -82
- package/lib/plugins/utils/classHandling.js +0 -35
- package/lib/plugins/utils/fileHandling.js +0 -92
- package/lib/plugins/utils/tests/fileHandling.test.js +0 -30
- package/lib/plugins/variableConvertorUtils.js +0 -133
- package/lib/postcss-plugins/EmptyPlugin.js +0 -8
- package/lib/postcss-plugins/IncludePlugin.js +0 -23
- package/lib/postcss-plugins/SelectorReplace.js +0 -80
- package/lib/postcss-plugins/__test__/selectorReplace.test.js +0 -28
- package/lib/postcss-plugins/__test__/valueReplacer.spec.js +0 -43
- package/lib/servers/requireLocalOrGlobal.js +0 -61
- package/lib/utils/deprecationSupport.js +0 -134
- package/lib/utils/log.js +0 -11
- package/lib/utils/object-manipulation.js +0 -88
- package/lib/utils/selectorReplacer.js +0 -47
- package/lib/utils/variableConverter.js +0 -104
- package/npm-shrinkwrap.json +0 -33485
- package/templates/docs/css/markdown.css +0 -202
@@ -1,298 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _path = _interopRequireDefault(require("path"));
|
4
|
-
|
5
|
-
var _postcss = _interopRequireDefault(require("postcss"));
|
6
|
-
|
7
|
-
var _classHandling = require("../../lib/plugins/utils/classHandling");
|
8
|
-
|
9
|
-
var _fileHandling = require("../plugins/utils/fileHandling");
|
10
|
-
|
11
|
-
var _utils = require("../utils");
|
12
|
-
|
13
|
-
var _ignore = _interopRequireDefault(require("ignore"));
|
14
|
-
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
16
|
-
|
17
|
-
const supportedProps = ['margin-top', 'margin-bottom', 'margin-left', 'margin-right', 'margin', 'padding-top', 'padding-bottom', 'padding-left', 'padding-right', 'padding', 'top', 'bottom', 'left', 'right', 'height', 'width', 'min-height', 'min-width', 'max-height', 'max-width', 'float', 'overflow', 'position', 'display', 'text-align', 'white-space', 'visibility'];
|
18
|
-
const renameProps = {
|
19
|
-
position: {
|
20
|
-
cls: 'posn'
|
21
|
-
},
|
22
|
-
display: {
|
23
|
-
cls: 'disp'
|
24
|
-
},
|
25
|
-
float: {
|
26
|
-
cls: 'flo'
|
27
|
-
},
|
28
|
-
overflow: {
|
29
|
-
cls: 'over'
|
30
|
-
},
|
31
|
-
'text-align': {
|
32
|
-
cls: 'txtAlgn'
|
33
|
-
},
|
34
|
-
'white-space': {
|
35
|
-
cls: 'whSpc'
|
36
|
-
},
|
37
|
-
visibility: {
|
38
|
-
cls: 'vis'
|
39
|
-
},
|
40
|
-
'font-size': {
|
41
|
-
pos: 'fs',
|
42
|
-
neg: 'fs_'
|
43
|
-
},
|
44
|
-
'margin-top': {
|
45
|
-
pos: 'mt',
|
46
|
-
neg: 'mt_'
|
47
|
-
},
|
48
|
-
'margin-bottom': {
|
49
|
-
pos: 'mb',
|
50
|
-
neg: 'mb_'
|
51
|
-
},
|
52
|
-
'margin-left': {
|
53
|
-
pos: 'ml',
|
54
|
-
neg: 'ml_'
|
55
|
-
},
|
56
|
-
'margin-right': {
|
57
|
-
pos: 'mr',
|
58
|
-
neg: 'mr_'
|
59
|
-
},
|
60
|
-
margin: {
|
61
|
-
pos: 'm',
|
62
|
-
neg: 'm_'
|
63
|
-
},
|
64
|
-
'padding-top': {
|
65
|
-
pos: 'pt',
|
66
|
-
neg: 'pt_'
|
67
|
-
},
|
68
|
-
'padding-bottom': {
|
69
|
-
pos: 'pb',
|
70
|
-
neg: 'pb_'
|
71
|
-
},
|
72
|
-
'padding-left': {
|
73
|
-
pos: 'pl',
|
74
|
-
neg: 'pl_'
|
75
|
-
},
|
76
|
-
'padding-right': {
|
77
|
-
pos: 'pr',
|
78
|
-
neg: 'pr_'
|
79
|
-
},
|
80
|
-
padding: {
|
81
|
-
pos: 'p',
|
82
|
-
neg: 'p_'
|
83
|
-
},
|
84
|
-
top: {
|
85
|
-
pos: 'post',
|
86
|
-
neg: 'post_'
|
87
|
-
},
|
88
|
-
bottom: {
|
89
|
-
pos: 'posb',
|
90
|
-
neg: 'posb_'
|
91
|
-
},
|
92
|
-
left: {
|
93
|
-
pos: 'posl',
|
94
|
-
neg: 'posl_'
|
95
|
-
},
|
96
|
-
right: {
|
97
|
-
pos: 'posr',
|
98
|
-
neg: 'posr_'
|
99
|
-
},
|
100
|
-
height: {
|
101
|
-
pos: 'h',
|
102
|
-
neg: 'h_'
|
103
|
-
},
|
104
|
-
width: {
|
105
|
-
pos: 'w',
|
106
|
-
neg: 'w_'
|
107
|
-
},
|
108
|
-
'min-height': {
|
109
|
-
pos: 'minh',
|
110
|
-
neg: 'minh_'
|
111
|
-
},
|
112
|
-
'min-width': {
|
113
|
-
pos: 'minw',
|
114
|
-
neg: 'minw_'
|
115
|
-
},
|
116
|
-
'max-height': {
|
117
|
-
pos: 'maxh',
|
118
|
-
neg: 'maxh_'
|
119
|
-
},
|
120
|
-
'max-width': {
|
121
|
-
pos: 'maxw',
|
122
|
-
neg: 'maxw_'
|
123
|
-
}
|
124
|
-
};
|
125
|
-
|
126
|
-
function objToClassName(prop, data) {
|
127
|
-
return renameProps[prop] ? data < 0 ? renameProps[prop].neg ? `${renameProps[prop].neg}${data * -1}` : `undef${data * -1}` : renameProps[prop].pos ? `${renameProps[prop].pos}${data}` : `undef${data}` : `undef${data}`;
|
128
|
-
}
|
129
|
-
|
130
|
-
function objtoClassNameString(prop, data) {
|
131
|
-
let temp = data.toString().replace(/-/gi, '');
|
132
|
-
return `${renameProps[prop].cls}_${temp.replace(/\s*/gi, '')}`;
|
133
|
-
}
|
134
|
-
|
135
|
-
const multipleClassName = {
|
136
|
-
margin: ['margin-top', 'margin-right', 'margin-bottom', 'margin-left'],
|
137
|
-
padding: ['padding-top', 'padding-right', 'padding-bottom', 'padding-left']
|
138
|
-
};
|
139
|
-
|
140
|
-
function objToClassNameMultiple(prop, data) {
|
141
|
-
data = data.trim().replace(/\s+/gi, ' ');
|
142
|
-
let dataArr = data.split(' ');
|
143
|
-
|
144
|
-
if (dataArr.length === 3) {
|
145
|
-
dataArr[3] = dataArr[1];
|
146
|
-
}
|
147
|
-
|
148
|
-
if (dataArr.length === 2) {
|
149
|
-
dataArr[3] = dataArr[1];
|
150
|
-
dataArr[2] = dataArr[0];
|
151
|
-
}
|
152
|
-
|
153
|
-
if (dataArr.length === 1) {
|
154
|
-
dataArr[3] = dataArr[0];
|
155
|
-
dataArr[2] = dataArr[0];
|
156
|
-
dataArr[1] = dataArr[0];
|
157
|
-
}
|
158
|
-
|
159
|
-
let composeClasses = '';
|
160
|
-
dataArr.forEach((data, index) => composeClasses += `${objToClassName(multipleClassName[prop][index], parseInt(data, 10))} `);
|
161
|
-
composeClasses = composeClasses.substring(0, composeClasses.length - 1);
|
162
|
-
return composeClasses;
|
163
|
-
}
|
164
|
-
|
165
|
-
const commonFilePath = {
|
166
|
-
margin: 'src/common/css/margin.css',
|
167
|
-
'margin-left': 'src/common/css/margin.css',
|
168
|
-
'margin-right': 'src/common/css/margin.css',
|
169
|
-
'margin-top': 'src/common/css/margin.css',
|
170
|
-
'margin-bottom': 'src/common/css/margin.css',
|
171
|
-
padding: 'src/common/css/padding.css',
|
172
|
-
'padding-left': 'src/common/css/padding.css',
|
173
|
-
'padding-right': 'src/common/css/padding.css',
|
174
|
-
'padding-top': 'src/common/css/padding.css',
|
175
|
-
'padding-bottom': 'src/common/css/padding.css',
|
176
|
-
top: 'src/common/css/position.css',
|
177
|
-
bottom: 'src/common/css/position.css',
|
178
|
-
left: 'src/common/css/position.css',
|
179
|
-
right: 'src/common/css/position.css',
|
180
|
-
height: 'src/common/css/height.css',
|
181
|
-
width: 'src/common/css/width.css',
|
182
|
-
'min-height': 'src/common/css/height.css',
|
183
|
-
'min-width': 'src/common/css/width.css',
|
184
|
-
'max-height': 'src/common/css/height.css',
|
185
|
-
'max-width': 'src/common/css/width.css',
|
186
|
-
fontSize: 'src/common/css/fontSize.css',
|
187
|
-
textProps: 'src/common/css/textProps.css',
|
188
|
-
display: 'src/common/css/textProps.css',
|
189
|
-
float: 'src/common/css/textProps.css',
|
190
|
-
overflow: 'src/common/css/textProps.css',
|
191
|
-
position: 'src/common/css/position.css',
|
192
|
-
'text-align': 'src/common/css/textProps.css',
|
193
|
-
'white-space': 'src/common/css/textProps.css',
|
194
|
-
visibility: 'src/common/css/textProps.css'
|
195
|
-
};
|
196
|
-
|
197
|
-
function generateComposeString(resourcePath, prop, value) {
|
198
|
-
let composeString = `from "${_path.default.relative(_path.default.parse(resourcePath).dir, // resourcePath
|
199
|
-
commonFilePath[prop]).replace(/\\/gi, '/')}"`;
|
200
|
-
let cls = '';
|
201
|
-
|
202
|
-
if (/^position|^overflow|^display|^float|^text-align|^white-space|^visibility/gi.test(prop)) {
|
203
|
-
console.log(prop, value, 'textvals');
|
204
|
-
cls = objtoClassNameString(prop, value);
|
205
|
-
} else if (/^margin$|^padding$/gi.test(prop)) {
|
206
|
-
// console.log(prop, value, 'margin');
|
207
|
-
cls = objToClassNameMultiple(prop, value);
|
208
|
-
} else {
|
209
|
-
// console.log(prop, value, 'common');
|
210
|
-
cls = objToClassName(prop, parseInt(value));
|
211
|
-
}
|
212
|
-
|
213
|
-
composeString = `${cls} ${composeString}`;
|
214
|
-
return composeString;
|
215
|
-
} // const preNames = {
|
216
|
-
// height: 'zd-height-',
|
217
|
-
// 'max-height': 'zd-height-',
|
218
|
-
// 'min-height': 'zd-height-',
|
219
|
-
// width: 'zd-width-',
|
220
|
-
// 'max-width': 'zd-width-',
|
221
|
-
// 'min-width': 'zd-width-',
|
222
|
-
// top: 'zd-position-',
|
223
|
-
// bottom: 'zd-position-',
|
224
|
-
// left: 'zd-position-',
|
225
|
-
// right: 'zd-position-',
|
226
|
-
// 'padding-top': 'zd-padding-',
|
227
|
-
// 'padding-bottom': 'zd-padding-',
|
228
|
-
// 'padding-left': 'zd-padding-',
|
229
|
-
// 'padding-right': 'zd-padding-',
|
230
|
-
// 'margin-top': 'zd-margin-',
|
231
|
-
// 'margin-bottom': 'zd-margin-',
|
232
|
-
// 'margin-left': 'zd-margin-',
|
233
|
-
// 'margin-right': 'zd-margin-'
|
234
|
-
// };
|
235
|
-
|
236
|
-
|
237
|
-
function allowParent(rule) {
|
238
|
-
return rule.parent.type === 'root' || rule.parent.type === 'atrule' && rule.parent.name === 'media';
|
239
|
-
}
|
240
|
-
|
241
|
-
module.exports = function (source) {
|
242
|
-
const {
|
243
|
-
resourcePath
|
244
|
-
} = this;
|
245
|
-
const options = (0, _utils.getOptions)(); // console.log(options.app.patterns.composeMinification);
|
246
|
-
// const ig = ignore({ allowRelativePaths: true }).add(options.app.patterns.composeMinification);
|
247
|
-
// const newFilename = path.relative(path.parse(process.cwd()).base, resourcePath);
|
248
|
-
// console.log(newFilename, ig.ignores(newFilename));
|
249
|
-
|
250
|
-
let root = _postcss.default.parse(source);
|
251
|
-
|
252
|
-
if (!(0, _fileHandling.isFileNameMatchingPluginPattern)({
|
253
|
-
filename: resourcePath,
|
254
|
-
filterArr: options.app.patterns.composeMinification
|
255
|
-
})) {
|
256
|
-
return root.toString();
|
257
|
-
}
|
258
|
-
|
259
|
-
root.walkRules(rule => {
|
260
|
-
rule.walkDecls(decl => {
|
261
|
-
if (/^-ms|^-webkit|^moz/gi.test(decl.prop)) {
|
262
|
-
return;
|
263
|
-
}
|
264
|
-
|
265
|
-
if (!allowParent(rule)) {
|
266
|
-
return;
|
267
|
-
}
|
268
|
-
|
269
|
-
if ((0, _classHandling.isInsideMediaQuery)(rule)) {
|
270
|
-
console.log('inside media query', rule.selector);
|
271
|
-
return;
|
272
|
-
}
|
273
|
-
|
274
|
-
if (supportedProps.includes(decl.prop) && /^position$|^overflow|^float|^display|^text-align|^white-space|^visibility/gi.test(decl.prop) && !/[,\s+]+|(\w+)\.|:|::|body|(\d+)%|>/gi.test(rule.selector) && commonFilePath[decl.prop] && !decl.value.includes('var(--')) {
|
275
|
-
decl.value = generateComposeString(resourcePath, decl.prop, decl.value);
|
276
|
-
decl.prop = 'composes';
|
277
|
-
return;
|
278
|
-
}
|
279
|
-
|
280
|
-
if (supportedProps.includes(decl.prop) && /px$/gi.test(decl.value) && !/^--/gi.test(decl.prop) && commonFilePath[decl.prop] && !decl.value.includes('calc') && !/[,\s+]+|(\w+)\.|:|(\d+)%/gi.test(rule.selector)) {
|
281
|
-
// n++ < 10 && console.log(composeString);
|
282
|
-
// if (!composeString.includes('src')) {
|
283
|
-
// if (/px$/gi.test(decl.value)) {
|
284
|
-
decl.value = generateComposeString(resourcePath, decl.prop, decl.value); // }
|
285
|
-
// if (/^position$|^display$|^overflow$|^float$/gi.test(decl.prop)) {
|
286
|
-
// console.log(decl.prop);
|
287
|
-
// }
|
288
|
-
|
289
|
-
decl.prop = 'composes'; // console.log(decl.prop, decl.value);
|
290
|
-
// n < 10 && console.log(rule.selector, decl.prop, decl.value);
|
291
|
-
// }
|
292
|
-
}
|
293
|
-
});
|
294
|
-
});
|
295
|
-
const output = root.toString(); // console.log(output);
|
296
|
-
|
297
|
-
return output;
|
298
|
-
};
|
@@ -1,71 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.markdownParser = markdownParser;
|
7
|
-
|
8
|
-
const markdownIt = require('markdown-it'); // const md = new markdownIt({ linkify: true,breaks:true });
|
9
|
-
|
10
|
-
|
11
|
-
const md = new markdownIt({
|
12
|
-
html: false,
|
13
|
-
linkify: true,
|
14
|
-
typographer: true,
|
15
|
-
breaks: true,
|
16
|
-
xhtmlOut: true
|
17
|
-
}); //const md = new markdownIt();
|
18
|
-
|
19
|
-
function markdownParser(source) {
|
20
|
-
if (!source) {
|
21
|
-
return '';
|
22
|
-
}
|
23
|
-
|
24
|
-
const startTag = '/* MD:START';
|
25
|
-
const endTag = 'MD:END */'; // Iterate through all occurrences of the tags
|
26
|
-
|
27
|
-
let startIndex = source.indexOf(startTag);
|
28
|
-
|
29
|
-
while (startIndex !== -1) {
|
30
|
-
const endIndex = source.indexOf(endTag, startIndex);
|
31
|
-
|
32
|
-
if (endIndex !== -1) {
|
33
|
-
const extractedMarkdown = source.slice(startIndex + startTag.length, endIndex);
|
34
|
-
let lines = extractedMarkdown.split('\n');
|
35
|
-
lines = lines.filter(line => line.trim() !== '');
|
36
|
-
const firstLineIndentMatch = lines[0].match(/^\s+/);
|
37
|
-
const firstLineIndent = firstLineIndentMatch ? firstLineIndentMatch[0] : '';
|
38
|
-
const modifiedStr = lines.map(line => line.replace(new RegExp(`^${firstLineIndent}`), '')).join('\n').replace(/(:--)|(--:)/g, '---');
|
39
|
-
let html = md.render(modifiedStr); //html = html.replace(/"|<hr>|<img src=(".*?")>|<br>|:--|--:|{|}|\$/g, match => {
|
40
|
-
|
41
|
-
html = html.replace(/"|{|}|\$/g, match => {
|
42
|
-
// if (match === '<hr>') {
|
43
|
-
// return '<hr/>';
|
44
|
-
// } else if (match.startsWith('<img src=')) {
|
45
|
-
// return match.replace('>', '/>');
|
46
|
-
// } else if (match === '<br>') {
|
47
|
-
// return '<br/>';
|
48
|
-
if (match === '$') {
|
49
|
-
return '$';
|
50
|
-
} else if (match === '{') {
|
51
|
-
return '{';
|
52
|
-
} else if (match === '}') {
|
53
|
-
return '}';
|
54
|
-
} // else if (match === ':--' || match === '--:' ) {
|
55
|
-
// return '---';
|
56
|
-
// }
|
57
|
-
else if (match === '}') {
|
58
|
-
return '}';
|
59
|
-
}
|
60
|
-
|
61
|
-
return match;
|
62
|
-
}); // console.log(html,"html");
|
63
|
-
|
64
|
-
source = source.replace(source.slice(startIndex, endIndex + endTag.length), '<><div class="markDown">' + html + '</div></>');
|
65
|
-
}
|
66
|
-
|
67
|
-
startIndex = source.indexOf(startTag, startIndex + 1); // console.log(source)
|
68
|
-
}
|
69
|
-
|
70
|
-
return source;
|
71
|
-
}
|
@@ -1,105 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.reactLiveConvertor = reactLiveConvertor;
|
7
|
-
|
8
|
-
const parser = require('@babel/parser');
|
9
|
-
|
10
|
-
const traverse = require('@babel/traverse').default;
|
11
|
-
|
12
|
-
const path = require('path');
|
13
|
-
|
14
|
-
function getFilename(originalFilePath) {
|
15
|
-
const [fileName] = path.basename(originalFilePath).split('.');
|
16
|
-
return fileName;
|
17
|
-
}
|
18
|
-
|
19
|
-
function reactLiveConvertor(source, originalFilePath) {
|
20
|
-
const fileName = getFilename(originalFilePath);
|
21
|
-
|
22
|
-
if (!source) {
|
23
|
-
return '';
|
24
|
-
}
|
25
|
-
|
26
|
-
let importBlock = '';
|
27
|
-
let docCode = '';
|
28
|
-
const packages = new Set();
|
29
|
-
const fileContent = source.replace(/[\s\r\n]*$/, '');
|
30
|
-
const ast = parser.parse(fileContent, {
|
31
|
-
sourceType: 'module',
|
32
|
-
plugins: ['jsx', 'classProperties']
|
33
|
-
}); // Traverse the AST and find the import and export blocks
|
34
|
-
|
35
|
-
let remainingCode = ast.program.body.filter(node => node.type !== 'ImportDeclaration').map(node => fileContent.substring(node.start, node.end)).join('').replace(/export default/, '').replace(/export /, '').trim();
|
36
|
-
traverse(ast, {
|
37
|
-
ImportDeclaration(path) {
|
38
|
-
importBlock += `${fileContent.slice(path.node.start, path.node.end)}\n`;
|
39
|
-
path.node.specifiers.forEach(specifier => {
|
40
|
-
if (specifier.type === 'ImportSpecifier') {
|
41
|
-
packages.add(specifier.imported.name);
|
42
|
-
}
|
43
|
-
|
44
|
-
if (specifier.local.type === 'Identifier') {
|
45
|
-
packages.add(specifier.local.name);
|
46
|
-
}
|
47
|
-
});
|
48
|
-
},
|
49
|
-
|
50
|
-
ExpressionStatement(path) {
|
51
|
-
const expression = path.get('expression');
|
52
|
-
const expressionLeft = expression.get('left');
|
53
|
-
|
54
|
-
if (path.isExpressionStatement() && expression.isAssignmentExpression() && expressionLeft.isMemberExpression()) {
|
55
|
-
const docCheck = expressionLeft.toString();
|
56
|
-
|
57
|
-
if (docCheck === `${fileName}.docs`) {
|
58
|
-
docCode = expression.toString();
|
59
|
-
}
|
60
|
-
}
|
61
|
-
} // IfStatement(path){
|
62
|
-
// if(path.node.type == 'IfStatement'){
|
63
|
-
// if(path.node.test.name == '__DOCS__'){
|
64
|
-
// let final = fileContent.slice(path.node.start,path.node.end)
|
65
|
-
// fileContent = fileContent.replace(final,'')
|
66
|
-
// console.log(fileContent);
|
67
|
-
// }
|
68
|
-
// }
|
69
|
-
// }
|
70
|
-
|
71
|
-
|
72
|
-
});
|
73
|
-
remainingCode = remainingCode.replace(/__DOCS__/, true);
|
74
|
-
remainingCode = remainingCode.replace(/`/g, '\\`').replace(/\$\{/g, '$\\{');
|
75
|
-
const brcklets = `(function () {
|
76
|
-
|
77
|
-
${remainingCode}
|
78
|
-
|
79
|
-
return <${fileName} />
|
80
|
-
|
81
|
-
}) ()`;
|
82
|
-
const addBractick = `\`${brcklets}\``;
|
83
|
-
const template = `
|
84
|
-
|
85
|
-
${importBlock}
|
86
|
-
|
87
|
-
import { LiveProvider, LiveEditor, LiveError, LivePreview } from '@zohodesk-private/react-live/es/index'
|
88
|
-
|
89
|
-
export default class ${fileName} extends React.Component{
|
90
|
-
render(){
|
91
|
-
return(
|
92
|
-
<LiveProvider scope={{${Array.from(packages).join(', ')}}} code={${addBractick}}>
|
93
|
-
<LiveEditor />
|
94
|
-
<LiveError />
|
95
|
-
<LivePreview />
|
96
|
-
|
97
|
-
</LiveProvider>
|
98
|
-
)
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
${docCode}
|
103
|
-
`;
|
104
|
-
return template;
|
105
|
-
}
|
package/lib/logger.js
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.errorLogger = errorLogger;
|
7
|
-
exports.messageLogger = messageLogger;
|
8
|
-
exports.verboseLogger = verboseLogger;
|
9
|
-
exports.warnLogger = warnLogger;
|
10
|
-
|
11
|
-
/* eslint-disable no-console */
|
12
|
-
function messageLogger(...args) {
|
13
|
-
console.log(...args);
|
14
|
-
}
|
15
|
-
|
16
|
-
function errorLogger(...args) {
|
17
|
-
console.error(...args);
|
18
|
-
}
|
19
|
-
|
20
|
-
function warnLogger(...args) {
|
21
|
-
console.warn(...args);
|
22
|
-
}
|
23
|
-
|
24
|
-
function verboseLogger(...args) {
|
25
|
-
// TODO: need to be remove when publish happens
|
26
|
-
process.env.VERBOSE === 'true' && console.log('\x1b[33m [verbose] \x1b[0m', ...args);
|
27
|
-
}
|
@@ -1,82 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.CustomAttributePlugin = void 0;
|
7
|
-
|
8
|
-
var _Template = _interopRequireDefault(require("webpack/lib/Template"));
|
9
|
-
|
10
|
-
var _htmlWebpackInjectAttributesPlugin = _interopRequireDefault(require("html-webpack-inject-attributes-plugin"));
|
11
|
-
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13
|
-
|
14
|
-
/* eslint-disable no-use-before-define */
|
15
|
-
class CustomAttributePlugin {
|
16
|
-
constructor(options) {
|
17
|
-
this.options = {
|
18
|
-
attributes: options.attributes,
|
19
|
-
useHTMLAttribute: options.attributes && !options.jsAttributes && !options.cssAttributes && !options.i18nAttributes,
|
20
|
-
jsAttributes: options.jsAttributes || options.attributes || {},
|
21
|
-
cssAttributes: options.cssAttributes || options.attributes || {},
|
22
|
-
i18nAttributes: options.i18nAttributes || options.attributes || {}
|
23
|
-
};
|
24
|
-
}
|
25
|
-
|
26
|
-
addCustomAttributeToDynamicScriptTags(mainTemplate) {
|
27
|
-
const {
|
28
|
-
jsAttributes,
|
29
|
-
cssAttributes,
|
30
|
-
i18nAttributes
|
31
|
-
} = this.options; // NOTE: To add custom Attributes to js Script tags
|
32
|
-
|
33
|
-
mainTemplate.hooks.jsonpScript.tap('CustomAttributePlugin', source => {
|
34
|
-
const str = attributeSetTemplate(jsAttributes, 'script');
|
35
|
-
return _Template.default.asString([source, ...str]);
|
36
|
-
}); // NOTE: To add custom Attributes to css link tags
|
37
|
-
|
38
|
-
mainTemplate.hooks.requireEnsure.tap('CustomAttributePlugin', source => {
|
39
|
-
const str = attributeSetTemplate(cssAttributes, 'linkTag');
|
40
|
-
const replacedStr = source.replace('head.appendChild(linkTag);', `${str.join('')}head.appendChild(linkTag);`); // console.log({ s: source, r: replacedStr });
|
41
|
-
|
42
|
-
return replacedStr;
|
43
|
-
}); // NOTE: To add custom Attributes to i18n split js Script tags
|
44
|
-
|
45
|
-
mainTemplate.hooks.requireEnsure.tap('CustomAttributePlugin', source => {
|
46
|
-
const str = attributeSetTemplate(i18nAttributes, 'scriptTag');
|
47
|
-
const replacedStr = source.replace('document.body.appendChild(scriptTag);', `${str.join('')}document.body.appendChild(scriptTag);`); // console.log({ s: source, r: replacedStr });
|
48
|
-
|
49
|
-
return replacedStr;
|
50
|
-
});
|
51
|
-
}
|
52
|
-
|
53
|
-
apply(compiler) {
|
54
|
-
// NOTE: we not using this, Reason currently this option is only need for EFC,
|
55
|
-
// So it do not needed.
|
56
|
-
const {
|
57
|
-
attributes,
|
58
|
-
useHTMLAttribute
|
59
|
-
} = this.options;
|
60
|
-
useHTMLAttribute && new _htmlWebpackInjectAttributesPlugin.default(attributes).apply(compiler);
|
61
|
-
compiler.hooks.thisCompilation.tap({
|
62
|
-
name: 'CustomAttributePlugin',
|
63
|
-
stage: 1,
|
64
|
-
fn: compilation => {
|
65
|
-
this.addCustomAttributeToDynamicScriptTags(compilation.mainTemplate);
|
66
|
-
}
|
67
|
-
});
|
68
|
-
}
|
69
|
-
|
70
|
-
}
|
71
|
-
|
72
|
-
exports.CustomAttributePlugin = CustomAttributePlugin;
|
73
|
-
|
74
|
-
function attributeSetTemplate(jsAttributes, variableName) {
|
75
|
-
let str = [];
|
76
|
-
Object.keys(jsAttributes).forEach(key => {
|
77
|
-
const val = jsAttributes[key];
|
78
|
-
str.push(`${variableName}.setAttribute(${JSON.stringify(key)}, ${JSON.stringify(val)});`);
|
79
|
-
}); // console.log({ str });
|
80
|
-
|
81
|
-
return str;
|
82
|
-
}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# CustomAttributePlugin
|
2
|
-
In this plugin we added all dynamic chunks tags (like js script tags , css script tags, i18n split script tags) to extra custom attribute
|
3
|
-
|
4
|
-
## Options
|
5
|
-
|
6
|
-
```json
|
7
|
-
{
|
8
|
-
"name": "some",
|
9
|
-
"react-cli": {
|
10
|
-
"app": {
|
11
|
-
"customAttributes": {// this is the all options
|
12
|
-
"enable": false,
|
13
|
-
"attributes": null,
|
14
|
-
"jsAttributes": null,
|
15
|
-
"cssAttributes": null,
|
16
|
-
"i18nAttributes": null
|
17
|
-
}
|
18
|
-
}
|
19
|
-
}
|
20
|
-
```
|
21
|
-
|
22
|
-
### enable [Boolean]
|
23
|
-
this decides is this plugin or feature needs to be enabled of not.
|
24
|
-
|
25
|
-
|
26
|
-
### attributes [Object]
|
27
|
-
It was object of key value pairs Example Given Option {"data-app-name":"myapp"}
|
28
|
-
Then all dynamically (js script tags , css script tags, i18n split script tags) added tags via webpack
|
29
|
-
|
30
|
-
### jsAttributes [Object]
|
31
|
-
same as [attributes] but only for js script tags
|
32
|
-
### cssAttributes [Object]
|
33
|
-
same as [attributes] but only for css script tags
|
34
|
-
### i18nAttributes [Object]
|
35
|
-
same as [attributes] but only for i18n split script tags
|
@@ -1,43 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
Template
|
5
|
-
} = require('webpack');
|
6
|
-
|
7
|
-
const plugInName = 'EFCResourceCleanup';
|
8
|
-
module.exports = class EfcResouceCleanupPlugin {
|
9
|
-
constructor(options) {
|
10
|
-
this.options = options;
|
11
|
-
}
|
12
|
-
|
13
|
-
apply(compiler) {
|
14
|
-
compiler.hooks.thisCompilation.tap(plugInName, ({
|
15
|
-
mainTemplate
|
16
|
-
}) => {
|
17
|
-
mainTemplate.hooks.afterStartup.tap(plugInName, source => {
|
18
|
-
const {
|
19
|
-
attributes,
|
20
|
-
globalCacheObj
|
21
|
-
} = this.options;
|
22
|
-
const attributesArr = Object.entries(attributes);
|
23
|
-
const [[attributekey, attributeValue]] = attributesArr;
|
24
|
-
const resourceSelector = `[${attributekey}="${attributeValue}"]`;
|
25
|
-
return Template.asString([source, Template.indent([` window['${globalCacheObj}Jsonp'].unInstall = function() {
|
26
|
-
Object.keys(installedModules).forEach(installedModulesKey => installedModules[installedModulesKey] = null);
|
27
|
-
Object.keys(modules).forEach(moduleKey => modules[moduleKey] = null);
|
28
|
-
`, `
|
29
|
-
installedModules = null;
|
30
|
-
modules = null;
|
31
|
-
__webpack_require__.m = null;
|
32
|
-
__webpack_require__.c = null;
|
33
|
-
|
34
|
-
`, attributekey && attributeValue ? `
|
35
|
-
const addedResources = document.querySelectorAll('${resourceSelector}');
|
36
|
-
addedResources.forEach(addedResource => addedResource.remove());
|
37
|
-
}
|
38
|
-
` : ''])]);
|
39
|
-
});
|
40
|
-
});
|
41
|
-
}
|
42
|
-
|
43
|
-
};
|