@tramvai/cli 2.111.1 → 2.112.0

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.
@@ -13,10 +13,10 @@ const detectPortSync_1 = require("../../../../utils/detectPortSync");
13
13
  exports.sharedProviders = [
14
14
  (0, dippy_1.provide)({
15
15
  provide: tokens_2.CONFIG_MANAGER_TOKEN,
16
- useFactory: ({ configEntry, parameters }) => {
17
- var _a, _b;
18
- return (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)((_a = parameters.port) !== null && _a !== void 0 ? _a : configManager_1.DEFAULT_PORT), staticPort: (0, detectPortSync_1.detectPortSync)((_b = parameters.staticPort) !== null && _b !== void 0 ? _b : configManager_1.DEFAULT_STATIC_PORT) }));
19
- },
16
+ useFactory: ({ configEntry, parameters }) => (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)({ request: parameters.port, fallback: configManager_1.DEFAULT_PORT }), staticPort: (0, detectPortSync_1.detectPortSync)({
17
+ request: parameters.staticPort,
18
+ fallback: configManager_1.DEFAULT_STATIC_PORT,
19
+ }) })),
20
20
  deps: {
21
21
  configEntry: tokens_2.CONFIG_ENTRY_TOKEN,
22
22
  parameters: tokens_2.COMMAND_PARAMETERS_TOKEN,
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/application/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AAEzC,yCAAuE;AACvE,kDAK+B;AAC/B,uDAAoD;AAEpD,oEAI0C;AAC1C,2DAAwD;AACxD,2DAAwD;AACxD,qEAAkE;AAErD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;;YAC1C,OAAA,IAAA,mCAAmB,EAAC,WAAqC,kCACpD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,IAAI,mCAAI,4BAAY,CAAC,EACrD,UAAU,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,UAAU,mCAAI,mCAAmB,CAAC,IACxE,CAAA;SAAA;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;oBAEjD,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC3F,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;CACM,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/application/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AAEzC,yCAAuE;AACvE,kDAK+B;AAC/B,uDAAoD;AAEpD,oEAI0C;AAC1C,2DAAwD;AACxD,2DAAwD;AACxD,qEAAkE;AAErD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1C,IAAA,mCAAmB,EAAC,WAAqC,kCACpD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,4BAAY,EAAE,CAAC,EAC1E,UAAU,EAAE,IAAA,+BAAc,EAAC;gBACzB,OAAO,EAAE,UAAU,CAAC,UAAU;gBAC9B,QAAQ,EAAE,mCAAmB;aAC9B,CAAC,IACF;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;oBAEjD,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;gBAC3F,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;CACM,CAAC"}
@@ -14,10 +14,7 @@ const detectPortSync_1 = require("../../../../utils/detectPortSync");
14
14
  exports.sharedProviders = [
15
15
  (0, dippy_1.provide)({
16
16
  provide: tokens_2.CONFIG_MANAGER_TOKEN,
17
- useFactory: ({ configEntry, parameters }) => {
18
- var _a;
19
- return (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)((_a = parameters.port) !== null && _a !== void 0 ? _a : configManager_1.DEFAULT_STATIC_MODULE_PORT) }));
20
- },
17
+ useFactory: ({ configEntry, parameters }) => (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)({ request: parameters.port, fallback: configManager_1.DEFAULT_STATIC_MODULE_PORT }) })),
21
18
  deps: {
22
19
  configEntry: tokens_2.CONFIG_ENTRY_TOKEN,
23
20
  parameters: tokens_2.COMMAND_PARAMETERS_TOKEN,
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/child-app/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AACzC,yCAAuE;AACvE,kDAK+B;AAE/B,+EAA0F;AAC1F,uDAAoD;AACpD,2DAAwD;AACxD,2DAAwD;AACxD,oEAAmG;AACnG,qEAAkE;AAErD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;;YAC1C,OAAA,IAAA,mCAAmB,EAAC,WAAkC,kCACjD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,IAAI,mCAAI,0CAA0B,CAAC,IACnE,CAAA;SAAA;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;oBAErC,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,MAAM,IAAA,uCAAyB,EAAC,aAAa,CAAC,CAAC;YACjD,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/child-app/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AACzC,yCAAuE;AACvE,kDAK+B;AAE/B,+EAA0F;AAC1F,uDAAoD;AACpD,2DAAwD;AACxD,2DAAwD;AACxD,oEAAmG;AACnG,qEAAkE;AAErD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1C,IAAA,mCAAmB,EAAC,WAAkC,kCACjD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,0CAA0B,EAAE,CAAC,IACxF;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;oBAErC,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,MAAM,IAAA,uCAAyB,EAAC,aAAa,CAAC,CAAC;YACjD,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
@@ -14,10 +14,7 @@ const detectPortSync_1 = require("../../../../utils/detectPortSync");
14
14
  exports.sharedProviders = [
15
15
  (0, dippy_1.provide)({
16
16
  provide: tokens_2.CONFIG_MANAGER_TOKEN,
17
- useFactory: ({ configEntry, parameters }) => {
18
- var _a;
19
- return (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)((_a = parameters.port) !== null && _a !== void 0 ? _a : configManager_1.DEFAULT_STATIC_MODULE_PORT) }));
20
- },
17
+ useFactory: ({ configEntry, parameters }) => (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'development', port: (0, detectPortSync_1.detectPortSync)({ request: parameters.port, fallback: configManager_1.DEFAULT_STATIC_MODULE_PORT }) })),
21
18
  deps: {
22
19
  configEntry: tokens_2.CONFIG_ENTRY_TOKEN,
23
20
  parameters: tokens_2.COMMAND_PARAMETERS_TOKEN,
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/module/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AACzC,yCAAuE;AACvE,kDAK+B;AAC/B,oEAAmG;AACnG,+EAA0F;AAC1F,uDAAoD;AACpD,2DAAwD;AACxD,2DAAwD;AACxD,qEAAkE;AAGrD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;;YAC1C,OAAA,IAAA,mCAAmB,EAAC,WAAgC,kCAC/C,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,IAAI,mCAAI,0CAA0B,CAAC,IACnE,CAAA;SAAA;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;oBAErC,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,IAAA,uCAAyB,EAAC,aAAa,CAAC,CAAC;YAC3C,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/api/start/providers/module/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAyC;AACzC,yCAAuE;AACvE,kDAK+B;AAC/B,oEAAmG;AACnG,+EAA0F;AAC1F,uDAAoD;AACpD,2DAAwD;AACxD,2DAAwD;AACxD,qEAAkE;AAGrD,QAAA,eAAe,GAAwB;IAClD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1C,IAAA,mCAAmB,EAAC,WAAgC,kCAC/C,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,IAAA,+BAAc,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,0CAA0B,EAAE,CAAC,IACxF;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,UAAU,EAAE,2BAAY;KACzB,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;YAC9C,OAAO,SAAe,kBAAkB;;oBACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;oBAErC,MAAM,IAAA,2BAAY,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,CAAC;aAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;YACjC,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;YAC/B,OAAO,GAAG,EAAE;gBACV,OAAO,IAAA,uBAAU,EAAC,YAAY,CAAC,CAAC;YAClC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,IAAA,uCAAyB,EAAC,aAAa,CAAC,CAAC;YAC3C,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
@@ -14,10 +14,10 @@ const configManager_1 = require("../../../config/configManager");
14
14
  exports.applicationsProviders = [
15
15
  (0, dippy_1.provide)({
16
16
  provide: tokens_1.CONFIG_MANAGER_TOKEN,
17
- useFactory: ({ configEntry, parameters }) => {
18
- var _a, _b;
19
- return (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'production', buildType: 'client', port: (0, detectPortSync_1.detectPortSync)((_a = parameters.port) !== null && _a !== void 0 ? _a : configManager_1.DEFAULT_PORT), staticPort: (0, detectPortSync_1.detectPortSync)((_b = parameters.staticPort) !== null && _b !== void 0 ? _b : configManager_1.DEFAULT_STATIC_PORT) }));
20
- },
17
+ useFactory: ({ configEntry, parameters }) => (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'production', buildType: 'client', port: (0, detectPortSync_1.detectPortSync)({ request: parameters.port, fallback: configManager_1.DEFAULT_PORT }), staticPort: (0, detectPortSync_1.detectPortSync)({
18
+ request: parameters.staticPort,
19
+ fallback: configManager_1.DEFAULT_STATIC_PORT,
20
+ }) })),
21
21
  deps: {
22
22
  configEntry: tokens_1.CONFIG_ENTRY_TOKEN,
23
23
  parameters: tokens_1.COMMAND_PARAMETERS_TOKEN,
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../src/api/start-prod/providers/application.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,0CAAyC;AACzC,iDAAqC;AACrC,+CAI4B;AAG5B,sCAAsE;AACtE,yDAAuD;AACvD,kEAA+D;AAC/D,4DAAyD;AAEzD,iEAIuC;AAG1B,QAAA,qBAAqB,GAAwB;IACxD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAoD,EAAE,EAAE;;YAC5F,OAAA,IAAA,mCAAmB,EAAC,WAAW,kCAC1B,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,QAAQ,EACnB,IAAI,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,IAAI,mCAAI,4BAAY,CAAC,EACrD,UAAU,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,UAAU,mCAAI,mCAAmB,CAAC,IACxE,CAAA;SAAA;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE;YAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;YAC3B,MAAM,mBAAmB,GACvB,aACD,CAAC,YAAY,CAAC;gBACb,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;YAC1D,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC;YAE3C,OAAO,IAAA,oBAAI,EAAC,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE;gBACjC,GAAG,EAAE,IAAI;gBACT,GAAG,4EACE,IAAA,yBAAW,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,GACjE,IAAA,yBAAW,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GACrD,GAAG,GACH,OAAO,CAAC,GAAG,KACd,QAAQ,EAAE,YAAY,EACtB,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,GAAG,IAAI,EAAE,EACf,WAAW,EAAE,GAAG,IAAI,EAAE,EACtB,aAAa,EAAE,YAAY,GAC5B;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;YACnC,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;wBAC9B,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;oBAEH,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../src/api/start-prod/providers/application.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,0CAAyC;AACzC,iDAAqC;AACrC,+CAI4B;AAG5B,sCAAsE;AACtE,yDAAuD;AACvD,kEAA+D;AAC/D,4DAAyD;AAEzD,iEAIuC;AAG1B,QAAA,qBAAqB,GAAwB;IACxD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAoD,EAAE,EAAE,CAC5F,IAAA,mCAAmB,EAAC,WAAW,kCAC1B,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,QAAQ,EACnB,IAAI,EAAE,IAAA,+BAAc,EAAC,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,4BAAY,EAAE,CAAC,EAC1E,UAAU,EAAE,IAAA,+BAAc,EAAC;gBACzB,OAAO,EAAE,UAAU,CAAC,UAAU;gBAC9B,QAAQ,EAAE,mCAAmB;aAC9B,CAAC,IACF;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,EAAE;YAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;YAC3B,MAAM,mBAAmB,GACvB,aACD,CAAC,YAAY,CAAC;gBACb,SAAS,EAAE,QAAQ;aACpB,CAAC,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;YAC1D,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,CAAC;YAE3C,OAAO,IAAA,oBAAI,EAAC,cAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE;gBAC/C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE;gBACjC,GAAG,EAAE,IAAI;gBACT,GAAG,4EACE,IAAA,yBAAW,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAE,IAAI,CAAC,GACjE,IAAA,yBAAW,EAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GACrD,GAAG,GACH,OAAO,CAAC,GAAG,KACd,QAAQ,EAAE,YAAY,EACtB,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,GAAG,IAAI,EAAE,EACf,WAAW,EAAE,GAAG,IAAI,EAAE,EACtB,aAAa,EAAE,YAAY,GAC5B;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;YACnC,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,GAAS,EAAE;gBAChB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;wBAC9B,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;oBAEH,aAAa,CAAC,IAAI,EAAE,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC,CAAA,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;CACM,CAAC"}
@@ -8,10 +8,10 @@ const detectPortSync_1 = require("../../../utils/detectPortSync");
8
8
  exports.childAppProviders = [
9
9
  (0, dippy_1.provide)({
10
10
  provide: tokens_1.CONFIG_MANAGER_TOKEN,
11
- useFactory: ({ configEntry, parameters }) => {
12
- var _a;
13
- return (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'production', staticPort: (0, detectPortSync_1.detectPortSync)((_a = parameters.staticPort) !== null && _a !== void 0 ? _a : configManager_1.DEFAULT_STATIC_MODULE_PORT), buildType: 'client' }));
14
- },
11
+ useFactory: ({ configEntry, parameters }) => (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({}, parameters), { appEnv: parameters.env, env: 'production', buildType: 'client', staticPort: (0, detectPortSync_1.detectPortSync)({
12
+ request: parameters.staticPort,
13
+ fallback: configManager_1.DEFAULT_STATIC_MODULE_PORT,
14
+ }) })),
15
15
  deps: {
16
16
  configEntry: tokens_1.CONFIG_ENTRY_TOKEN,
17
17
  parameters: tokens_1.COMMAND_PARAMETERS_TOKEN,
@@ -1 +1 @@
1
- {"version":3,"file":"child-app.js","sourceRoot":"","sources":["../../../../src/api/start-prod/providers/child-app.ts"],"names":[],"mappings":";;;AACA,0CAAyC;AACzC,+CAI4B;AAC5B,iEAAgG;AAEhG,kEAA+D;AAElD,QAAA,iBAAiB,GAAwB;IACpD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE;;YAC1C,OAAA,IAAA,mCAAmB,EAAC,WAAkC,kCACjD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,YAAY,EACjB,UAAU,EAAE,IAAA,+BAAc,EAAC,MAAA,UAAU,CAAC,UAAU,mCAAI,0CAA0B,CAAC,EAC/E,SAAS,EAAE,QAAQ,IACnB,CAAA;SAAA;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;CACM,CAAC"}
1
+ {"version":3,"file":"child-app.js","sourceRoot":"","sources":["../../../../src/api/start-prod/providers/child-app.ts"],"names":[],"mappings":";;;AACA,0CAAyC;AACzC,+CAI4B;AAC5B,iEAAgG;AAEhG,kEAA+D;AAElD,QAAA,iBAAiB,GAAwB;IACpD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6BAAoB;QAC7B,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,EAAE,CAC1C,IAAA,mCAAmB,EAAC,WAAkC,kCACjD,UAAU,KACb,MAAM,EAAE,UAAU,CAAC,GAAG,EACtB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,QAAQ,EACnB,UAAU,EAAE,IAAA,+BAAc,EAAC;gBACzB,OAAO,EAAE,UAAU,CAAC,UAAU;gBAC9B,QAAQ,EAAE,0CAA0B;aACrC,CAAC,IACF;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,2BAAkB;YAC/B,UAAU,EAAE,iCAAwB;SACrC;KACF,CAAC;CACM,CAAC"}
@@ -29,8 +29,8 @@ declare const _default: (options: Options) => {
29
29
  })[] | (string | {
30
30
  skipEnvCheck: boolean;
31
31
  })[])[];
32
- cwd?: string;
33
32
  presets: import("@babel/core").PluginItem[];
33
+ cwd?: string;
34
34
  compact?: boolean;
35
35
  sourceType: "unambiguous";
36
36
  };
@@ -1 +1,13 @@
1
- export declare const detectPortSync: (port: number) => number;
1
+ interface Payload {
2
+ request?: number;
3
+ fallback: number;
4
+ }
5
+ /**
6
+ * Try to detect port synchronously considering the fact, that if user requests
7
+ * a port explicitly, we should not try to detect a free one.
8
+ *
9
+ * Also, handle zero port (it means any random port) as the edge case,
10
+ * because we must pass a final number to the config manager.
11
+ */
12
+ export declare const detectPortSync: ({ request, fallback }: Payload) => number;
13
+ export {};
@@ -2,8 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.detectPortSync = void 0;
4
4
  const child_process_1 = require("child_process");
5
- const detectPortSync = (port) => {
6
- const commandResult = (0, child_process_1.execSync)(`npx detect-port ${port}`);
5
+ /**
6
+ * Try to detect port synchronously considering the fact, that if user requests
7
+ * a port explicitly, we should not try to detect a free one.
8
+ *
9
+ * Also, handle zero port (it means any random port) as the edge case,
10
+ * because we must pass a final number to the config manager.
11
+ */
12
+ const detectPortSync = ({ request, fallback }) => {
13
+ if (request !== undefined && request !== 0) {
14
+ return request;
15
+ }
16
+ const commandResult = (0, child_process_1.execSync)(`npx detect-port ${request !== null && request !== void 0 ? request : fallback}`);
7
17
  return parseInt(commandResult.toString('utf-8'), 10);
8
18
  };
9
19
  exports.detectPortSync = detectPortSync;
@@ -1 +1 @@
1
- {"version":3,"file":"detectPortSync.js","sourceRoot":"","sources":["../../src/utils/detectPortSync.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAElC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAU,EAAE;IACrD,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;IAE1D,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AAJW,QAAA,cAAc,kBAIzB"}
1
+ {"version":3,"file":"detectPortSync.js","sourceRoot":"","sources":["../../src/utils/detectPortSync.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAOzC;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAW,EAAU,EAAE;IACvE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,EAAE;QAC1C,OAAO,OAAO,CAAC;KAChB;IAED,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,QAAQ,EAAE,CAAC,CAAC;IAEzE,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/cli",
3
- "version": "2.111.1",
3
+ "version": "2.112.0",
4
4
  "description": "Cli инструмент для сборки и запуска приложений",
5
5
  "files": [
6
6
  "src",
@@ -71,7 +71,7 @@
71
71
  "@tinkoff/utils": "^2.1.3",
72
72
  "@tinkoff/webpack-dedupe-plugin": "1.0.5",
73
73
  "@tramvai/build": "3.1.3",
74
- "@tramvai/react": "2.111.1",
74
+ "@tramvai/react": "2.112.0",
75
75
  "@tramvai/tools-check-versions": "0.4.14",
76
76
  "@tramvai/tools-migrate": "0.6.18",
77
77
  "ajv": "^6.12.6",
@@ -10,6 +10,7 @@ import { createServer } from '../utils/createServer';
10
10
  import { listenServer } from '../utils/listenServer';
11
11
  import { getListeningPort } from '../utils/getListeningPort';
12
12
  import { stopServer } from '../utils/stopServer';
13
+ import { DEFAULT_PORT, DEFAULT_STATIC_PORT } from '../../../config/configManager';
13
14
 
14
15
  const FIXTURES_DIR = resolve(__dirname, '__fixtures__');
15
16
 
@@ -261,7 +262,7 @@ describe('@tramvai/cli start command', () => {
261
262
  return close();
262
263
  });
263
264
 
264
- it('should start the app on the next available port, if default port is busy', async () => {
265
+ it('should NOT try to launch app on the next available port if it was provided via config', async () => {
265
266
  const testServerStub = createServer();
266
267
  const testStaticServerStub = createServer();
267
268
 
@@ -270,12 +271,30 @@ describe('@tramvai/cli start command', () => {
270
271
  await listenServer(testServerStub, '0.0.0.0', getPort() + 50);
271
272
  await listenServer(testStaticServerStub, '0.0.0.0', getPort());
272
273
 
274
+ await expect(
275
+ start({
276
+ rootDir: FIXTURES_DIR,
277
+ target: 'app',
278
+ resolveSymlinks: false,
279
+ port: getListeningPort(testServerStub),
280
+ staticPort: getListeningPort(testStaticServerStub),
281
+ })
282
+ ).rejects.toThrow('listen EADDRINUSE: address already in use');
283
+
284
+ return Promise.all([stopServer(testServerStub), stopServer(testStaticServerStub)]);
285
+ });
286
+
287
+ it('should try to launch app on the next available port if it was NOT provided via config', async () => {
288
+ const testServerStub = createServer();
289
+ const testStaticServerStub = createServer();
290
+
291
+ await listenServer(testServerStub, '0.0.0.0', DEFAULT_PORT);
292
+ await listenServer(testStaticServerStub, '0.0.0.0', DEFAULT_STATIC_PORT);
293
+
273
294
  const { server, staticServer, close } = await start({
274
295
  rootDir: FIXTURES_DIR,
275
296
  target: 'app',
276
297
  resolveSymlinks: false,
277
- port: getListeningPort(testServerStub),
278
- staticPort: getListeningPort(testStaticServerStub),
279
298
  });
280
299
 
281
300
  const testServer = supertestByPort(getListeningPort(server));
@@ -27,8 +27,11 @@ export const sharedProviders: readonly Provider[] = [
27
27
  ...parameters,
28
28
  appEnv: parameters.env,
29
29
  env: 'development',
30
- port: detectPortSync(parameters.port ?? DEFAULT_PORT),
31
- staticPort: detectPortSync(parameters.staticPort ?? DEFAULT_STATIC_PORT),
30
+ port: detectPortSync({ request: parameters.port, fallback: DEFAULT_PORT }),
31
+ staticPort: detectPortSync({
32
+ request: parameters.staticPort,
33
+ fallback: DEFAULT_STATIC_PORT,
34
+ }),
32
35
  }),
33
36
  deps: {
34
37
  configEntry: CONFIG_ENTRY_TOKEN,
@@ -23,7 +23,7 @@ export const sharedProviders: readonly Provider[] = [
23
23
  ...parameters,
24
24
  appEnv: parameters.env,
25
25
  env: 'development',
26
- port: detectPortSync(parameters.port ?? DEFAULT_STATIC_MODULE_PORT),
26
+ port: detectPortSync({ request: parameters.port, fallback: DEFAULT_STATIC_MODULE_PORT }),
27
27
  }),
28
28
  deps: {
29
29
  configEntry: CONFIG_ENTRY_TOKEN,
@@ -23,7 +23,7 @@ export const sharedProviders: readonly Provider[] = [
23
23
  ...parameters,
24
24
  appEnv: parameters.env,
25
25
  env: 'development',
26
- port: detectPortSync(parameters.port ?? DEFAULT_STATIC_MODULE_PORT),
26
+ port: detectPortSync({ request: parameters.port, fallback: DEFAULT_STATIC_MODULE_PORT }),
27
27
  }),
28
28
  deps: {
29
29
  configEntry: CONFIG_ENTRY_TOKEN,
@@ -30,8 +30,11 @@ export const applicationsProviders: readonly Provider[] = [
30
30
  appEnv: parameters.env,
31
31
  env: 'production',
32
32
  buildType: 'client',
33
- port: detectPortSync(parameters.port ?? DEFAULT_PORT),
34
- staticPort: detectPortSync(parameters.staticPort ?? DEFAULT_STATIC_PORT),
33
+ port: detectPortSync({ request: parameters.port, fallback: DEFAULT_PORT }),
34
+ staticPort: detectPortSync({
35
+ request: parameters.staticPort,
36
+ fallback: DEFAULT_STATIC_PORT,
37
+ }),
35
38
  }),
36
39
  deps: {
37
40
  configEntry: CONFIG_ENTRY_TOKEN,
@@ -17,8 +17,11 @@ export const childAppProviders: readonly Provider[] = [
17
17
  ...parameters,
18
18
  appEnv: parameters.env,
19
19
  env: 'production',
20
- staticPort: detectPortSync(parameters.staticPort ?? DEFAULT_STATIC_MODULE_PORT),
21
20
  buildType: 'client',
21
+ staticPort: detectPortSync({
22
+ request: parameters.staticPort,
23
+ fallback: DEFAULT_STATIC_MODULE_PORT,
24
+ }),
22
25
  }),
23
26
  deps: {
24
27
  configEntry: CONFIG_ENTRY_TOKEN,
@@ -1,7 +1,23 @@
1
1
  import { execSync } from 'child_process';
2
2
 
3
- export const detectPortSync = (port: number): number => {
4
- const commandResult = execSync(`npx detect-port ${port}`);
3
+ interface Payload {
4
+ request?: number;
5
+ fallback: number;
6
+ }
7
+
8
+ /**
9
+ * Try to detect port synchronously considering the fact, that if user requests
10
+ * a port explicitly, we should not try to detect a free one.
11
+ *
12
+ * Also, handle zero port (it means any random port) as the edge case,
13
+ * because we must pass a final number to the config manager.
14
+ */
15
+ export const detectPortSync = ({ request, fallback }: Payload): number => {
16
+ if (request !== undefined && request !== 0) {
17
+ return request;
18
+ }
19
+
20
+ const commandResult = execSync(`npx detect-port ${request ?? fallback}`);
5
21
 
6
22
  return parseInt(commandResult.toString('utf-8'), 10);
7
23
  };