@zohodesk/react-cli 0.0.1-beta.98 → 0.0.1-betaa.138.1
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/CHANGELOG.md +5 -0
- package/README.md +149 -0
- package/bin/cli.js +34 -29
- package/files/eslintrc.js +57 -0
- package/files/prettierrc.js +3 -0
- package/lib/babel/cmjs-plugins-presets.js +16 -9
- package/lib/babel/es-plugins-presets.js +26 -14
- package/lib/common/getEntries.js +31 -22
- package/lib/common/getPublicPathConfig.js +27 -13
- package/lib/common/index.js +21 -25
- package/lib/common/splitChunks.js +62 -53
- package/lib/common/templateParameters.js +10 -8
- package/lib/configs/jest.config.js +15 -25
- package/lib/configs/webpack.component.umd.config.js +31 -37
- package/lib/configs/webpack.css.umd.config.js +44 -47
- package/lib/configs/webpack.dev.config.js +70 -52
- package/lib/configs/webpack.docs.config.js +106 -106
- package/lib/configs/webpack.prod.config.js +95 -75
- package/lib/hooks/docsProptypeHook.js +32 -38
- package/lib/jest/commitedFilesResult.js +103 -74
- package/lib/jest/coverageCollector.js +41 -21
- package/lib/jest/jsonMaker.js +15 -16
- package/lib/jest/preProcessors/cssPreprocessor.js +16 -18
- package/lib/jest/preProcessors/jsPreprocessor.js +3 -5
- package/lib/jest/preProcessors/otherFilesPreprocessor.js +5 -6
- package/lib/jest/result.js +90 -45
- package/lib/jest/run.js +43 -43
- package/lib/jest/setup.js +102 -95
- package/lib/loaderUtils/getCSSLoaders.js +21 -22
- package/lib/loaderUtils/getDevJsLoaders.js +25 -23
- package/lib/loaderUtils/index.js +11 -13
- package/lib/loaders/docsLoader.js +15 -15
- package/lib/loaders/docsPropsLoader.js +14 -17
- package/lib/loaders/fileLoader.js +33 -35
- package/lib/loaders/scriptInstrumentLoader.js +21 -20
- package/lib/loaders/workerLoader.js +136 -0
- package/lib/middlewares/HMRMiddleware.js +54 -45
- package/lib/middlewares/SSTMiddleware.js +8 -5
- package/lib/pluginUtils/getDevPlugins.js +114 -52
- package/lib/pluginUtils/getDocsPlugins.js +25 -29
- package/lib/pluginUtils/getLibraryPlugins.js +8 -10
- package/lib/pluginUtils/getProdPlugins.js +163 -74
- package/lib/pluginUtils/getServerPlugins.js +8 -11
- package/lib/pluginUtils/getUMDCSSPlugins.js +11 -15
- package/lib/pluginUtils/getUMDComponentPlugins.js +11 -15
- package/lib/pluginUtils/index.js +36 -43
- package/lib/plugins/CdnChangePlugin.js +63 -0
- package/lib/plugins/CleanupStatsPlugin.js +18 -32
- package/lib/plugins/CustomAttributePlugin.js +79 -0
- package/lib/plugins/CustomAttributePlugin.md +35 -0
- package/lib/plugins/EFCPlugin.js +185 -0
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +118 -52
- package/lib/plugins/I18nSplitPlugin/I18nDebugPlugin.js +60 -0
- package/lib/plugins/I18nSplitPlugin/I18nDependency.js +44 -0
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +266 -0
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +183 -0
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +100 -0
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +86 -0
- package/lib/plugins/I18nSplitPlugin/README.md +25 -0
- package/lib/plugins/I18nSplitPlugin/index.js +185 -0
- package/lib/plugins/I18nSplitPlugin/utils/collectI18nKeys.js +64 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nFileUrlPathTemplate.js +13 -0
- package/lib/plugins/I18nSplitPlugin/utils/getI18nKeysFormModules.js +26 -0
- package/lib/plugins/I18nSplitPlugin/utils/hashUtils.js +40 -0
- package/lib/plugins/I18nSplitPlugin/utils/index.js +31 -0
- package/lib/plugins/I18nSplitPlugin/utils/propertiesUtils.js +112 -0
- package/lib/plugins/ManifestPlugin.js +52 -63
- package/lib/plugins/ModuleStatsPlugin.js +83 -173
- package/lib/plugins/OptimizeJSPlugin.js +24 -41
- package/lib/plugins/PublicPathCallbackPlugin.js +42 -116
- package/lib/plugins/PublicPathChangePlugin.js +175 -284
- package/lib/plugins/ReportGeneratePlugin.js +150 -151
- package/lib/plugins/ResourceHintsPlugin.js +53 -35
- package/lib/plugins/ScriptInstrumentPlugin.js +22 -37
- package/lib/plugins/ServiceWorkerPlugin.js +81 -57
- package/lib/plugins/ShadowDOMSupportPlugin.js +153 -234
- package/lib/plugins/SourceMapHookPlugin.js +21 -33
- package/lib/plugins/TPHashMappingPlugin.js +67 -0
- package/lib/plugins/UglifyCSSPlugin.js +23 -30
- package/lib/plugins/UnusedFilesFindPlugin.js +137 -152
- package/lib/plugins/index.js +100 -91
- package/lib/plugins/webpackwatchrunplugin.js +18 -30
- package/lib/postcss-plugins/ExcludeRTLPlugin.js +14 -17
- package/lib/schemas/index.js +336 -81
- package/lib/servers/clusterHubServer.js +22 -26
- package/lib/servers/docsServer.js +3 -5
- package/lib/servers/docsServerCore.js +84 -91
- package/lib/servers/helpServer.js +19 -21
- package/lib/servers/impactServer.js +99 -92
- package/lib/servers/mockserver.js +24 -24
- package/lib/servers/scrServer.js +78 -98
- package/lib/servers/server.js +101 -122
- package/lib/servers/ssServer.js +63 -61
- package/lib/sh/reportPublish.sh +1 -2
- package/lib/templates/CoverageScriptTemplate.js +45 -18
- package/lib/templates/WMSTemplate.js +17 -18
- package/lib/templates/linterConstant.js +6 -4
- package/lib/utils/babelPresets.js +12 -5
- package/lib/utils/clean.js +12 -11
- package/lib/utils/copy.js +12 -34
- package/lib/utils/copyTimezones.js +9 -16
- package/lib/utils/createEventStream.js +24 -19
- package/lib/utils/cssClassNameGenerate.js +44 -73
- package/lib/utils/cssURLReplacer.js +62 -56
- package/lib/utils/dependencyPostPublish.js +20 -19
- package/lib/utils/fileUtils.js +66 -54
- package/lib/utils/folderIterator.js +20 -21
- package/lib/utils/getComponents.js +70 -27
- package/lib/utils/getCurrentBranch.js +11 -17
- package/lib/utils/getDependenciesImpactList.js +114 -187
- package/lib/utils/getHash.js +9 -13
- package/lib/utils/getIp.js +9 -9
- package/lib/utils/getOptions.js +26 -29
- package/lib/utils/getServerURL.js +19 -10
- package/lib/utils/index.js +147 -126
- package/lib/utils/init.js +2 -2
- package/lib/utils/initPreCommitHook.js +40 -32
- package/lib/utils/jsonHelper.js +37 -21
- package/lib/utils/lint/addScripts.js +27 -0
- package/lib/utils/lint/checkExistingConfig.js +67 -0
- package/lib/utils/lint/copyConfigs.js +24 -0
- package/lib/utils/lint/index.js +54 -0
- package/lib/utils/lint/lintScripts.js +11 -0
- package/lib/utils/lint/lintSetup.js +31 -0
- package/lib/utils/lint/lintStagedPreCommitHook.js +7 -0
- package/lib/utils/lint/question.js +30 -0
- package/lib/utils/lintReporter.js +70 -56
- package/lib/utils/mailSender.js +12 -27
- package/lib/utils/pullOrigin.js +21 -18
- package/lib/utils/reinstallDependencies.js +76 -85
- package/lib/utils/removeAttributes.js +25 -23
- package/lib/utils/repoClone.js +47 -45
- package/lib/utils/request.js +64 -77
- package/lib/utils/rtl.js +22 -29
- package/lib/utils/setEnvVariables.js +5 -6
- package/lib/utils/ssTestHack.js +21 -19
- package/lib/utils/switchBranch.js +21 -20
- package/lib/utils/urlConcat.js +22 -0
- package/package.json +72 -67
|
@@ -1,151 +1,144 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _fs = require(
|
|
8
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
+
var _path = _interopRequireDefault(require("path"));
|
|
10
11
|
|
|
11
|
-
var
|
|
12
|
+
var _https = _interopRequireDefault(require("https"));
|
|
12
13
|
|
|
13
|
-
var
|
|
14
|
+
var _webpack = _interopRequireDefault(require("webpack"));
|
|
14
15
|
|
|
15
|
-
var
|
|
16
|
+
var _express = _interopRequireDefault(require("express"));
|
|
16
17
|
|
|
17
|
-
var
|
|
18
|
+
var _child_process = require("child_process");
|
|
18
19
|
|
|
19
|
-
var
|
|
20
|
+
var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
|
|
20
21
|
|
|
21
|
-
var
|
|
22
|
+
var _HMRMiddleware = _interopRequireDefault(require("../middlewares/HMRMiddleware"));
|
|
22
23
|
|
|
23
|
-
var
|
|
24
|
+
var _utils = require("../utils");
|
|
24
25
|
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
var _child_process = require('child_process');
|
|
28
|
-
|
|
29
|
-
var _webpackDevMiddleware = require('webpack-dev-middleware');
|
|
30
|
-
|
|
31
|
-
var _webpackDevMiddleware2 = _interopRequireDefault(_webpackDevMiddleware);
|
|
32
|
-
|
|
33
|
-
var _HMRMiddleware = require('../middlewares/HMRMiddleware');
|
|
34
|
-
|
|
35
|
-
var _HMRMiddleware2 = _interopRequireDefault(_HMRMiddleware);
|
|
36
|
-
|
|
37
|
-
var _utils = require('../utils');
|
|
38
|
-
|
|
39
|
-
var _webpackDocs = require('../configs/webpack.docs.config');
|
|
40
|
-
|
|
41
|
-
var _webpackDocs2 = _interopRequireDefault(_webpackDocs);
|
|
26
|
+
var _webpackDocs = _interopRequireDefault(require("../configs/webpack.docs.config"));
|
|
42
27
|
|
|
43
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
44
29
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
app
|
|
30
|
+
var _default = isSSTest => {
|
|
31
|
+
let options = (0, _utils.getOptions)();
|
|
32
|
+
let {
|
|
33
|
+
docs: {
|
|
34
|
+
server
|
|
35
|
+
}
|
|
36
|
+
} = options;
|
|
37
|
+
let {
|
|
38
|
+
port,
|
|
39
|
+
branch,
|
|
40
|
+
host,
|
|
41
|
+
domain,
|
|
42
|
+
iphost
|
|
43
|
+
} = server;
|
|
44
|
+
let appPath = process.cwd();
|
|
45
|
+
const app = (0, _express.default)();
|
|
46
|
+
app.use(_express.default.json());
|
|
47
|
+
app.use(_express.default.urlencoded({
|
|
61
48
|
extended: true
|
|
62
49
|
}));
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
var compiler = (0, _webpack2.default)(docsConfig);
|
|
67
|
-
|
|
68
|
-
var wdm = (0, _webpackDevMiddleware2.default)(compiler, {
|
|
50
|
+
let docsConfig = (0, _webpackDocs.default)(isSSTest);
|
|
51
|
+
let compiler = (0, _webpack.default)(docsConfig);
|
|
52
|
+
let wdm = (0, _webpackDevMiddleware.default)(compiler, {
|
|
69
53
|
logLevel: 'error',
|
|
70
54
|
publicPath: docsConfig.output.publicPath,
|
|
71
|
-
headers: {
|
|
55
|
+
headers: {
|
|
56
|
+
'Access-Control-Allow-Origin': '*'
|
|
57
|
+
}
|
|
72
58
|
});
|
|
73
|
-
|
|
74
59
|
app.use(wdm);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
app.use('/docs/external/',
|
|
79
|
-
app.use('/docs',
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
res.sendFile(_path2.default.join(__dirname, '..', '..', 'templates', 'docs', 'index.html'));
|
|
60
|
+
app.use((0, _HMRMiddleware.default)(compiler, {
|
|
61
|
+
path: '/sockjs-node/info'
|
|
62
|
+
}));
|
|
63
|
+
app.use('/docs/external/', _express.default.static(_path.default.join(appPath, 'docs', 'external')));
|
|
64
|
+
app.use('/docs', _express.default.static(_path.default.join(__dirname, '..', '..', 'templates', 'docs')));
|
|
65
|
+
app.use('/docs/*', (req, res) => {
|
|
66
|
+
res.sendFile(_path.default.join(__dirname, '..', '..', 'templates', 'docs', 'index.html'));
|
|
83
67
|
});
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
componentName =
|
|
88
|
-
|
|
89
|
-
|
|
68
|
+
app.use('/author/get', (req, res) => {
|
|
69
|
+
let {
|
|
70
|
+
query: {
|
|
71
|
+
componentName = ''
|
|
72
|
+
}
|
|
73
|
+
} = req;
|
|
74
|
+
res.json({
|
|
75
|
+
stdout: (0, _child_process.execSync)(`git blame ${componentName}`).toString()
|
|
76
|
+
});
|
|
90
77
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
78
|
+
app.use('/cli/version', (req, res) => {
|
|
79
|
+
res.json({
|
|
80
|
+
version: require('../../package.json').version
|
|
81
|
+
});
|
|
94
82
|
});
|
|
95
83
|
|
|
96
84
|
if (branch) {
|
|
97
|
-
app.post('/repo/merge',
|
|
98
|
-
|
|
85
|
+
app.post('/repo/merge', (req, res) => {
|
|
86
|
+
let {
|
|
87
|
+
ref
|
|
88
|
+
} = req.body;
|
|
99
89
|
|
|
100
90
|
if (ref && ref.endsWith(branch)) {
|
|
101
91
|
(0, _child_process.spawnSync)('git', ['pull', 'origin', branch], {
|
|
102
92
|
stdio: 'inherit'
|
|
103
93
|
});
|
|
104
94
|
}
|
|
95
|
+
|
|
105
96
|
res.send('done');
|
|
106
97
|
});
|
|
107
98
|
}
|
|
108
99
|
|
|
109
|
-
|
|
110
|
-
key:
|
|
111
|
-
cert:
|
|
100
|
+
const httpsServer = _https.default.createServer({
|
|
101
|
+
key: _fs.default.readFileSync(_path.default.join(__dirname, '../../cert/key.pem')),
|
|
102
|
+
cert: _fs.default.readFileSync(_path.default.join(__dirname, '../../cert/cert.pem')),
|
|
112
103
|
passphrase: '9i1pqink!k11'
|
|
113
104
|
}, app);
|
|
105
|
+
|
|
114
106
|
if (!isSSTest) {
|
|
115
|
-
httpsServer.listen(port,
|
|
107
|
+
httpsServer.listen(port, err => {
|
|
116
108
|
if (err) {
|
|
117
109
|
throw err;
|
|
118
110
|
}
|
|
119
111
|
|
|
120
|
-
(0, _utils.log)(
|
|
112
|
+
(0, _utils.log)(`Listening at ${(0, _utils.getServerURL)(server, 'htt' + 'ps')}/docs/`);
|
|
121
113
|
});
|
|
122
114
|
}
|
|
123
115
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var http = app.listen(httpPort, function (err) {
|
|
116
|
+
let httpPort = Number(port) + 1;
|
|
117
|
+
let http = app.listen(httpPort, err => {
|
|
127
118
|
if (err) {
|
|
128
119
|
throw err;
|
|
129
120
|
}
|
|
121
|
+
|
|
130
122
|
if (isSSTest) {
|
|
131
|
-
(0, _utils.log)(
|
|
123
|
+
(0, _utils.log)(`Listening at ${(0, _utils.getServerURL)(Object.assign(server, {
|
|
132
124
|
host: iphost,
|
|
133
125
|
port: port
|
|
134
|
-
}), 'htt' + 'p')
|
|
126
|
+
}), 'htt' + 'p')}/docs/`);
|
|
135
127
|
} else {
|
|
136
|
-
(0, _utils.log)(
|
|
137
|
-
host
|
|
138
|
-
domain
|
|
139
|
-
port
|
|
140
|
-
}, 'htt' + 'p')
|
|
128
|
+
(0, _utils.log)(`Listening at ${(0, _utils.getServerURL)({
|
|
129
|
+
host,
|
|
130
|
+
domain,
|
|
131
|
+
port
|
|
132
|
+
}, 'htt' + 'p')}/docs/`);
|
|
141
133
|
}
|
|
142
134
|
});
|
|
143
|
-
|
|
144
135
|
return {
|
|
145
|
-
compiler
|
|
146
|
-
app
|
|
147
|
-
http
|
|
136
|
+
compiler,
|
|
137
|
+
app,
|
|
138
|
+
http,
|
|
148
139
|
https: httpsServer,
|
|
149
|
-
wdm
|
|
140
|
+
wdm
|
|
150
141
|
};
|
|
151
|
-
};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
exports.default = _default;
|
|
@@ -1,31 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var _path = require(
|
|
3
|
+
var _path = _interopRequireDefault(require("path"));
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _express = _interopRequireDefault(require("express"));
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var _express2 = _interopRequireDefault(_express);
|
|
10
|
-
|
|
11
|
-
var _utils = require('../utils');
|
|
7
|
+
var _utils = require("../utils");
|
|
12
8
|
|
|
13
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
app.
|
|
11
|
+
let options = (0, _utils.getOptions)();
|
|
12
|
+
let {
|
|
13
|
+
help: {
|
|
14
|
+
server
|
|
15
|
+
}
|
|
16
|
+
} = options;
|
|
17
|
+
let serverUrl = (0, _utils.getServerURL)(server, 'htt' + 'p');
|
|
18
|
+
let {
|
|
19
|
+
port
|
|
20
|
+
} = server;
|
|
21
|
+
let app = (0, _express.default)();
|
|
22
|
+
app.use('/help', _express.default.static(_path.default.join(__dirname, '..', '..', 'templates', 'help')));
|
|
23
|
+
app.listen(port, err => {
|
|
27
24
|
if (err) {
|
|
28
25
|
throw err;
|
|
29
26
|
}
|
|
30
|
-
|
|
27
|
+
|
|
28
|
+
(0, _utils.log)(`Listening at ${serverUrl}/help/`);
|
|
31
29
|
});
|
|
@@ -1,64 +1,63 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _express = _interopRequireDefault(require("express"));
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _gitlab = require("gitlab");
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _esprima = _interopRequireDefault(require("esprima"));
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _esprima = require('esprima');
|
|
12
|
-
|
|
13
|
-
var _esprima2 = _interopRequireDefault(_esprima);
|
|
14
|
-
|
|
15
|
-
var _utils = require('../utils');
|
|
9
|
+
var _utils = require("../utils");
|
|
16
10
|
|
|
17
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
12
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
13
|
+
let options = (0, _utils.getOptions)();
|
|
14
|
+
let {
|
|
15
|
+
impact: {
|
|
16
|
+
server
|
|
17
|
+
}
|
|
18
|
+
} = options;
|
|
19
|
+
let serverUrl = (0, _utils.getServerURL)(server, 'htt' + 'p');
|
|
20
|
+
let {
|
|
21
|
+
port
|
|
22
|
+
} = server;
|
|
23
|
+
const services = new _gitlab.ProjectsBundle({
|
|
29
24
|
url: 'https://git.csez.zohocorpin.com',
|
|
30
25
|
token: 'n6aqQz3RfzqRGPyMTPy8'
|
|
31
26
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
app.use(_express2.default.json());
|
|
36
|
-
app.use(_express2.default.urlencoded({
|
|
27
|
+
let app = (0, _express.default)();
|
|
28
|
+
app.use(_express.default.json());
|
|
29
|
+
app.use(_express.default.urlencoded({
|
|
37
30
|
extended: true
|
|
38
31
|
}));
|
|
39
32
|
|
|
40
33
|
function traverseJSON(parsed, file) {
|
|
41
|
-
|
|
42
|
-
parsed.forEach(
|
|
34
|
+
let parsedObj = {};
|
|
35
|
+
parsed.forEach(Block => {
|
|
43
36
|
if (Block.type === 'FunctionDeclaration' || Block.type === 'ExportDefaultDeclaration' || Block.type === 'ExportNamedDeclaration') {
|
|
44
|
-
|
|
37
|
+
let ParsedTemp;
|
|
38
|
+
|
|
45
39
|
if (Block.type === 'FunctionDeclaration') {
|
|
46
40
|
ParsedTemp = Block;
|
|
47
41
|
} else {
|
|
48
42
|
ParsedTemp = Block.declaration;
|
|
49
43
|
}
|
|
44
|
+
|
|
50
45
|
if (ParsedTemp) {
|
|
51
46
|
if (ParsedTemp.id) {
|
|
52
|
-
|
|
47
|
+
let funcname = ParsedTemp.id.name;
|
|
48
|
+
|
|
53
49
|
if (funcname !== 'mapStateToProps') {
|
|
54
50
|
if (!funcname.includes('_')) {
|
|
55
51
|
if (!Object.prototype.hasOwnProperty.call(parsedObj, 'file')) {
|
|
56
52
|
parsedObj[file] = {};
|
|
57
53
|
}
|
|
58
|
-
|
|
59
|
-
|
|
54
|
+
|
|
55
|
+
let tempArray = [];
|
|
56
|
+
|
|
57
|
+
for (let j = ParsedTemp.loc.start.line; j < ParsedTemp.loc.end.line; j++) {
|
|
60
58
|
tempArray.push(j);
|
|
61
59
|
}
|
|
60
|
+
|
|
62
61
|
parsedObj[file][funcname] = tempArray;
|
|
63
62
|
}
|
|
64
63
|
}
|
|
@@ -68,44 +67,42 @@ function traverseJSON(parsed, file) {
|
|
|
68
67
|
});
|
|
69
68
|
return parsedObj;
|
|
70
69
|
}
|
|
70
|
+
|
|
71
71
|
function getDetails(url, callback) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
(0, _utils.request)({
|
|
75
|
-
|
|
72
|
+
let changeObj = {};
|
|
73
|
+
let compObj = {};
|
|
74
|
+
(0, _utils.request)({
|
|
75
|
+
url
|
|
76
|
+
}).then(res => {
|
|
77
|
+
let body = JSON.parse(res.body);
|
|
78
|
+
|
|
76
79
|
if (body.includes('Source_Changeset')) {
|
|
77
|
-
|
|
78
|
-
changeSet = void 0;
|
|
80
|
+
let branch, changeSet;
|
|
79
81
|
body = body.split('\n');
|
|
80
|
-
body.forEach(
|
|
82
|
+
body.forEach(content => {
|
|
81
83
|
if (content.includes('Source_Changeset')) {
|
|
82
|
-
|
|
83
|
-
_content$split2 = _slicedToArray(_content$split, 2),
|
|
84
|
-
__changeSet = _content$split2[1];
|
|
85
|
-
|
|
84
|
+
let [, __changeSet] = content.split('=');
|
|
86
85
|
changeSet = __changeSet;
|
|
87
86
|
}
|
|
88
|
-
if (content.includes('SourceCoLabel')) {
|
|
89
|
-
var _content$split3 = content.split('='),
|
|
90
|
-
_content$split4 = _slicedToArray(_content$split3, 1),
|
|
91
|
-
__branch = _content$split4[0];
|
|
92
87
|
|
|
88
|
+
if (content.includes('SourceCoLabel')) {
|
|
89
|
+
let [__branch] = content.split('=');
|
|
93
90
|
branch = __branch;
|
|
94
91
|
}
|
|
95
92
|
});
|
|
96
|
-
services.Commits.diff(1143, changeSet
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
services.Commits.diff(1143, changeSet //'587efd32ce14620750a38ab74bc744fc52f2943a '
|
|
94
|
+
).then(result => {
|
|
95
|
+
let promises = [];
|
|
96
|
+
|
|
100
97
|
if (result) {
|
|
101
|
-
result.forEach(
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
result.forEach(change => {
|
|
99
|
+
let p = new Promise(resolve => {
|
|
100
|
+
let filename = change.new_path;
|
|
104
101
|
changeObj[filename] = [];
|
|
105
102
|
compObj[filename] = [];
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
diffList.forEach(
|
|
103
|
+
let diffList = change.diff.split('\n');
|
|
104
|
+
let tempObj = {};
|
|
105
|
+
diffList.forEach(diff => {
|
|
109
106
|
if (diff.indexOf('data-id') >= 0) {
|
|
110
107
|
if (diff.indexOf('//') >= 0) {
|
|
111
108
|
if (diff.substr(diff.indexOf('//') + 1).includes('data-id')) {
|
|
@@ -114,22 +111,27 @@ function getDetails(url, callback) {
|
|
|
114
111
|
tempObj.changedId = null;
|
|
115
112
|
}
|
|
116
113
|
}
|
|
114
|
+
|
|
117
115
|
if (!diff.indexOf('-')) {
|
|
118
116
|
//eslint-disable-next-line
|
|
119
117
|
tempObj.defaultId = diff.match(/(data-id=.*)/g)[0].match(/["']([^"']+?)['"]/g)[0];
|
|
120
|
-
|
|
118
|
+
let tempIndex = diffList.indexOf(diff);
|
|
119
|
+
|
|
121
120
|
if (diffList[tempIndex + 1].indexOf('data-id') === -1) {
|
|
122
121
|
tempObj.changedId = null;
|
|
123
122
|
}
|
|
124
123
|
}
|
|
124
|
+
|
|
125
125
|
if (!diff.indexOf('+')) {
|
|
126
126
|
//eslint-disable-next-line
|
|
127
127
|
tempObj.changedId = diff.match(/(data-id=.*)/g)[0].match(/["']([^"']+?)['"]/g)[0];
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
let tempIndex = diffList.indexOf(diff);
|
|
129
|
+
|
|
130
|
+
if (diffList[tempIndex - 1].indexOf('data-id') === -1) {
|
|
130
131
|
tempObj.defaultId = null;
|
|
131
132
|
}
|
|
132
133
|
}
|
|
134
|
+
|
|
133
135
|
if (Object.prototype.hasOwnProperty.call(tempObj, 'defaultId') && Object.prototype.hasOwnProperty.call(tempObj, 'changedId')) {
|
|
134
136
|
if (tempObj.defaultId !== tempObj.changedId) {
|
|
135
137
|
compObj[filename].push(tempObj);
|
|
@@ -137,34 +139,39 @@ function getDetails(url, callback) {
|
|
|
137
139
|
}
|
|
138
140
|
}
|
|
139
141
|
}
|
|
142
|
+
|
|
140
143
|
if (diff.startsWith('@')) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
+
let [, content] = diff.split('@@');
|
|
145
|
+
let tempList = content.split(' ');
|
|
146
|
+
let startingLine = parseInt(tempList[1].split(',')[0]) * -1 + 3;
|
|
147
|
+
let furtherLines = parseInt(tempList[2].split(',')[0]) + 3;
|
|
144
148
|
|
|
145
|
-
var tempList = content.split(' ');
|
|
146
|
-
var startingLine = parseInt(tempList[1].split(',')[0]) * -1 + 3;
|
|
147
|
-
var furtherLines = parseInt(tempList[2].split(',')[0]) + 3;
|
|
148
149
|
if (parseInt(tempList[1].split(',')[1]) > 6) {
|
|
149
150
|
changeObj[filename].push(startingLine);
|
|
150
151
|
}
|
|
152
|
+
|
|
151
153
|
if (parseInt(tempList[2].split(',')[1]) > 6) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
let endValue = parseInt(tempList[2].split(',')[1]) - 6;
|
|
155
|
+
|
|
156
|
+
for (let i = furtherLines; i < furtherLines + endValue; i++) {
|
|
154
157
|
changeObj[filename].push(i);
|
|
155
158
|
}
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
161
|
});
|
|
162
|
+
|
|
159
163
|
if (!filename.includes('.spec.js') && !filename.includes('.docs.js') && !filename.includes('.css') && filename.includes('.js')) {
|
|
160
164
|
try {
|
|
161
|
-
services.RepositoryFiles.show(1143, filename, branch).then(
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
services.RepositoryFiles.show(1143, filename, branch).then(res => {
|
|
166
|
+
let code = Buffer.from(res.content, 'base64').toString('ascii');
|
|
167
|
+
|
|
168
|
+
let parsed = _esprima.default.parseModule(code, {
|
|
164
169
|
jsx: true,
|
|
165
170
|
loc: true
|
|
166
171
|
});
|
|
167
|
-
|
|
172
|
+
|
|
173
|
+
let methodDetail = traverseJSON(parsed.body, filename);
|
|
174
|
+
|
|
168
175
|
if (Object.keys(methodDetail).length) {
|
|
169
176
|
resolve(methodDetail);
|
|
170
177
|
} else {
|
|
@@ -180,33 +187,33 @@ function getDetails(url, callback) {
|
|
|
180
187
|
});
|
|
181
188
|
promises.push(p);
|
|
182
189
|
});
|
|
183
|
-
Promise.all(promises).then(
|
|
184
|
-
callback(changeObj, Object.assign
|
|
190
|
+
Promise.all(promises).then(resPromise => {
|
|
191
|
+
callback(changeObj, Object.assign({}, ...resPromise), compObj);
|
|
185
192
|
});
|
|
186
193
|
}
|
|
187
194
|
});
|
|
188
195
|
}
|
|
189
|
-
}).catch(
|
|
190
|
-
return err;
|
|
191
|
-
});
|
|
196
|
+
}).catch(err => err);
|
|
192
197
|
}
|
|
193
198
|
|
|
194
|
-
app.post('/impact/build',
|
|
199
|
+
app.post('/impact/build', (req, res) => {
|
|
195
200
|
req.setTimeout(0);
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
201
|
+
let subUrl = '/logs/reactbuildinfo.txt';
|
|
202
|
+
let {
|
|
203
|
+
body: build
|
|
204
|
+
} = req;
|
|
205
|
+
let url = build.buildUrl.substr(0, build.buildUrl.lastIndexOf('/'));
|
|
200
206
|
url = url + subUrl;
|
|
201
|
-
getDetails(url,
|
|
207
|
+
getDetails(url, (body, esprimaObj, componentObj, err) => {
|
|
202
208
|
if (err) {
|
|
203
209
|
return err;
|
|
204
210
|
}
|
|
205
|
-
|
|
206
|
-
|
|
211
|
+
|
|
212
|
+
let responseObj = {};
|
|
213
|
+
Object.keys(esprimaObj).forEach(file => {
|
|
207
214
|
responseObj[file] = [];
|
|
208
|
-
body[file].forEach(
|
|
209
|
-
Object.keys(esprimaObj[file]).forEach(
|
|
215
|
+
body[file].forEach(changedLine => {
|
|
216
|
+
Object.keys(esprimaObj[file]).forEach(method => {
|
|
210
217
|
if (esprimaObj[file][method].includes(changedLine)) {
|
|
211
218
|
if (!responseObj[file].includes(method)) {
|
|
212
219
|
responseObj[file].push(method);
|
|
@@ -214,12 +221,12 @@ app.post('/impact/build', function (req, res) {
|
|
|
214
221
|
}
|
|
215
222
|
});
|
|
216
223
|
});
|
|
224
|
+
|
|
217
225
|
if (!responseObj[file].length) {
|
|
218
226
|
delete responseObj[file];
|
|
219
227
|
}
|
|
220
228
|
});
|
|
221
|
-
|
|
222
|
-
var resObj = {
|
|
229
|
+
let resObj = {
|
|
223
230
|
chnagedMethods: responseObj,
|
|
224
231
|
changedLocators: componentObj
|
|
225
232
|
};
|
|
@@ -227,11 +234,11 @@ app.post('/impact/build', function (req, res) {
|
|
|
227
234
|
res.end();
|
|
228
235
|
});
|
|
229
236
|
});
|
|
230
|
-
|
|
231
|
-
app.listen(port, function (err) {
|
|
237
|
+
app.listen(port, err => {
|
|
232
238
|
if (err) {
|
|
233
239
|
throw err;
|
|
234
240
|
}
|
|
235
|
-
|
|
241
|
+
|
|
242
|
+
(0, _utils.log)(`Listening at ${serverUrl}/impact/build/`);
|
|
236
243
|
(0, _utils.log)('payload like => {buildUrl:test_build_url}');
|
|
237
244
|
});
|