@leyyo/env 1.0.2 → 1.0.5

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.
Files changed (37) hide show
  1. package/dist/core/env-core.impl.d.ts +2 -0
  2. package/dist/core/env-core.impl.js +95 -0
  3. package/dist/core/env-core.impl.js.map +1 -0
  4. package/dist/core/index.d.ts +1 -1
  5. package/dist/core/index.js +1 -1
  6. package/dist/core/index.js.map +1 -1
  7. package/dist/core/index.types.d.ts +12 -14
  8. package/dist/field/env-field.impl.d.ts +44 -0
  9. package/dist/field/env-field.impl.js +196 -0
  10. package/dist/field/env-field.impl.js.map +1 -0
  11. package/dist/field/index.types.d.ts +36 -13
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/scope/env-scope.impl.d.ts +22 -0
  16. package/dist/scope/env-scope.impl.js +92 -0
  17. package/dist/scope/env-scope.impl.js.map +1 -0
  18. package/dist/scope/index.js.map +1 -0
  19. package/dist/scope/index.types.d.ts +16 -0
  20. package/dist/{package → scope}/index.types.js.map +1 -1
  21. package/dist/server.js +1 -1
  22. package/dist/server.js.map +1 -1
  23. package/package.json +2 -2
  24. package/dist/core/env.core.d.ts +0 -2
  25. package/dist/core/env.core.js +0 -98
  26. package/dist/core/env.core.js.map +0 -1
  27. package/dist/field/env.field.d.ts +0 -22
  28. package/dist/field/env.field.js +0 -69
  29. package/dist/field/env.field.js.map +0 -1
  30. package/dist/package/env.package.d.ts +0 -21
  31. package/dist/package/env.package.js +0 -86
  32. package/dist/package/env.package.js.map +0 -1
  33. package/dist/package/index.js.map +0 -1
  34. package/dist/package/index.types.d.ts +0 -16
  35. /package/dist/{package → scope}/index.d.ts +0 -0
  36. /package/dist/{package → scope}/index.js +0 -0
  37. /package/dist/{package → scope}/index.types.js +0 -0
@@ -0,0 +1,2 @@
1
+ import type { EnvCore } from "./index.types";
2
+ export declare const envCore: EnvCore;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.envCore = void 0;
4
+ const internal_1 = require("../internal");
5
+ const env_scope_impl_1 = require("../scope/env-scope.impl");
6
+ const common_1 = require("@leyyo/common");
7
+ const WHERE = `${internal_1.FQN}.EnvCore`;
8
+ class EnvCoreImpl {
9
+ constructor() {
10
+ this._scopes = common_1.$repo.newMap(internal_1.FQN, 'scopes'); // scope name x scope instance
11
+ this._keys = common_1.$repo.newMap(internal_1.FQN, 'keys'); // field name x scope name[]
12
+ }
13
+ scope(name) {
14
+ common_1.$assert.text(name, () => {
15
+ return { field: 'name', where: WHERE };
16
+ });
17
+ if (this._scopes.has(name)) {
18
+ throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Scope is duplicated', scope: name, where: WHERE });
19
+ }
20
+ const ins = new env_scope_impl_1.EnvScopeImpl(this, name);
21
+ this._scopes.set(name, ins);
22
+ return ins;
23
+ }
24
+ get(name) {
25
+ common_1.$assert.text(name, () => {
26
+ return { field: 'name', where: WHERE };
27
+ });
28
+ if (!this._scopes.has(name)) {
29
+ throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Scope could not found', scope: name, where: WHERE });
30
+ }
31
+ return this._scopes.get(name);
32
+ }
33
+ has(name) {
34
+ common_1.$assert.text(name, () => {
35
+ return { field: 'name', where: WHERE };
36
+ });
37
+ return this._scopes.has(name);
38
+ }
39
+ get raw() {
40
+ return JSON.parse(JSON.stringify(process.env));
41
+ }
42
+ get keys() {
43
+ const doc = {};
44
+ for (const [key, scopes] of this._keys.entries()) {
45
+ doc[key] = [...scopes];
46
+ }
47
+ return doc;
48
+ }
49
+ get scopes() {
50
+ return Array.from(this._scopes.keys());
51
+ }
52
+ run() {
53
+ Array.from(this._scopes.values())
54
+ .forEach(ins => ins.$run());
55
+ }
56
+ $addKey(key, scope) {
57
+ if (!this._keys.has(key)) {
58
+ this._keys.set(key, [scope]);
59
+ }
60
+ else {
61
+ const scopes = this._keys.get(key);
62
+ if (!scopes.includes(scope)) {
63
+ scopes.push(scope);
64
+ }
65
+ }
66
+ }
67
+ $fromOta(values) {
68
+ if (common_1.$is.bareObject(values)) {
69
+ const scopeMap = {};
70
+ for (const [key, value] of Object.entries(values)) {
71
+ if (this._keys.has(key)) {
72
+ const scopes = this._keys.get(key);
73
+ scopes.forEach(scope => {
74
+ if (this._scopes.has(scope)) {
75
+ if (scopeMap[scope] === undefined) {
76
+ scopeMap[scope] = {};
77
+ }
78
+ scopeMap[scope][key] = value;
79
+ }
80
+ });
81
+ }
82
+ }
83
+ if (Object.keys(scopeMap).length > 0) {
84
+ for (const [scope, valueMap] of Object.entries(scopeMap)) {
85
+ const ins = this._scopes.get(scope);
86
+ if (ins) {
87
+ ins.$fromOta(valueMap);
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ exports.envCore = new EnvCoreImpl();
95
+ //# sourceMappingURL=env-core.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-core.impl.js","sourceRoot":"","sources":["../../src/core/env-core.impl.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export * from './index.types';
2
- export * from './env.core';
2
+ export * from './env-core.impl';
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./index.types"), exports);
18
- __exportStar(require("./env.core"), exports);
18
+ __exportStar(require("./env-core.impl"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,kDAAgC"}
@@ -1,15 +1,13 @@
1
- import type { ShiftMain, ShiftSecure } from "@leyyo/common";
2
- import { EnvPackageLike } from "../package";
3
- export type EnvBase = Record<string, unknown>;
4
- export interface EnvCoreLike extends ShiftSecure<EnvCoreSecure> {
5
- pck<E extends EnvBase = EnvBase>(pck: string): EnvPackageLike<E>;
6
- get<E extends EnvBase = EnvBase>(pck: string): EnvPackageLike<E>;
7
- has(pck: string): boolean;
8
- get $raw(): EnvBase;
9
- get $keys(): Record<string, string[]>;
10
- }
11
- export interface EnvCoreSecure extends ShiftMain<EnvCoreLike> {
12
- $addKey(key: string, pck: string): void;
13
- $run(): void;
14
- $ota(values: EnvBase): void;
1
+ import type { EnvScope } from "../scope";
2
+ export type EnvBase = Object;
3
+ export interface EnvCore {
4
+ scope<E extends EnvBase = EnvBase>(name: string): EnvScope<E>;
5
+ get<E extends EnvBase = EnvBase>(name: string): EnvScope<E>;
6
+ has(name: string): boolean;
7
+ get raw(): EnvBase;
8
+ get keys(): Record<string, string[]>;
9
+ get scopes(): string[];
10
+ run(): void;
11
+ $addKey(key: string, scope: string): void;
12
+ $fromOta(values: EnvBase): void;
15
13
  }
@@ -0,0 +1,44 @@
1
+ import { EnumMap } from "@leyyo/common";
2
+ import type { EnvField, EnvFieldAssertLambda, EnvFieldCastLambda, EnvFieldOtaLambda } from "./index.types";
3
+ import type { EnvScope } from "../scope";
4
+ import type { EnvBase } from "../core";
5
+ import type { KeyValue } from "@leyyo/common/dist/shared";
6
+ import { EnumLiteral } from "@leyyo/common/dist/shared/index.types";
7
+ export declare class EnvFieldImpl<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> implements EnvField<E, Z> {
8
+ readonly scope: EnvScope<E>;
9
+ readonly name: Z;
10
+ private readonly _field;
11
+ private readonly _where;
12
+ private _assert;
13
+ private _cast;
14
+ private _def;
15
+ private _required;
16
+ private _array;
17
+ private _otaFn;
18
+ private _initialized;
19
+ private _type;
20
+ private _enumKeys;
21
+ private static _lambdaMap;
22
+ constructor(scope: EnvScope<E>, name: Z);
23
+ private _devOne;
24
+ private _devMore;
25
+ private _initialize;
26
+ string(): this;
27
+ text(): this;
28
+ float(): this;
29
+ integer(): this;
30
+ boolean(): this;
31
+ literal<L extends KeyValue = string>(keys: EnumLiteral<L>): this;
32
+ enumeration<L extends KeyValue = string>(map: EnumMap<L>): this;
33
+ one(defaultValue: E[Z]): this;
34
+ more(...defaultValues: Array<E[Z]>): this;
35
+ get required(): this;
36
+ get array(): this;
37
+ ota(fn?: EnvFieldOtaLambda<E, Z>): this;
38
+ end(): EnvScope<E>;
39
+ $cast(fn: EnvFieldCastLambda<E, Z>): this;
40
+ $assert(fn: EnvFieldAssertLambda): this;
41
+ private get _fromDef();
42
+ $run(): void;
43
+ $fromOta(value: unknown): void;
44
+ }
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvFieldImpl = void 0;
4
+ const common_1 = require("@leyyo/common");
5
+ class EnvFieldImpl {
6
+ constructor(scope, name) {
7
+ this.scope = scope;
8
+ this.name = name;
9
+ this._field = this.name;
10
+ this._where = this.scope.name;
11
+ }
12
+ _devOne() {
13
+ return { field: this._field, where: this._where };
14
+ }
15
+ _devMore(index) {
16
+ return { field: `${this._field}[${index}]`, where: this._where };
17
+ }
18
+ _initialize() {
19
+ if (this._initialized) {
20
+ return;
21
+ }
22
+ this._initialized = true;
23
+ switch (this._type) {
24
+ case 'string':
25
+ case 'text':
26
+ case 'integer':
27
+ case 'float':
28
+ case 'boolean':
29
+ const cast1 = EnvFieldImpl._lambdaMap[this._type];
30
+ if (this._array) {
31
+ this.$cast(v => common_1.$to.delimited(v, this._devOne(), (val, index) => cast1(val, this._devMore(index), true), this._required));
32
+ if (this._required) {
33
+ this.$assert(v => common_1.$assert.array(v, this._devOne()));
34
+ }
35
+ else {
36
+ this.$assert(v => {
37
+ if (Array.isArray(v) && v.length > 0) {
38
+ common_1.$assert.array(v, this._devOne());
39
+ }
40
+ });
41
+ }
42
+ }
43
+ else {
44
+ this.$cast(v => cast1(v, this._devOne(), this._required));
45
+ if (this._required) {
46
+ this.$assert(v => common_1.$assert.notEmpty(v, this._devOne()));
47
+ }
48
+ }
49
+ break;
50
+ case 'literal':
51
+ case 'enumeration':
52
+ const cast2 = EnvFieldImpl._lambdaMap[this._type];
53
+ if (this._array) {
54
+ this.$cast(v => common_1.$to.delimited(v, this._devOne(), (val, index) => cast2(val, this._enumKeys, this._devMore(index), true), this._required));
55
+ if (this._required) {
56
+ this.$assert(v => common_1.$assert.array(v, this._devOne()));
57
+ }
58
+ else {
59
+ this.$assert(v => {
60
+ if (Array.isArray(v) && v.length > 0) {
61
+ common_1.$assert.array(v, this._devOne());
62
+ }
63
+ });
64
+ }
65
+ }
66
+ else {
67
+ this.$cast(v => cast2(v, this._enumKeys, this._devOne(), this._required));
68
+ if (this._required) {
69
+ this.$assert(v => common_1.$assert.notEmpty(v, this._devOne()));
70
+ }
71
+ }
72
+ break;
73
+ }
74
+ }
75
+ // region type
76
+ string() {
77
+ this._type = 'string';
78
+ return this;
79
+ }
80
+ text() {
81
+ this._type = 'string';
82
+ return this;
83
+ }
84
+ float() {
85
+ this._type = 'float';
86
+ return this;
87
+ }
88
+ integer() {
89
+ this._type = 'integer';
90
+ return this;
91
+ }
92
+ boolean() {
93
+ this._type = 'boolean';
94
+ return this;
95
+ }
96
+ literal(keys) {
97
+ this._type = 'literal';
98
+ this._enumKeys = keys;
99
+ return this;
100
+ }
101
+ enumeration(map) {
102
+ this._type = 'enumeration';
103
+ this._enumKeys = map;
104
+ return this;
105
+ }
106
+ // endregion number
107
+ one(defaultValue) {
108
+ if (!common_1.$is.empty(defaultValue)) {
109
+ this._def = defaultValue;
110
+ }
111
+ return this;
112
+ }
113
+ more(...defaultValues) {
114
+ this._def = defaultValues;
115
+ return this;
116
+ }
117
+ get required() {
118
+ this._required = true;
119
+ return this;
120
+ }
121
+ get array() {
122
+ this._array = true;
123
+ return this;
124
+ }
125
+ ota(fn) {
126
+ this.scope.$addOta(this.name);
127
+ if (typeof fn === 'function') {
128
+ this._otaFn = fn;
129
+ }
130
+ return this;
131
+ }
132
+ end() {
133
+ return this.scope;
134
+ }
135
+ $cast(fn) {
136
+ this._cast = fn;
137
+ return this;
138
+ }
139
+ $assert(fn) {
140
+ this._assert = fn;
141
+ return this;
142
+ }
143
+ get _fromDef() {
144
+ var _a;
145
+ if (this._array) {
146
+ if (common_1.$is.empty(this._def)) {
147
+ return [];
148
+ }
149
+ else if (Array.isArray(this._def)) {
150
+ return this._def;
151
+ }
152
+ return [this._def];
153
+ }
154
+ else {
155
+ return (_a = this._def) !== null && _a !== void 0 ? _a : undefined;
156
+ }
157
+ }
158
+ $run() {
159
+ this._initialize();
160
+ if (common_1.$is.empty(process.env[this._field])) {
161
+ process.env[this._field] = this._fromDef;
162
+ }
163
+ if (typeof this._cast === 'function') {
164
+ process.env[this._field] = this._cast(process.env[this._field]);
165
+ if (common_1.$is.empty(process.env[this._field])) {
166
+ process.env[this._field] = this._fromDef;
167
+ }
168
+ }
169
+ if (typeof this._assert === 'function') {
170
+ this._assert(process.env[this._field]);
171
+ }
172
+ }
173
+ $fromOta(value) {
174
+ process.env[this._field] = value;
175
+ this.$run();
176
+ if (this._otaFn) {
177
+ try {
178
+ this._otaFn(this.name, this.scope.raw);
179
+ }
180
+ catch (e) {
181
+ console.log(`Ota Error: ${e.message}, scope: ${this.scope.name}, field: ${this._field}`);
182
+ }
183
+ }
184
+ }
185
+ }
186
+ exports.EnvFieldImpl = EnvFieldImpl;
187
+ EnvFieldImpl._lambdaMap = {
188
+ string: ((value, opt, required) => common_1.$to.string(value, opt, required)),
189
+ text: ((value, opt, required) => common_1.$to.text(value, opt, required)),
190
+ float: ((value, opt, required) => common_1.$to.float(value, opt, required)),
191
+ integer: ((value, opt, required) => common_1.$to.integer(value, opt, required)),
192
+ boolean: ((value, opt, required) => common_1.$to.boolean(value, opt, required)),
193
+ literal: ((value, item, opt, required) => common_1.$to.literal(value, item, opt, undefined, required)),
194
+ enumeration: ((value, map, opt, required) => common_1.$to.enumeration(value, map, opt, undefined, required)),
195
+ };
196
+ //# sourceMappingURL=env-field.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-field.impl.js","sourceRoot":"","sources":["../../src/field/env-field.impl.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,41 @@
1
- import type { ShiftMain, ShiftSecure } from "@leyyo/common";
2
- import type { EnvPackageLike } from "../package";
1
+ import type { EnvScope } from "../scope";
3
2
  import type { EnvBase } from "../core";
3
+ import { DevOpt, EnumMap, KeyValue } from "@leyyo/common";
4
+ import { EnumLiteral } from "@leyyo/common/dist/shared/index.types";
4
5
  export type EnvFieldCastLambda<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> = (v: unknown) => E[Z];
5
6
  export type EnvFieldAssertLambda = (v: unknown) => void;
6
- export interface EnvFieldLike<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> extends ShiftSecure<EnvFieldSecure<E, Z>> {
7
- ota(flag: boolean): EnvFieldLike<E, Z>;
8
- def(value: E[Z]): EnvFieldLike<E, Z>;
9
- $def(value: unknown): EnvFieldLike<E, Z>;
10
- cast(fn: EnvFieldCastLambda<E, Z>): EnvFieldLike<E, Z>;
11
- assert(fn: EnvFieldAssertLambda): EnvFieldLike<E, Z>;
12
- end(): EnvPackageLike<E>;
13
- }
14
- export interface EnvFieldSecure<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> extends ShiftMain<EnvFieldLike<E, Z>> {
15
- get $pck(): EnvPackageLike<E>;
7
+ export type EnvFieldType = 'string' | 'text' | 'float' | 'integer' | 'boolean' | 'literal' | 'enumeration';
8
+ export type EnvFieldOtaLambda<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> = (field: Z, data: E) => void;
9
+ export interface EnvField<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> {
10
+ get required(): this;
11
+ get array(): this;
12
+ string(): this;
13
+ text(): this;
14
+ float(): this;
15
+ integer(): this;
16
+ boolean(): this;
17
+ literal<L extends KeyValue = string>(keys: EnumLiteral<L>): this;
18
+ enumeration<L extends KeyValue = string>(map: EnumMap<L>): this;
19
+ one(defaultValue: E[Z]): this;
20
+ more(...defaultValues: Array<E[Z]>): this;
21
+ ota(fn?: EnvFieldOtaLambda<E, Z>): this;
22
+ one(defaultValue: E[Z]): this;
23
+ more(...defaultValues: Array<E[Z]>): this;
24
+ end(): EnvScope<E>;
25
+ get scope(): EnvScope<E>;
16
26
  $run(): void;
17
- $ota(value: unknown): void;
27
+ $fromOta(value: unknown): void;
28
+ $cast(fn: EnvFieldCastLambda<E, Z>): this;
29
+ $assert(fn: EnvFieldAssertLambda): this;
30
+ }
31
+ export type EnvFieldCastBasicLambda<T> = (value: unknown, opt: DevOpt, required: boolean) => T | undefined;
32
+ export type EnvFieldCastEnumLambda<T extends KeyValue> = (value: unknown, keys: unknown, opt: DevOpt, required: boolean) => T | undefined;
33
+ export interface EnvFieldLambdaItem {
34
+ string: EnvFieldCastBasicLambda<string>;
35
+ text: EnvFieldCastBasicLambda<string>;
36
+ float: EnvFieldCastBasicLambda<number>;
37
+ integer: EnvFieldCastBasicLambda<number>;
38
+ boolean: EnvFieldCastBasicLambda<boolean>;
39
+ literal: EnvFieldCastEnumLambda<KeyValue>;
40
+ enumeration: EnvFieldCastEnumLambda<KeyValue>;
18
41
  }
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './field';
2
- export * from './package';
2
+ export * from './scope';
3
3
  export * from './core';
package/dist/index.js CHANGED
@@ -15,6 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./field"), exports);
18
- __exportStar(require("./package"), exports);
18
+ __exportStar(require("./scope"), exports);
19
19
  __exportStar(require("./core"), exports);
20
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,4CAA0B;AAC1B,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB"}
@@ -0,0 +1,22 @@
1
+ import type { EnvBase, EnvCore } from "../core";
2
+ import type { EnvField } from "../field";
3
+ import type { EnvScope } from "./index.types";
4
+ export declare class EnvScopeImpl<E extends EnvBase = EnvBase> implements EnvScope<E> {
5
+ readonly core: EnvCore;
6
+ readonly name: string;
7
+ private _raw;
8
+ private _run;
9
+ private readonly _fields;
10
+ private readonly _otaList;
11
+ constructor(core: EnvCore, name: string);
12
+ field<Z extends keyof E = keyof E>(name: Z): EnvField<E, Z>;
13
+ get<Z extends keyof E = keyof E>(name: Z): EnvField<E, Z>;
14
+ has<Z extends keyof E = keyof E>(field: Z): boolean;
15
+ uses(scope: string): this;
16
+ run(): void;
17
+ get raw(): E;
18
+ $run(): void;
19
+ $refresh(): void;
20
+ $addOta(name: keyof E): void;
21
+ $fromOta(values: Partial<E>): void;
22
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvScopeImpl = void 0;
4
+ const internal_1 = require("../internal");
5
+ const common_1 = require("@leyyo/common");
6
+ const env_field_impl_1 = require("../field/env-field.impl");
7
+ const WHERE = `${internal_1.FQN}.EnvScopeImpl`;
8
+ class EnvScopeImpl {
9
+ constructor(core, name) {
10
+ this.core = core;
11
+ this.name = name;
12
+ this._fields = common_1.$repo.newMap(WHERE, 'fields'); // field name x field instance
13
+ this._otaList = common_1.$repo.newArray(WHERE, 'otaList'); // field name
14
+ }
15
+ field(name) {
16
+ common_1.$assert.text(name, () => {
17
+ return { field: 'name', where: WHERE, scope: this.name };
18
+ });
19
+ if (this._fields.has(name)) {
20
+ throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Field is duplicated', field: name, scope: this.name, where: WHERE });
21
+ }
22
+ const ins = new env_field_impl_1.EnvFieldImpl(this, name);
23
+ this._fields.set(name, ins);
24
+ this.core.$addKey(name, this.name);
25
+ return ins;
26
+ }
27
+ get(name) {
28
+ common_1.$assert.text(name, () => {
29
+ return { field: 'name', where: WHERE, scope: this.name };
30
+ });
31
+ if (!this._fields.has(name)) {
32
+ throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Field could not found', field: name, scope: this.name, where: WHERE });
33
+ }
34
+ return this._fields.get(name);
35
+ }
36
+ has(field) {
37
+ common_1.$assert.text(field, () => {
38
+ return { field: 'name', where: WHERE, scope: this.name };
39
+ });
40
+ return this._fields.has(field);
41
+ }
42
+ uses(scope) {
43
+ if (this.core.has(scope)) {
44
+ this.core.get(scope).$run();
45
+ }
46
+ return this;
47
+ }
48
+ run() {
49
+ this.core.run();
50
+ }
51
+ get raw() {
52
+ if (this._raw !== undefined) {
53
+ return this._raw;
54
+ }
55
+ this._raw = {};
56
+ Array.from(this._fields.keys())
57
+ .forEach(key => {
58
+ this._raw[key] = process.env[key];
59
+ });
60
+ return this._raw;
61
+ }
62
+ $run() {
63
+ if (this._run) {
64
+ return;
65
+ }
66
+ this._run = true;
67
+ Array.from(this._fields.values())
68
+ .forEach(ins => ins.$run());
69
+ }
70
+ $refresh() {
71
+ this._run = false;
72
+ this._raw = undefined;
73
+ }
74
+ $addOta(name) {
75
+ if (!this._otaList.includes(name)) {
76
+ this._otaList.push(name);
77
+ }
78
+ }
79
+ $fromOta(values) {
80
+ this.$refresh();
81
+ if (common_1.$is.bareObject(values)) {
82
+ for (const [name, value] of Object.entries(values)) {
83
+ const ins = this._fields.get(name);
84
+ if (ins) {
85
+ ins.$fromOta(value);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ exports.EnvScopeImpl = EnvScopeImpl;
92
+ //# sourceMappingURL=env-scope.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-scope.impl.js","sourceRoot":"","sources":["../../src/scope/env-scope.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scope/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -0,0 +1,16 @@
1
+ import type { EnvField } from "../field";
2
+ import type { EnvBase, EnvCore } from "../core";
3
+ export interface EnvScope<E extends EnvBase = EnvBase> {
4
+ field<Z extends keyof E = keyof E>(field: Z): EnvField<E, Z>;
5
+ get<Z extends keyof E = keyof E>(field: Z): EnvField<E, Z>;
6
+ has<Z extends keyof E = keyof E>(field: Z): boolean;
7
+ uses(scope: string): this;
8
+ run(): void;
9
+ get raw(): E;
10
+ get name(): string;
11
+ get core(): EnvCore;
12
+ $run(): void;
13
+ $refresh(): void;
14
+ $fromOta(values: Partial<E>): void;
15
+ $addOta(name: keyof E): void;
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.types.js","sourceRoot":"","sources":["../../src/package/index.types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.types.js","sourceRoot":"","sources":["../../src/scope/index.types.ts"],"names":[],"mappings":""}
package/dist/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("./core");
4
- core_1.envCore.$secure.$run();
4
+ core_1.envCore.run();
5
5
  console.log('success');
6
6
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AAAA,iCAA+B;AAE/B,cAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;AAAA,iCAA+B;AAE/B,cAAO,CAAC,GAAG,EAAE,CAAC;AACd,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leyyo/env",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "Environment library",
5
5
  "keywords": [
6
6
  "env",
@@ -51,6 +51,6 @@
51
51
  "typescript": "^5.7.3"
52
52
  },
53
53
  "dependencies": {
54
- "@leyyo/common": "^1.0.10"
54
+ "@leyyo/common": "^1.0.13"
55
55
  }
56
56
  }
@@ -1,2 +0,0 @@
1
- import { EnvCoreLike } from "./index.types";
2
- export declare const envCore: EnvCoreLike;
@@ -1,98 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.envCore = void 0;
4
- const internal_1 = require("../internal");
5
- const env_package_1 = require("../package/env.package");
6
- const common_1 = require("@leyyo/common");
7
- const WHERE = `${internal_1.FQN}.EnvCore`;
8
- class EnvCore {
9
- constructor() {
10
- this._packages = common_1.$repo.newMap(internal_1.FQN, 'packages'); // pck x instance
11
- this._keys = common_1.$repo.newMap(internal_1.FQN, 'keys'); // key x packages
12
- }
13
- pck(pck) {
14
- common_1.$assert.text(pck, () => {
15
- return { field: 'package', where: WHERE };
16
- });
17
- if (this._packages.has(pck)) {
18
- throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Package name is duplicated', value: pck, where: WHERE });
19
- }
20
- const ins = new env_package_1.EnvPackage(this, pck);
21
- this._packages.set(pck, ins);
22
- return ins;
23
- }
24
- get(pck) {
25
- common_1.$assert.text(pck, () => {
26
- return { field: 'package', where: WHERE };
27
- });
28
- if (!this._packages.has(pck)) {
29
- throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Package name could not found', value: pck, where: WHERE });
30
- }
31
- return this._packages.get(pck);
32
- }
33
- has(pck) {
34
- common_1.$assert.text(pck, () => {
35
- return { field: 'package', where: WHERE };
36
- });
37
- return this._packages.has(pck);
38
- }
39
- get $raw() {
40
- return JSON.parse(JSON.stringify(process.env));
41
- }
42
- get $keys() {
43
- const doc = {};
44
- for (const [key, packages] of this._keys.entries()) {
45
- doc[key] = [...packages];
46
- }
47
- return doc;
48
- }
49
- $addKey(key, pck) {
50
- if (!this._keys.has(key)) {
51
- this._keys.set(key, [pck]);
52
- }
53
- else {
54
- const packages = this._keys.get(key);
55
- if (!packages.includes(pck)) {
56
- packages.push(pck);
57
- }
58
- }
59
- }
60
- $run() {
61
- Array.from(this._packages.values())
62
- .forEach(ins => ins.$secure.$run());
63
- }
64
- $ota(values) {
65
- if (common_1.$is.bareObject(values)) {
66
- const pckMap = {};
67
- for (const [key, value] of Object.entries(values)) {
68
- if (this._keys.has(key)) {
69
- const packages = this._keys.get(key);
70
- packages.forEach(pck => {
71
- if (this._packages.has(pck)) {
72
- if (pckMap[pck] === undefined) {
73
- pckMap[pck] = {};
74
- }
75
- pckMap[pck][key] = value;
76
- }
77
- });
78
- }
79
- }
80
- if (Object.keys(pckMap).length > 0) {
81
- for (const [pck, valueMap] of Object.entries(pckMap)) {
82
- const ins = this._packages.get(pck);
83
- if (ins) {
84
- ins.$secure.$ota(valueMap);
85
- }
86
- }
87
- }
88
- }
89
- }
90
- get $secure() {
91
- return this;
92
- }
93
- get $back() {
94
- return this;
95
- }
96
- }
97
- exports.envCore = new EnvCore();
98
- //# sourceMappingURL=env.core.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.core.js","sourceRoot":"","sources":["../../src/core/env.core.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import type { EnvFieldAssertLambda, EnvFieldCastLambda, EnvFieldLike, EnvFieldSecure } from "./index.types";
2
- import type { EnvPackageLike } from "../package";
3
- import type { EnvBase } from "../core";
4
- export declare class EnvField<E extends EnvBase = EnvBase, Z extends keyof E = keyof E> implements EnvFieldLike<E, Z>, EnvFieldSecure<E, Z> {
5
- private readonly _pck;
6
- private readonly _name;
7
- private _assert;
8
- private _cast;
9
- private _def;
10
- constructor(_pck: EnvPackageLike<E>, _name: Z);
11
- assert(fn: EnvFieldAssertLambda): EnvFieldLike<E, Z>;
12
- cast(fn: EnvFieldCastLambda<E, Z>): EnvFieldLike<E, Z>;
13
- def(value: E[Z]): EnvFieldLike<E, Z>;
14
- $def(value: unknown): EnvFieldLike<E, Z>;
15
- ota(flag: boolean): EnvFieldLike<E, Z>;
16
- end(): EnvPackageLike<E>;
17
- get $secure(): EnvFieldSecure<E, Z>;
18
- get $back(): EnvFieldLike<E, Z>;
19
- get $pck(): EnvPackageLike<E>;
20
- $run(): void;
21
- $ota(value: unknown): void;
22
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvField = void 0;
4
- const common_1 = require("@leyyo/common");
5
- class EnvField {
6
- constructor(_pck, _name) {
7
- this._pck = _pck;
8
- this._name = _name;
9
- }
10
- assert(fn) {
11
- this._assert = fn;
12
- return this;
13
- }
14
- cast(fn) {
15
- this._cast = fn;
16
- return this;
17
- }
18
- def(value) {
19
- this._def = value;
20
- return this;
21
- }
22
- $def(value) {
23
- this._def = value;
24
- return this;
25
- }
26
- ota(flag) {
27
- if (flag) {
28
- this._pck.$secure.$addOta(this._name);
29
- }
30
- else {
31
- this._pck.$secure.$removeOta(this._name);
32
- }
33
- return this;
34
- }
35
- end() {
36
- return this.$pck;
37
- }
38
- get $secure() {
39
- return this;
40
- }
41
- get $back() {
42
- return this;
43
- }
44
- get $pck() {
45
- return this._pck;
46
- }
47
- $run() {
48
- const n = this._name;
49
- if (common_1.$is.empty(process.env[n])) {
50
- process.env[n] = this._def;
51
- }
52
- if (typeof this._cast === 'function') {
53
- process.env[n] = this._cast(process.env[n]);
54
- if (common_1.$is.empty(process.env[n])) {
55
- process.env[n] = this._def;
56
- }
57
- }
58
- if (typeof this._assert === 'function') {
59
- this._assert(process.env[n]);
60
- }
61
- }
62
- $ota(value) {
63
- const n = this._name;
64
- process.env[n] = value;
65
- this.$run();
66
- }
67
- }
68
- exports.EnvField = EnvField;
69
- //# sourceMappingURL=env.field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.field.js","sourceRoot":"","sources":["../../src/field/env.field.ts"],"names":[],"mappings":";;;AAAA,0CAAkC;AAMlC,MAAa,QAAQ;IAKjB,YAA6B,IAAuB,EAAmB,KAAQ;QAAlD,SAAI,GAAJ,IAAI,CAAmB;QAAmB,UAAK,GAAL,KAAK,CAAG;IAC/E,CAAC;IAED,MAAM,CAAC,EAAwB;QAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,EAA4B;QAC7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,KAAW;QACX,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,KAAc;QACf,IAAI,CAAC,IAAI,GAAG,KAAa,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,IAAa;QACb,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;aACI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG;QACC,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI;QACA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAe,CAAC;QAC/B,IAAI,YAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAc,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAW,CAAC;YACtD,IAAI,YAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAc,CAAC;YACzC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,KAAc;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,KAAe,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAe,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;CAEJ;AAxED,4BAwEC"}
@@ -1,21 +0,0 @@
1
- import type { EnvBase, EnvCoreLike } from "../core";
2
- import type { EnvFieldLike } from "../field";
3
- import type { EnvPackageLike, EnvPackageSecure } from "./index.types";
4
- export declare class EnvPackage<E extends EnvBase = EnvBase> implements EnvPackageLike<E>, EnvPackageSecure<E> {
5
- private readonly _core;
6
- private readonly _pck;
7
- private readonly _fields;
8
- private readonly _otaList;
9
- constructor(_core: EnvCoreLike, _pck: string);
10
- field<Z extends keyof E = keyof E>(field: Z): EnvFieldLike<E, Z>;
11
- get<Z extends keyof E = keyof E>(field: Z): EnvFieldLike<E, Z>;
12
- has<Z extends keyof E = keyof E>(field: Z): boolean;
13
- get $secure(): EnvPackageSecure<E>;
14
- get $back(): EnvPackageLike<E>;
15
- get $core(): EnvCoreLike;
16
- get $raw(): E;
17
- $run(): void;
18
- $addOta(name: keyof E): void;
19
- $removeOta(name: keyof E): void;
20
- $ota(values: Partial<E>): void;
21
- }
@@ -1,86 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvPackage = void 0;
4
- const internal_1 = require("../internal");
5
- const common_1 = require("@leyyo/common");
6
- const env_field_1 = require("../field/env.field");
7
- const WHERE = `${internal_1.FQN}.EnvPackage`;
8
- class EnvPackage {
9
- constructor(_core, _pck) {
10
- this._core = _core;
11
- this._pck = _pck;
12
- this._fields = common_1.$repo.newMap(WHERE, 'fields'); // field name x field instance
13
- this._otaList = common_1.$repo.newArray(WHERE, 'otaList'); // field name
14
- }
15
- field(field) {
16
- common_1.$assert.text(field, () => {
17
- return { field: 'field', where: WHERE };
18
- });
19
- if (this._fields.has(field)) {
20
- throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Package name could not found', value: field, pck: this._pck, where: WHERE });
21
- }
22
- const ins = new env_field_1.EnvField(this, field);
23
- this._fields.set(field, ins);
24
- this._core.$secure.$addKey(field, this._pck);
25
- return ins;
26
- }
27
- get(field) {
28
- common_1.$assert.text(field, () => {
29
- return { field: 'field', where: WHERE, pck: this._pck };
30
- });
31
- if (!this._fields.has(field)) {
32
- throw common_1.$dev.developerError2(internal_1.FQN, 701, { message: 'Package name could not found', value: field, pck: this._pck, where: WHERE });
33
- }
34
- return this._fields.get(field);
35
- }
36
- has(field) {
37
- common_1.$assert.text(field, () => {
38
- return { field: 'package', where: WHERE, pck: this._pck };
39
- });
40
- return this._fields.has(field);
41
- }
42
- get $secure() {
43
- return this;
44
- }
45
- get $back() {
46
- return this;
47
- }
48
- get $core() {
49
- return this._core;
50
- }
51
- get $raw() {
52
- const doc = {};
53
- Array.from(this._fields.keys())
54
- .forEach(key => {
55
- doc[key] = process.env[key];
56
- });
57
- return doc;
58
- }
59
- $run() {
60
- Array.from(this._fields.values())
61
- .forEach(ins => ins.$secure.$run());
62
- }
63
- $addOta(name) {
64
- if (!this._otaList.includes(name)) {
65
- this._otaList.push(name);
66
- }
67
- }
68
- $removeOta(name) {
69
- const index = this._otaList.indexOf(name);
70
- if (index >= 0) {
71
- this._otaList.splice(index, 1);
72
- }
73
- }
74
- $ota(values) {
75
- if (common_1.$is.bareObject(values)) {
76
- for (const [name, value] of Object.entries(values)) {
77
- const ins = this._fields.get(name);
78
- if (ins) {
79
- ins.$secure.$ota(value);
80
- }
81
- }
82
- }
83
- }
84
- }
85
- exports.EnvPackage = EnvPackage;
86
- //# sourceMappingURL=env.package.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.package.js","sourceRoot":"","sources":["../../src/package/env.package.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/package/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
@@ -1,16 +0,0 @@
1
- import type { ShiftMain, ShiftSecure } from "@leyyo/common";
2
- import type { EnvFieldLike } from "../field";
3
- import type { EnvBase, EnvCoreLike } from "../core";
4
- export interface EnvPackageLike<E extends EnvBase = EnvBase> extends ShiftSecure<EnvPackageSecure<E>> {
5
- field<Z extends keyof E = keyof E>(field: Z): EnvFieldLike<E, Z>;
6
- get<Z extends keyof E = keyof E>(field: Z): EnvFieldLike<E, Z>;
7
- has<Z extends keyof E = keyof E>(field: Z): boolean;
8
- get $raw(): E;
9
- }
10
- export interface EnvPackageSecure<E extends EnvBase = EnvBase> extends ShiftMain<EnvPackageLike<E>> {
11
- get $core(): EnvCoreLike;
12
- $run(): void;
13
- $ota(values: Partial<E>): void;
14
- $addOta(name: keyof E): void;
15
- $removeOta(name: keyof E): void;
16
- }
File without changes
File without changes
File without changes