@tramvai/module-environment 4.8.4 → 4.9.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.
- package/lib/server/ClientEnvironmentRepository.d.ts +13 -0
- package/lib/server/ClientEnvironmentRepository.es.js +31 -0
- package/lib/server/ClientEnvironmentRepository.js +35 -0
- package/lib/server/EnvironmentManagerServer.d.ts +7 -1
- package/lib/server/EnvironmentManagerServer.es.js +14 -8
- package/lib/server/EnvironmentManagerServer.js +14 -8
- package/lib/server.es.js +20 -5
- package/lib/server.js +19 -4
- package/package.json +6 -6
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EnvParameter, EnvironmentManager, ClientEnvironmentRepository as Interface } from '@tramvai/tokens-common';
|
|
2
|
+
export declare class ClientEnvironmentRepository implements Interface {
|
|
3
|
+
private envManager;
|
|
4
|
+
private tokens;
|
|
5
|
+
protected parameters: Record<string, string>;
|
|
6
|
+
constructor(envManager: EnvironmentManager, tokens: EnvParameter[]);
|
|
7
|
+
get(name: string): string | undefined;
|
|
8
|
+
set(name: string, value: string): void;
|
|
9
|
+
getAll(): Record<string, string>;
|
|
10
|
+
update(result: Record<string, string>): void;
|
|
11
|
+
private processing;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ClientEnvironmentRepository.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
class ClientEnvironmentRepository {
|
|
2
|
+
constructor(envManager, tokens) {
|
|
3
|
+
this.envManager = envManager;
|
|
4
|
+
this.tokens = tokens;
|
|
5
|
+
this.parameters = {};
|
|
6
|
+
this.processing();
|
|
7
|
+
}
|
|
8
|
+
get(name) {
|
|
9
|
+
return this.parameters[name];
|
|
10
|
+
}
|
|
11
|
+
set(name, value) {
|
|
12
|
+
this.parameters[name] = value;
|
|
13
|
+
}
|
|
14
|
+
getAll() {
|
|
15
|
+
return this.parameters;
|
|
16
|
+
}
|
|
17
|
+
update(result) {
|
|
18
|
+
this.parameters = Object.assign(this.parameters, result);
|
|
19
|
+
}
|
|
20
|
+
processing() {
|
|
21
|
+
const envParameters = this.envManager.getAll();
|
|
22
|
+
this.tokens.forEach(({ key, dehydrate }) => {
|
|
23
|
+
const value = envParameters[key];
|
|
24
|
+
if (dehydrate !== false) {
|
|
25
|
+
this.set(key, value);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export { ClientEnvironmentRepository };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
class ClientEnvironmentRepository {
|
|
6
|
+
constructor(envManager, tokens) {
|
|
7
|
+
this.envManager = envManager;
|
|
8
|
+
this.tokens = tokens;
|
|
9
|
+
this.parameters = {};
|
|
10
|
+
this.processing();
|
|
11
|
+
}
|
|
12
|
+
get(name) {
|
|
13
|
+
return this.parameters[name];
|
|
14
|
+
}
|
|
15
|
+
set(name, value) {
|
|
16
|
+
this.parameters[name] = value;
|
|
17
|
+
}
|
|
18
|
+
getAll() {
|
|
19
|
+
return this.parameters;
|
|
20
|
+
}
|
|
21
|
+
update(result) {
|
|
22
|
+
this.parameters = Object.assign(this.parameters, result);
|
|
23
|
+
}
|
|
24
|
+
processing() {
|
|
25
|
+
const envParameters = this.envManager.getAll();
|
|
26
|
+
this.tokens.forEach(({ key, dehydrate }) => {
|
|
27
|
+
const value = envParameters[key];
|
|
28
|
+
if (dehydrate !== false) {
|
|
29
|
+
this.set(key, value);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
exports.ClientEnvironmentRepository = ClientEnvironmentRepository;
|
|
@@ -2,9 +2,15 @@ import type { EnvParameter } from '@tramvai/tokens-common';
|
|
|
2
2
|
import { EnvironmentManager } from '../shared/EnvironmentManager';
|
|
3
3
|
export declare class EnvironmentManagerServer extends EnvironmentManager {
|
|
4
4
|
private tokens;
|
|
5
|
-
private
|
|
5
|
+
private clientEnvRepository;
|
|
6
6
|
constructor(tokens: EnvParameter[]);
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
9
|
+
*/
|
|
7
10
|
clientUsed(): Record<string, string>;
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
13
|
+
*/
|
|
8
14
|
updateClientUsed(result: Record<string, string>): void;
|
|
9
15
|
private getEnvInFiles;
|
|
10
16
|
private getEnvInApp;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import noop from '@tinkoff/utils/function/noop';
|
|
2
2
|
import { EnvironmentManager } from '../shared/EnvironmentManager.es.js';
|
|
3
|
+
import { ClientEnvironmentRepository } from './ClientEnvironmentRepository.es.js';
|
|
3
4
|
|
|
4
5
|
const readFileWithEnv = (path) => {
|
|
5
6
|
try {
|
|
@@ -16,14 +17,21 @@ class EnvironmentManagerServer extends EnvironmentManager {
|
|
|
16
17
|
constructor(tokens) {
|
|
17
18
|
super();
|
|
18
19
|
this.tokens = tokens;
|
|
19
|
-
this.clientUsedList = {};
|
|
20
20
|
this.processing();
|
|
21
|
+
// for backward compatibility
|
|
22
|
+
this.clientEnvRepository = new ClientEnvironmentRepository(this, this.tokens);
|
|
21
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
26
|
+
*/
|
|
22
27
|
clientUsed() {
|
|
23
|
-
return this.
|
|
28
|
+
return this.clientEnvRepository.getAll();
|
|
24
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
32
|
+
*/
|
|
25
33
|
updateClientUsed(result) {
|
|
26
|
-
this.
|
|
34
|
+
this.clientEnvRepository.update(result);
|
|
27
35
|
}
|
|
28
36
|
// eslint-disable-next-line class-methods-use-this
|
|
29
37
|
getEnvInFiles() {
|
|
@@ -53,7 +61,7 @@ class EnvironmentManagerServer extends EnvironmentManager {
|
|
|
53
61
|
processing() {
|
|
54
62
|
const result = {};
|
|
55
63
|
const envParameters = this.collectionEnv();
|
|
56
|
-
this.tokens.forEach(({ key, validator = noop, optional
|
|
64
|
+
this.tokens.forEach(({ key, validator = noop, optional }) => {
|
|
57
65
|
const value = envParameters[key];
|
|
58
66
|
if (typeof value === 'undefined' && !optional) {
|
|
59
67
|
throw new Error(`Env parameter ${key} not found. You need add a this env parameter. If you have questions read the docs`);
|
|
@@ -64,11 +72,9 @@ class EnvironmentManagerServer extends EnvironmentManager {
|
|
|
64
72
|
throw new Error(`Env parameter ${key} with value ${value} not valid, message: ${validation}`);
|
|
65
73
|
}
|
|
66
74
|
result[key] = value;
|
|
67
|
-
if (dehydrate !== false) {
|
|
68
|
-
this.clientUsedList[key] = value;
|
|
69
|
-
}
|
|
70
75
|
});
|
|
71
|
-
|
|
76
|
+
// sync process.env
|
|
77
|
+
process.env = envParameters;
|
|
72
78
|
this.update(result);
|
|
73
79
|
}
|
|
74
80
|
}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var noop = require('@tinkoff/utils/function/noop');
|
|
6
6
|
var EnvironmentManager = require('../shared/EnvironmentManager.js');
|
|
7
|
+
var ClientEnvironmentRepository = require('./ClientEnvironmentRepository.js');
|
|
7
8
|
|
|
8
9
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
10
|
|
|
@@ -24,14 +25,21 @@ class EnvironmentManagerServer extends EnvironmentManager.EnvironmentManager {
|
|
|
24
25
|
constructor(tokens) {
|
|
25
26
|
super();
|
|
26
27
|
this.tokens = tokens;
|
|
27
|
-
this.clientUsedList = {};
|
|
28
28
|
this.processing();
|
|
29
|
+
// for backward compatibility
|
|
30
|
+
this.clientEnvRepository = new ClientEnvironmentRepository.ClientEnvironmentRepository(this, this.tokens);
|
|
29
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
34
|
+
*/
|
|
30
35
|
clientUsed() {
|
|
31
|
-
return this.
|
|
36
|
+
return this.clientEnvRepository.getAll();
|
|
32
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated use CLIENT_ENV_MANAGER_TOKEN
|
|
40
|
+
*/
|
|
33
41
|
updateClientUsed(result) {
|
|
34
|
-
this.
|
|
42
|
+
this.clientEnvRepository.update(result);
|
|
35
43
|
}
|
|
36
44
|
// eslint-disable-next-line class-methods-use-this
|
|
37
45
|
getEnvInFiles() {
|
|
@@ -61,7 +69,7 @@ class EnvironmentManagerServer extends EnvironmentManager.EnvironmentManager {
|
|
|
61
69
|
processing() {
|
|
62
70
|
const result = {};
|
|
63
71
|
const envParameters = this.collectionEnv();
|
|
64
|
-
this.tokens.forEach(({ key, validator = noop__default["default"], optional
|
|
72
|
+
this.tokens.forEach(({ key, validator = noop__default["default"], optional }) => {
|
|
65
73
|
const value = envParameters[key];
|
|
66
74
|
if (typeof value === 'undefined' && !optional) {
|
|
67
75
|
throw new Error(`Env parameter ${key} not found. You need add a this env parameter. If you have questions read the docs`);
|
|
@@ -72,11 +80,9 @@ class EnvironmentManagerServer extends EnvironmentManager.EnvironmentManager {
|
|
|
72
80
|
throw new Error(`Env parameter ${key} with value ${value} not valid, message: ${validation}`);
|
|
73
81
|
}
|
|
74
82
|
result[key] = value;
|
|
75
|
-
if (dehydrate !== false) {
|
|
76
|
-
this.clientUsedList[key] = value;
|
|
77
|
-
}
|
|
78
83
|
});
|
|
79
|
-
|
|
84
|
+
// sync process.env
|
|
85
|
+
process.env = envParameters;
|
|
80
86
|
this.update(result);
|
|
81
87
|
}
|
|
82
88
|
}
|
package/lib/server.es.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import { Module, provide, Scope, commandLineListTokens } from '@tramvai/core';
|
|
3
3
|
import flatten from '@tinkoff/utils/array/flatten';
|
|
4
|
-
import { ENV_MANAGER_TOKEN, ENV_USED_TOKEN, COMBINE_REDUCERS, CONTEXT_TOKEN } from '@tramvai/tokens-common';
|
|
4
|
+
import { ENV_MANAGER_TOKEN, ENV_USED_TOKEN, CLIENT_ENV_REPOSITORY_TOKEN, COMBINE_REDUCERS, CONTEXT_TOKEN } from '@tramvai/tokens-common';
|
|
5
5
|
export { ENV_MANAGER_TOKEN, ENV_USED_TOKEN } from '@tramvai/tokens-common';
|
|
6
6
|
import { SERVER_MODULE_PAPI_PUBLIC_ROUTE } from '@tramvai/tokens-server';
|
|
7
7
|
import { createPapiMethod } from '@tramvai/papi';
|
|
8
8
|
import { EnvironmentStore } from './shared/EnvironmentStore.es.js';
|
|
9
9
|
import { EnvironmentManagerServer } from './server/EnvironmentManagerServer.es.js';
|
|
10
|
+
import { ClientEnvironmentRepository } from './server/ClientEnvironmentRepository.es.js';
|
|
10
11
|
|
|
11
12
|
let EnvironmentModule = class EnvironmentModule {
|
|
12
13
|
};
|
|
@@ -15,6 +16,7 @@ EnvironmentModule = __decorate([
|
|
|
15
16
|
providers: [
|
|
16
17
|
provide({
|
|
17
18
|
provide: ENV_MANAGER_TOKEN,
|
|
19
|
+
scope: Scope.SINGLETON,
|
|
18
20
|
useFactory: ({ tokens }) => {
|
|
19
21
|
return new EnvironmentManagerServer(flatten(tokens !== null && tokens !== void 0 ? tokens : []));
|
|
20
22
|
},
|
|
@@ -24,7 +26,20 @@ EnvironmentModule = __decorate([
|
|
|
24
26
|
optional: true,
|
|
25
27
|
},
|
|
26
28
|
},
|
|
27
|
-
|
|
29
|
+
}),
|
|
30
|
+
provide({
|
|
31
|
+
provide: CLIENT_ENV_REPOSITORY_TOKEN,
|
|
32
|
+
scope: Scope.REQUEST,
|
|
33
|
+
useFactory: ({ envManager, tokens }) => {
|
|
34
|
+
return new ClientEnvironmentRepository(envManager, flatten(tokens !== null && tokens !== void 0 ? tokens : []));
|
|
35
|
+
},
|
|
36
|
+
deps: {
|
|
37
|
+
envManager: ENV_MANAGER_TOKEN,
|
|
38
|
+
tokens: {
|
|
39
|
+
token: ENV_USED_TOKEN,
|
|
40
|
+
optional: true,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
28
43
|
}),
|
|
29
44
|
provide({
|
|
30
45
|
provide: COMBINE_REDUCERS,
|
|
@@ -33,14 +48,14 @@ EnvironmentModule = __decorate([
|
|
|
33
48
|
}),
|
|
34
49
|
provide({
|
|
35
50
|
provide: commandLineListTokens.customerStart,
|
|
36
|
-
useFactory: ({ context,
|
|
51
|
+
useFactory: ({ context, clientEnvRepository }) => {
|
|
37
52
|
return function envCommand() {
|
|
38
|
-
context.getStore('environment').setState(
|
|
53
|
+
context.getStore('environment').setState(clientEnvRepository.getAll());
|
|
39
54
|
};
|
|
40
55
|
},
|
|
41
56
|
multi: true,
|
|
42
57
|
deps: {
|
|
43
|
-
|
|
58
|
+
clientEnvRepository: CLIENT_ENV_REPOSITORY_TOKEN,
|
|
44
59
|
context: CONTEXT_TOKEN,
|
|
45
60
|
},
|
|
46
61
|
}),
|
package/lib/server.js
CHANGED
|
@@ -10,6 +10,7 @@ var tokensServer = require('@tramvai/tokens-server');
|
|
|
10
10
|
var papi = require('@tramvai/papi');
|
|
11
11
|
var EnvironmentStore = require('./shared/EnvironmentStore.js');
|
|
12
12
|
var EnvironmentManagerServer = require('./server/EnvironmentManagerServer.js');
|
|
13
|
+
var ClientEnvironmentRepository = require('./server/ClientEnvironmentRepository.js');
|
|
13
14
|
|
|
14
15
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
16
|
|
|
@@ -22,6 +23,7 @@ exports.EnvironmentModule = tslib.__decorate([
|
|
|
22
23
|
providers: [
|
|
23
24
|
core.provide({
|
|
24
25
|
provide: tokensCommon.ENV_MANAGER_TOKEN,
|
|
26
|
+
scope: core.Scope.SINGLETON,
|
|
25
27
|
useFactory: ({ tokens }) => {
|
|
26
28
|
return new EnvironmentManagerServer.EnvironmentManagerServer(flatten__default["default"](tokens !== null && tokens !== void 0 ? tokens : []));
|
|
27
29
|
},
|
|
@@ -31,7 +33,20 @@ exports.EnvironmentModule = tslib.__decorate([
|
|
|
31
33
|
optional: true,
|
|
32
34
|
},
|
|
33
35
|
},
|
|
34
|
-
|
|
36
|
+
}),
|
|
37
|
+
core.provide({
|
|
38
|
+
provide: tokensCommon.CLIENT_ENV_REPOSITORY_TOKEN,
|
|
39
|
+
scope: core.Scope.REQUEST,
|
|
40
|
+
useFactory: ({ envManager, tokens }) => {
|
|
41
|
+
return new ClientEnvironmentRepository.ClientEnvironmentRepository(envManager, flatten__default["default"](tokens !== null && tokens !== void 0 ? tokens : []));
|
|
42
|
+
},
|
|
43
|
+
deps: {
|
|
44
|
+
envManager: tokensCommon.ENV_MANAGER_TOKEN,
|
|
45
|
+
tokens: {
|
|
46
|
+
token: tokensCommon.ENV_USED_TOKEN,
|
|
47
|
+
optional: true,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
35
50
|
}),
|
|
36
51
|
core.provide({
|
|
37
52
|
provide: tokensCommon.COMBINE_REDUCERS,
|
|
@@ -40,14 +55,14 @@ exports.EnvironmentModule = tslib.__decorate([
|
|
|
40
55
|
}),
|
|
41
56
|
core.provide({
|
|
42
57
|
provide: core.commandLineListTokens.customerStart,
|
|
43
|
-
useFactory: ({ context,
|
|
58
|
+
useFactory: ({ context, clientEnvRepository }) => {
|
|
44
59
|
return function envCommand() {
|
|
45
|
-
context.getStore('environment').setState(
|
|
60
|
+
context.getStore('environment').setState(clientEnvRepository.getAll());
|
|
46
61
|
};
|
|
47
62
|
},
|
|
48
63
|
multi: true,
|
|
49
64
|
deps: {
|
|
50
|
-
|
|
65
|
+
clientEnvRepository: tokensCommon.CLIENT_ENV_REPOSITORY_TOKEN,
|
|
51
66
|
context: tokensCommon.CONTEXT_TOKEN,
|
|
52
67
|
},
|
|
53
68
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/module-environment",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"browser": "lib/browser.js",
|
|
6
6
|
"main": "lib/server.js",
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"@tinkoff/utils": "^2.1.2",
|
|
22
|
-
"@tramvai/core": "4.
|
|
23
|
-
"@tramvai/papi": "4.
|
|
24
|
-
"@tramvai/state": "4.
|
|
25
|
-
"@tramvai/tokens-common": "4.
|
|
26
|
-
"@tramvai/tokens-server": "4.
|
|
22
|
+
"@tramvai/core": "4.9.0",
|
|
23
|
+
"@tramvai/papi": "4.9.0",
|
|
24
|
+
"@tramvai/state": "4.9.0",
|
|
25
|
+
"@tramvai/tokens-common": "4.9.0",
|
|
26
|
+
"@tramvai/tokens-server": "4.9.0",
|
|
27
27
|
"@tinkoff/dippy": "0.10.2",
|
|
28
28
|
"react": ">=16.14.0",
|
|
29
29
|
"react-dom": ">=16.14.0",
|