@zohodesk/client_build_tool 0.0.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/.babelrc +12 -0
- package/.lintstagedrc +3 -0
- package/.vscode/settings.json +5 -0
- package/CHANGELOG.md +9 -0
- package/ConfigurationDocumentation.md +401 -0
- package/ContributionGuide.md +2 -0
- package/NOTES-Dec12.md +12 -0
- package/README.md +91 -0
- package/README_backup.md +82 -0
- package/TODO.md +35 -0
- package/cli.js +31 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-final.json +2 -0
- package/coverage/coverage-summary.json +3 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +116 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/updateArrayWithDefault.js.html +196 -0
- package/docs/CSSCustomPluginsDocumentation.md +71 -0
- package/docs/CustomChunksConfiguration.md +0 -0
- package/docs/EFCFileTemplate.md +0 -0
- package/docs/MockApi.md +61 -0
- package/docs/NameTemplateUtility.md +93 -0
- package/docs/ServiseWorkerTemplate.md +0 -0
- package/docs/SupportedBrowserVersions.md +61 -0
- package/helpDocs/check.js +7 -0
- package/helpDocs/commmands/build.md +0 -0
- package/helpDocs/commmands/start.md +0 -0
- package/helpDocs/examples/buildWithContentHash.md +0 -0
- package/helpDocs/examples/startDevServer.md +0 -0
- package/helpDocs/examples/startWithMockAPI.md +0 -0
- package/helpDocs/node18-env.md +30 -0
- package/helpDocs/troubleshootings/NewMachineSetup.md +71 -0
- package/helpDocs/troubleshootings/README.md +9 -0
- package/helpDocs/troubleshootings/hg_install.sh +18 -0
- package/helpDocs/troubleshootings/newMachineMac.sh +86 -0
- package/helpDocs/troubleshootings/newMachineUbundu.bash +84 -0
- package/lib/allCommandsConfigs.js +25 -0
- package/lib/commands/build/commandExecutor.js +17 -0
- package/lib/commands/build/config.js +12 -0
- package/lib/commands/build/errorHander.js +10 -0
- package/lib/commands/build/optionsProcessor.js +35 -0
- package/lib/commands/buildEs/commandExecutor.js +33 -0
- package/lib/commands/buildEs/config.js +12 -0
- package/lib/commands/buildLib/commandExecutor.js +33 -0
- package/lib/commands/buildLib/config.js +12 -0
- package/lib/commands/mockserver/commandExecutor.js +43 -0
- package/lib/commands/mockserver/config.js +12 -0
- package/lib/commands/start/commandExecutor.js +12 -0
- package/lib/commands/start/config.js +12 -0
- package/lib/commands/start/deprecationHandler.js +10 -0
- package/lib/commands/start/errorHander.js +10 -0
- package/lib/commands/start/optionsProcessor.js +30 -0
- package/lib/commands/start/postProcessor.js +10 -0
- package/lib/commands/start/preProcessor.js +10 -0
- package/lib/commands/template/commandExecutor.js +28 -0
- package/lib/commands/template/config.js +12 -0
- package/lib/commands/version/commandExecutor.js +14 -0
- package/lib/commands/version/config.js +12 -0
- package/lib/commands/version/errorHander.js +10 -0
- package/lib/commandsRouter.js +74 -0
- package/lib/index.js +12 -0
- package/lib/logger.js +34 -0
- package/lib/schemas/applyValuesToSchema/index.js +34 -0
- package/lib/schemas/applyValuesToSchema/isObject.js +10 -0
- package/lib/schemas/applyValuesToSchema/isValid.js +14 -0
- package/lib/schemas/cliArgsToObject.js +39 -0
- package/lib/schemas/defaultConfigValues.js +276 -0
- package/lib/schemas/defaultConfigValuesOnly.js +161 -0
- package/lib/schemas/deprecatedOptionsHandler.js +67 -0
- package/lib/schemas/getNpmVersion.js +22 -0
- package/lib/schemas/giveDefaultValue.js +18 -0
- package/lib/schemas/npmConfigToObject.js +35 -0
- package/lib/schemas/readOptions.js +54 -0
- package/lib/schemas/readOptionsForConfigFile.js +42 -0
- package/lib/shared/babel/babelWebConfig.js +51 -0
- package/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
- package/lib/shared/babel/defaultBabelPlugins.js +26 -0
- package/lib/shared/babel/runBabelForJSFile.js +24 -0
- package/lib/shared/bundler/webpack/common/decidePublicPath.js +52 -0
- package/lib/shared/bundler/webpack/common/libAlias.js +31 -0
- package/lib/shared/bundler/webpack/common/modeUtils.js +31 -0
- package/lib/shared/bundler/webpack/common/nameTemplates.js +78 -0
- package/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
- package/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
- package/lib/shared/bundler/webpack/cssLoaders.js +16 -0
- package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +95 -0
- package/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +172 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +203 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
- package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
- package/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +54 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +24 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +17 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +44 -0
- package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
- package/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
- package/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +191 -0
- package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
- package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
- package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
- package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
- package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
- package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
- package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
- package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
- package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +110 -0
- package/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +38 -0
- package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
- package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
- package/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
- package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
- package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
- package/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
- package/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
- package/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
- package/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
- package/lib/shared/bundler/webpack/entryConfig.js +28 -0
- package/lib/shared/bundler/webpack/externals.js +13 -0
- package/lib/shared/bundler/webpack/getCSSLoaders.js +27 -0
- package/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
- package/lib/shared/bundler/webpack/getSourceMapType.js +10 -0
- package/lib/shared/bundler/webpack/jsLoaders.js +17 -0
- package/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
- package/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
- package/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
- package/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
- package/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
- package/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
- package/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
- package/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +60 -0
- package/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
- package/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
- package/lib/shared/bundler/webpack/optimizationConfig.js +43 -0
- package/lib/shared/bundler/webpack/outputConfig.js +28 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +24 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +36 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +32 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
- package/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
- package/lib/shared/bundler/webpack/plugins.js +50 -0
- package/lib/shared/bundler/webpack/resolvers.js +81 -0
- package/lib/shared/bundler/webpack/splitChunksConfig.js +113 -0
- package/lib/shared/bundler/webpack/statsConfig.js +21 -0
- package/lib/shared/bundler/webpack/utils/index.js +26 -0
- package/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
- package/lib/shared/bundler/webpack/webpackBuild.js +27 -0
- package/lib/shared/bundler/webpack/webpackConfig.js +56 -0
- package/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
- package/lib/shared/commands-utils/getCliPath.js +39 -0
- package/lib/shared/commands-utils/index.js +29 -0
- package/lib/shared/commands-utils/log.js +13 -0
- package/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
- package/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
- package/lib/shared/commands-utils/spawnSyncIO.js +38 -0
- package/lib/shared/constants.js +45 -0
- package/lib/shared/fileUtils/copyFile.js +38 -0
- package/lib/shared/fileUtils/directoryIterator.js +21 -0
- package/lib/shared/fileUtils/watchRun.js +100 -0
- package/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
- package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
- package/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
- package/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
- package/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
- package/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +343 -0
- package/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
- package/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
- package/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
- package/lib/shared/postcss/runPostCssForCssFile.js +37 -0
- package/lib/shared/server/configWebpackDevMiddleware.js +41 -0
- package/lib/shared/server/corsHandling.js +21 -0
- package/lib/shared/server/getIp.js +30 -0
- package/lib/shared/server/getServerURL.js +29 -0
- package/lib/shared/server/httpsOptions.js +46 -0
- package/lib/shared/server/initExpressApp.js +19 -0
- package/lib/shared/server/initialHTMLHandling.js +99 -0
- package/lib/shared/server/mockApiHandler.js +60 -0
- package/lib/shared/server/mockServer.js +41 -0
- package/lib/shared/server/serveContextFiles.js +27 -0
- package/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
- package/lib/shared/server/startHttpServer.js +26 -0
- package/lib/shared/server/startHttpsServer.js +38 -0
- package/lib/shared/server/unwanted/addHttp2Server.js +41 -0
- package/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
- package/lib/shared/server/unwanted/mockApiSupport.js +19 -0
- package/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
- package/lib/shared/server/urlConcat.js +32 -0
- package/lib/shared/utils/requireLocalOrGlobal.js +81 -0
- package/lib/shared/utils/utils.js +1 -0
- package/lib/shared/utils/versionPrint.js +20 -0
- package/npm-shrinkwrap.json +14102 -0
- package/package.json +54 -0
- package/polyfillForOldNodeVersion.js +10 -0
- package/result.json +1 -0
- package/templates/app/README.MD +30 -0
- package/templates/app/package.json +12 -0
- package/templates/library/README.MD +28 -0
- package/templates/library/package.json +11 -0
- package/templates/wms/index.html +43 -0
- package/unittest/index.html +37 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.httpsOptionsWithUserFriendlyError = httpsOptionsWithUserFriendlyError;
|
|
7
|
+
|
|
8
|
+
var _logger = require("../../logger");
|
|
9
|
+
|
|
10
|
+
var _requireLocalOrGlobal = require("../utils/requireLocalOrGlobal");
|
|
11
|
+
|
|
12
|
+
const defaultCertNpm = '@zohodesk-private/client_dev_cert';
|
|
13
|
+
|
|
14
|
+
function httpsOptionsWithUserFriendlyError(options) {
|
|
15
|
+
const {
|
|
16
|
+
httpsCerts
|
|
17
|
+
} = options.server;
|
|
18
|
+
|
|
19
|
+
if (typeof httpsCerts === 'string' && httpsCerts) {
|
|
20
|
+
const certificate = (0, _requireLocalOrGlobal.requireAllPossible)(httpsCerts);
|
|
21
|
+
|
|
22
|
+
if (certificate.local) {
|
|
23
|
+
(0, _logger.verboseLogger)(`Local '${httpsCerts}' package taken as HTTPS certificate`);
|
|
24
|
+
return certificate.local.httpsOptions;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (certificate.global) {
|
|
28
|
+
(0, _logger.messageLogger)(`Global '${httpsCerts}' package taken as HTTPS certificate`);
|
|
29
|
+
return certificate.global.httpsOptions;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
(0, _logger.errorLogger)(`
|
|
33
|
+
You have given 'server.httpsCerts' as "${httpsCerts}".
|
|
34
|
+
But it seems that file path have some problem;`);
|
|
35
|
+
process.exit(0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const globalCertificate = (0, _requireLocalOrGlobal.requireGlobal)(defaultCertNpm);
|
|
39
|
+
|
|
40
|
+
if (globalCertificate) {
|
|
41
|
+
(0, _logger.messageLogger)(`Global '${defaultCertNpm}' package taken as HTTPS certificate`);
|
|
42
|
+
return globalCertificate.httpsOptions;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initExpressApp = initExpressApp;
|
|
7
|
+
|
|
8
|
+
var _express = _interopRequireDefault(require("express"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function initExpressApp() {
|
|
13
|
+
const app = (0, _express.default)();
|
|
14
|
+
app.use(_express.default.json());
|
|
15
|
+
app.use(_express.default.urlencoded({
|
|
16
|
+
extended: true
|
|
17
|
+
}));
|
|
18
|
+
return app;
|
|
19
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.initialHTMLHandling = initialHTMLHandling;
|
|
7
|
+
|
|
8
|
+
var _logger = require("../../logger");
|
|
9
|
+
|
|
10
|
+
/* eslint-disable no-use-before-define */
|
|
11
|
+
function initialHTMLHandling(compiler, app, options) {
|
|
12
|
+
const {
|
|
13
|
+
enableMockReplace
|
|
14
|
+
} = options;
|
|
15
|
+
const {
|
|
16
|
+
i18nChunkSplit
|
|
17
|
+
} = options;
|
|
18
|
+
const {
|
|
19
|
+
rtlSplit
|
|
20
|
+
} = options.css.plugins;
|
|
21
|
+
const {
|
|
22
|
+
httpsUrl,
|
|
23
|
+
httpUrl,
|
|
24
|
+
contextURL
|
|
25
|
+
} = options.serverExtras;
|
|
26
|
+
let initialHTML;
|
|
27
|
+
compiler.hooks.afterCompile.tap('ReactCLI', compilation => {
|
|
28
|
+
const indexHtml = compilation.assets['index.html']; // compiler.outputFileSystem.readFileSync("build/index.html");
|
|
29
|
+
|
|
30
|
+
if (indexHtml) {
|
|
31
|
+
initialHTML = indexHtml.source();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
compiler.hooks.compile.tap('ReactCLI', () => {
|
|
35
|
+
(0, _logger.messageLogger)('Webpack re-building .......');
|
|
36
|
+
});
|
|
37
|
+
app.use(`${contextURL}/*`, (req, res) => {
|
|
38
|
+
const newHTML = modifyInitialHTML({
|
|
39
|
+
initialHTML,
|
|
40
|
+
options,
|
|
41
|
+
enableMockReplace,
|
|
42
|
+
req
|
|
43
|
+
});
|
|
44
|
+
res.send(newHTML);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
function modifyInitialHTML({
|
|
48
|
+
initialHTML,
|
|
49
|
+
enableMockReplace,
|
|
50
|
+
req
|
|
51
|
+
}) {
|
|
52
|
+
let newHTML = enableMockReplace && initialHTML ? mockReplace(initialHTML, req.query) : initialHTML;
|
|
53
|
+
|
|
54
|
+
if (req.protocol === 'http') {
|
|
55
|
+
newHTML = newHTML.replaceAll(httpsUrl, httpUrl);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return newHTML;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function mockReplace(inputHTML, query) {
|
|
62
|
+
const {
|
|
63
|
+
dir,
|
|
64
|
+
locale
|
|
65
|
+
} = query || {};
|
|
66
|
+
let newHTML = inputHTML;
|
|
67
|
+
|
|
68
|
+
if (i18nChunkSplit.chunkSplitEnable) {
|
|
69
|
+
newHTML = replaceWithRandomLocale(newHTML, i18nChunkSplit.templateLabel, locale);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (rtlSplit.enableRTLSplit) {
|
|
73
|
+
newHTML = replaceWithRandomDir(newHTML, rtlSplit.templateLabel, dir);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return newHTML;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function replaceWithRandomLocale(initialHTML, templateLabel, queryLocale) {
|
|
80
|
+
const locales = ['ar_EG', 'da_DK', 'de_DE', 'en_US', 'es_AR', 'es_ES', 'fr_FR', 'hi_IN', 'in_ID', 'it_IT', 'iw_IL', 'ja_JP', 'nl_NL', 'pl_PL', 'pt_BR', 'pt_PT', 'ro_RO', 'ru_RU', 'sv_SE', 'ta_IN', 'te_IN', 'tr_TR', 'zh_CN', 'zh_TW']; // app.use(`/desk/*`, (req, res) => {
|
|
81
|
+
// const locale = 'ta_IN';
|
|
82
|
+
|
|
83
|
+
const locale = queryLocale || locales[Math.floor(Math.random() * locales.length)];
|
|
84
|
+
(0, _logger.verboseLogger)({
|
|
85
|
+
locale
|
|
86
|
+
});
|
|
87
|
+
return initialHTML.replaceAll(templateLabel, locale);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function replaceWithRandomDir(initialHTML, templateLabel, queryDir) {
|
|
91
|
+
const dirs = ['ltr', 'rtl']; // const dir = 'rtl';
|
|
92
|
+
|
|
93
|
+
const dir = queryDir || dirs[Math.floor(Math.random() * dirs.length)];
|
|
94
|
+
(0, _logger.verboseLogger)({
|
|
95
|
+
dir
|
|
96
|
+
});
|
|
97
|
+
return initialHTML.replaceAll(templateLabel, dir);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.handleMockApi = handleMockApi;
|
|
7
|
+
exports.mockApiHandler = mockApiHandler;
|
|
8
|
+
|
|
9
|
+
var _fs = require("fs");
|
|
10
|
+
|
|
11
|
+
var _httpProxyMiddleware = require("http-proxy-middleware");
|
|
12
|
+
|
|
13
|
+
var _constants = require("../constants");
|
|
14
|
+
|
|
15
|
+
var _logger = require("../../logger");
|
|
16
|
+
|
|
17
|
+
function mockApiHandler(app, options) {
|
|
18
|
+
const {
|
|
19
|
+
enable,
|
|
20
|
+
separateSeverPort,
|
|
21
|
+
mockEntryFile,
|
|
22
|
+
mockPrefix
|
|
23
|
+
} = options.mockServer;
|
|
24
|
+
|
|
25
|
+
if (!enable) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (separateSeverPort) {
|
|
30
|
+
app.use(mockPrefix, (0, _httpProxyMiddleware.createProxyMiddleware)({
|
|
31
|
+
// eslint-disable-next-line no-useless-concat
|
|
32
|
+
target: 'ht' + `tp://localhost:${separateSeverPort}`,
|
|
33
|
+
changeOrigin: true
|
|
34
|
+
}));
|
|
35
|
+
(0, _logger.messageLogger)(`Please make sure you run mock Server separately in specified port (${separateSeverPort})`);
|
|
36
|
+
(0, _logger.messageLogger)(`If not running already you can run "cbt mock:server --mock_port=${separateSeverPort}"`);
|
|
37
|
+
} else {
|
|
38
|
+
// eslint-disable-next-line no-use-before-define
|
|
39
|
+
handleMockApi(mockEntryFile, app);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function handleMockApi(mockEntryFile, app) {
|
|
44
|
+
const entryFilePath = (0, _constants.joinWithAppPath)(mockEntryFile); // eslint-disable-next-line no-use-before-define
|
|
45
|
+
|
|
46
|
+
const mockFunc = safeRequire(entryFilePath);
|
|
47
|
+
console.log(mockFunc);
|
|
48
|
+
mockFunc?.mockApi?.(app);
|
|
49
|
+
} // function handleMockApi(params) {
|
|
50
|
+
// }
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
function safeRequire(entryFilePath) {
|
|
54
|
+
if (!(0, _fs.existsSync)(entryFilePath)) {
|
|
55
|
+
return null;
|
|
56
|
+
} // eslint-disable-next-line import/no-dynamic-require, global-require
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
return require(entryFilePath);
|
|
60
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _readOptions = require("../../schemas/readOptions");
|
|
5
|
+
|
|
6
|
+
var _corsHandling = require("./corsHandling");
|
|
7
|
+
|
|
8
|
+
var _getServerURL = require("./getServerURL");
|
|
9
|
+
|
|
10
|
+
var _initExpressApp = require("./initExpressApp");
|
|
11
|
+
|
|
12
|
+
var _mockApiHandler = require("./mockApiHandler");
|
|
13
|
+
|
|
14
|
+
var _startHttpServer = require("./startHttpServer");
|
|
15
|
+
|
|
16
|
+
function getMockServerExtras(options) {
|
|
17
|
+
const {
|
|
18
|
+
separateSeverPort
|
|
19
|
+
} = options.mockServer;
|
|
20
|
+
const httpPort = Number(separateSeverPort);
|
|
21
|
+
const httpUrl = (0, _getServerURL.getServerUrl)({
|
|
22
|
+
domain: 'localhost',
|
|
23
|
+
port: httpPort,
|
|
24
|
+
protocol: 'http'
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
httpPort,
|
|
28
|
+
httpUrl,
|
|
29
|
+
isHttps: false
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const options = (0, _readOptions.getOptions)();
|
|
34
|
+
const {
|
|
35
|
+
mockEntryFile
|
|
36
|
+
} = options.mockServer;
|
|
37
|
+
options.serverExtras = getMockServerExtras(options);
|
|
38
|
+
const app = (0, _initExpressApp.initExpressApp)();
|
|
39
|
+
(0, _corsHandling.corsHandling)(app, options);
|
|
40
|
+
(0, _startHttpServer.startHttpServer)(app, options);
|
|
41
|
+
(0, _mockApiHandler.handleMockApi)(mockEntryFile, app);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.serveContextFiles = serveContextFiles;
|
|
7
|
+
|
|
8
|
+
var _express = _interopRequireDefault(require("express"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function serveContextFiles(app, options) {
|
|
13
|
+
const {
|
|
14
|
+
context,
|
|
15
|
+
contextFolderPath
|
|
16
|
+
} = options;
|
|
17
|
+
const {
|
|
18
|
+
contextURL
|
|
19
|
+
} = options.serverExtras;
|
|
20
|
+
app.use(`${contextURL}/fonts`, _express.default.static(`${context}/fonts`));
|
|
21
|
+
|
|
22
|
+
if (contextURL) {
|
|
23
|
+
app.use(contextURL, _express.default.static(contextFolderPath));
|
|
24
|
+
} else {
|
|
25
|
+
app.use(_express.default.static(context));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.run = run;
|
|
7
|
+
|
|
8
|
+
var _corsHandling = require("./corsHandling");
|
|
9
|
+
|
|
10
|
+
var _initExpressApp = require("./initExpressApp");
|
|
11
|
+
|
|
12
|
+
var _configWebpackDevMiddleware = require("./configWebpackDevMiddleware");
|
|
13
|
+
|
|
14
|
+
var _startHttpsServer = require("./startHttpsServer");
|
|
15
|
+
|
|
16
|
+
var _initialHTMLHandling = require("./initialHTMLHandling");
|
|
17
|
+
|
|
18
|
+
var _startHttpServer = require("./startHttpServer");
|
|
19
|
+
|
|
20
|
+
var _mockApiHandler = require("./mockApiHandler");
|
|
21
|
+
|
|
22
|
+
// import { serveContextFiles } from './serveContextFiles';
|
|
23
|
+
// import { startHttpServer } from './startHttpServer';
|
|
24
|
+
function run(options) {
|
|
25
|
+
const app = (0, _initExpressApp.initExpressApp)();
|
|
26
|
+
(0, _corsHandling.corsHandling)(app, options);
|
|
27
|
+
(0, _mockApiHandler.mockApiHandler)(app, options);
|
|
28
|
+
const {
|
|
29
|
+
compiler
|
|
30
|
+
} = (0, _configWebpackDevMiddleware.configWebpackDevMiddleware)(app, options); // serveContextFiles(app, options);
|
|
31
|
+
|
|
32
|
+
(0, _startHttpsServer.startHttpsServer)(app, options);
|
|
33
|
+
(0, _startHttpServer.startHttpServer)(app, options);
|
|
34
|
+
(0, _initialHTMLHandling.initialHTMLHandling)(compiler, app, options);
|
|
35
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startHttpServer = startHttpServer;
|
|
7
|
+
|
|
8
|
+
var _logger = require("../../logger");
|
|
9
|
+
|
|
10
|
+
function startHttpServer(app, options) {
|
|
11
|
+
const {
|
|
12
|
+
serverExtras
|
|
13
|
+
} = options;
|
|
14
|
+
const {
|
|
15
|
+
httpPort,
|
|
16
|
+
httpUrl
|
|
17
|
+
} = serverExtras;
|
|
18
|
+
app.listen(httpPort, err => {
|
|
19
|
+
if (err) {
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
(0, _logger.messageLogger)(`Listening at ${httpUrl}`);
|
|
24
|
+
});
|
|
25
|
+
return app;
|
|
26
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startHttpsServer = startHttpsServer;
|
|
7
|
+
|
|
8
|
+
var _https = _interopRequireDefault(require("https"));
|
|
9
|
+
|
|
10
|
+
var _logger = require("../../logger");
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function startHttpsServer(app, options) {
|
|
15
|
+
const {
|
|
16
|
+
httpsOptions,
|
|
17
|
+
serverExtras
|
|
18
|
+
} = options;
|
|
19
|
+
const {
|
|
20
|
+
httpsPort,
|
|
21
|
+
httpsUrl
|
|
22
|
+
} = serverExtras;
|
|
23
|
+
|
|
24
|
+
if (!httpsOptions) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const httpsServer = _https.default.createServer(httpsOptions, app);
|
|
29
|
+
|
|
30
|
+
httpsServer.listen(httpsPort, err => {
|
|
31
|
+
if (err) {
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
(0, _logger.messageLogger)(`Listening at ${httpsUrl}`);
|
|
36
|
+
});
|
|
37
|
+
return httpsServer;
|
|
38
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addHttp2Server = addHttp2Server;
|
|
7
|
+
|
|
8
|
+
var _utils = require("../../../src/utils");
|
|
9
|
+
|
|
10
|
+
var _httpsOptions = require("../../../src/servers/httpsOptions");
|
|
11
|
+
|
|
12
|
+
function addHttp2Server(http2Port, host, domain, contextURL) {
|
|
13
|
+
const isCompatableHttp2 = Number(process.version.slice(1).split('.')[0]) >= 8;
|
|
14
|
+
|
|
15
|
+
if (isCompatableHttp2) {
|
|
16
|
+
const http2 = require('http2');
|
|
17
|
+
|
|
18
|
+
const http2Server = http2.createSecureServer(_httpsOptions.httpsOptions); // eslint-disable-next-line no-unused-vars
|
|
19
|
+
|
|
20
|
+
http2Server.on('stream', (stream, headers) => {
|
|
21
|
+
stream.respond({
|
|
22
|
+
'content-type': 'text/html',
|
|
23
|
+
':status': 200
|
|
24
|
+
});
|
|
25
|
+
stream.end('<h1>Hello World! <br>Working with http2</h1>');
|
|
26
|
+
});
|
|
27
|
+
http2Server.listen(http2Port, err => {
|
|
28
|
+
if (err) {
|
|
29
|
+
throw err;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
(0, _utils.log)(`Listening at ${(0, _utils.getServerURL)({
|
|
33
|
+
host,
|
|
34
|
+
domain,
|
|
35
|
+
port: http2Port
|
|
36
|
+
}, 'htt' + 'ps')}${contextURL}/`, 'http2 server');
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
(0, _utils.log)('Your node version didn\'t adopted http2 support. Kindly update that to 8 LTS or above you can engage the http2');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.configWebpackDevMiddleware = configWebpackDevMiddleware;
|
|
7
|
+
|
|
8
|
+
var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
|
|
9
|
+
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
|
|
12
|
+
function configWebpackDevMiddleware({
|
|
13
|
+
publicPath,
|
|
14
|
+
writeToDisk,
|
|
15
|
+
enableDevCache,
|
|
16
|
+
disableWatch,
|
|
17
|
+
compress,
|
|
18
|
+
compiler
|
|
19
|
+
}) {
|
|
20
|
+
let webpackServerOptions = {
|
|
21
|
+
logLevel: 'error',
|
|
22
|
+
publicPath,
|
|
23
|
+
headers: {
|
|
24
|
+
'Access-Control-Allow-Origin': '*'
|
|
25
|
+
},
|
|
26
|
+
compress
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
if (enableDevCache) {
|
|
30
|
+
webpackServerOptions.headers['Cache-Control'] = 'public, max-age=604800';
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (disableWatch) {
|
|
34
|
+
webpackServerOptions.watchOptions = {
|
|
35
|
+
ignored: /./
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (writeToDisk) {
|
|
40
|
+
webpackServerOptions.writeToDisk = true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return (0, _webpackDevMiddleware.default)(compiler, webpackServerOptions);
|
|
44
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.mockApiSupport = mockApiSupport;
|
|
7
|
+
|
|
8
|
+
var _httpProxyMiddleware = require("http-proxy-middleware");
|
|
9
|
+
|
|
10
|
+
function mockApiSupport(app, server) {
|
|
11
|
+
const {
|
|
12
|
+
mockPrefix,
|
|
13
|
+
mockPort
|
|
14
|
+
} = server;
|
|
15
|
+
app.use(mockPrefix, (0, _httpProxyMiddleware.createProxyMiddleware)({
|
|
16
|
+
target: 'ht' + `tp://localhost:${mockPort}`,
|
|
17
|
+
changeOrigin: true
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.websocketMockSetup = websocketMockSetup;
|
|
7
|
+
|
|
8
|
+
var _ws = _interopRequireDefault(require("ws"));
|
|
9
|
+
|
|
10
|
+
var _logger = require("../../../logger");
|
|
11
|
+
|
|
12
|
+
var _constants = require("../../constants");
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function websocketMockSetup(app, httpsServer) {
|
|
17
|
+
app.use('/wms/*', (req, res) => {
|
|
18
|
+
res.sendFile((0, _constants.getTemplatePath)('wms', 'index.html'));
|
|
19
|
+
});
|
|
20
|
+
const wss = new _ws.default.Server({
|
|
21
|
+
server: httpsServer
|
|
22
|
+
});
|
|
23
|
+
let wsPool = [];
|
|
24
|
+
wss.on('connection', ws => {
|
|
25
|
+
wsPool.push(ws);
|
|
26
|
+
ws.on('close', () => {
|
|
27
|
+
wsPool = wsPool.filter(ws1 => ws1 !== ws);
|
|
28
|
+
});
|
|
29
|
+
ws.on('message', message => {
|
|
30
|
+
(0, _logger.messageLogger)('received: %s', message);
|
|
31
|
+
});
|
|
32
|
+
ws.send('something');
|
|
33
|
+
});
|
|
34
|
+
app.post('/wmsmockapi', (req, res) => {
|
|
35
|
+
wsPool.forEach(ws => {
|
|
36
|
+
const {
|
|
37
|
+
body
|
|
38
|
+
} = req;
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
ws.send(JSON.stringify(body));
|
|
42
|
+
} catch (e) {
|
|
43
|
+
(0, _logger.messageLogger)(e, body);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
res.send('success');
|
|
47
|
+
});
|
|
48
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.urlConcat = urlConcat;
|
|
7
|
+
|
|
8
|
+
/* eslint-disable no-use-before-define */
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param {String} url
|
|
13
|
+
* @param {String} path
|
|
14
|
+
*/
|
|
15
|
+
function urlConcat(url, path) {
|
|
16
|
+
const slashRemovedUrl = removeLastSlash(url);
|
|
17
|
+
const slashRemovedPath = removeFrontSlash(path);
|
|
18
|
+
|
|
19
|
+
if (slashRemovedUrl === '') {
|
|
20
|
+
return path;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return `${slashRemovedUrl}/${slashRemovedPath}`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function removeLastSlash(url) {
|
|
27
|
+
return url.replace(/\/+$/, '');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function removeFrontSlash(url) {
|
|
31
|
+
return url.replace(/^\/+/, '');
|
|
32
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.globalNodeModules = void 0;
|
|
7
|
+
exports.requireAllPossible = requireAllPossible;
|
|
8
|
+
exports.requireGlobal = requireGlobal;
|
|
9
|
+
exports.requireInFolder = requireInFolder;
|
|
10
|
+
exports.requireLocal = requireLocal;
|
|
11
|
+
exports.requireLocalOrGlobal = requireLocalOrGlobal;
|
|
12
|
+
|
|
13
|
+
var _child_process = require("child_process");
|
|
14
|
+
|
|
15
|
+
var _path = _interopRequireDefault(require("path"));
|
|
16
|
+
|
|
17
|
+
var _constants = require("../constants");
|
|
18
|
+
|
|
19
|
+
var _logger = require("../../logger");
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
const globalNodeModules = _path.default.join(`${(0, _child_process.execSync)('npm config get prefix')}`.trim(), 'lib');
|
|
24
|
+
|
|
25
|
+
exports.globalNodeModules = globalNodeModules;
|
|
26
|
+
|
|
27
|
+
function requireLocalOrGlobal(moduleName, opts = {}) {
|
|
28
|
+
let {
|
|
29
|
+
global = true
|
|
30
|
+
} = opts;
|
|
31
|
+
const {
|
|
32
|
+
local = true
|
|
33
|
+
} = opts;
|
|
34
|
+
const isRelativePath = moduleName[0] === '.'; // NOTE: if starts with . then it only mean local
|
|
35
|
+
|
|
36
|
+
if (isRelativePath) {
|
|
37
|
+
global = false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const paths = [local && _constants.appPath, global && globalNodeModules].filter(Boolean); // eslint-disable-next-line no-use-before-define
|
|
41
|
+
|
|
42
|
+
return requireInFolder(moduleName, paths);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function requireInFolder(moduleName, paths) {
|
|
46
|
+
try {
|
|
47
|
+
const moduleResolvePath = require.resolve(moduleName, {
|
|
48
|
+
paths
|
|
49
|
+
}); // eslint-disable-next-line import/no-dynamic-require, global-require
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
return require(moduleResolvePath);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
// NOTE: since we return null we can check out side
|
|
55
|
+
(0, _logger.verboseLogger)('Re validate: ', error);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function requireLocal(moduleName) {
|
|
61
|
+
return requireInFolder(moduleName, [_constants.appPath]);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function requireGlobal(moduleName) {
|
|
65
|
+
const isRelativePath = moduleName[0] === '.'; // NOTE: if starts with . then it only mean local
|
|
66
|
+
|
|
67
|
+
if (isRelativePath) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return requireInFolder(moduleName, [globalNodeModules]);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function requireAllPossible(moduleName) {
|
|
75
|
+
const localP = requireLocal(moduleName);
|
|
76
|
+
const globalP = localP ? null : requireGlobal(moduleName);
|
|
77
|
+
return {
|
|
78
|
+
local: localP,
|
|
79
|
+
global: globalP
|
|
80
|
+
};
|
|
81
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.versionPrint = versionPrint;
|
|
7
|
+
|
|
8
|
+
var _child_process = require("child_process");
|
|
9
|
+
|
|
10
|
+
var _logger = require("../../logger");
|
|
11
|
+
|
|
12
|
+
var _package = _interopRequireDefault(require("../../../package.json"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
function versionPrint(logger = _logger.messageLogger) {
|
|
17
|
+
logger(`Client Build Tool Version : ${_package.default.version}`);
|
|
18
|
+
logger(`Node Js Version : ${process.version}`);
|
|
19
|
+
logger(`Npm Version : ${(0, _child_process.execSync)('npm --version')}`);
|
|
20
|
+
}
|