adaptive-extender 0.9.9 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +347 -68
- package/dist/core/environment.d.ts +11 -0
- package/dist/core/environment.js +25 -0
- package/dist/core/environment.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/portable.d.ts +11 -0
- package/dist/core/portable.js +55 -0
- package/dist/core/portable.js.map +1 -1
- package/dist/node/index.d.ts +0 -1
- package/dist/node/index.js +0 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +1 -4
- package/dist/core/decorators.d.ts +0 -17
- package/dist/core/decorators.js +0 -174
- package/dist/core/decorators.js.map +0 -1
- package/dist/node/environment.d.ts +0 -20
- package/dist/node/environment.js +0 -37
- package/dist/node/environment.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
## 0.9.11 (17.03.2026)
|
|
2
|
+
- Moved `environment` module from [node](./src/node/environment.ts) to [core](./src/core/environment.ts).
|
|
3
|
+
- Added `EnvironmentProvider` class for resolving environment variables.
|
|
4
|
+
- Added `RecordOf` and `MapOf` adapters for portable maps in [portable](./src/core/portable.ts) module.
|
|
5
|
+
|
|
1
6
|
## 0.9.9 (13.03.2026)
|
|
2
7
|
- Added `map.add`, `set.toggle` and `array.remove` extensions.
|
|
3
8
|
|
package/README.md
CHANGED
|
@@ -1,130 +1,409 @@
|
|
|
1
1
|
# Adaptive Extender
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/adaptive-extender)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
[](https://bundlephobia.com/package/adaptive-extender)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**Adaptive Extender** enables strict portability, structured time management, and LINQ-like collections by extending native prototypes. It provides a robust standard library layer for enterprise-grade architecture.
|
|
8
|
+
Extends native prototypes and provides missing standard utilities — with a focus on strict typing, safety, and code readability.
|
|
8
9
|
|
|
9
10
|
[Change log](./CHANGELOG.md)
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
13
|
-
##
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install adaptive-extender
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Packages
|
|
21
|
+
|
|
22
|
+
| Package | Environment |
|
|
23
|
+
| :----------------------- | :---------------------- |
|
|
24
|
+
| `adaptive-extender/core` | Browser, Node.js, Deno |
|
|
25
|
+
| `adaptive-extender/node` | Node.js (includes core) |
|
|
26
|
+
| `adaptive-extender/web` | Browser (includes core) |
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
// Import once — extensions are active everywhere
|
|
30
|
+
import "adaptive-extender/core";
|
|
31
|
+
import "adaptive-extender/web"; // Browser only
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Native Extensions
|
|
37
|
+
|
|
38
|
+
### Number
|
|
14
39
|
|
|
15
|
-
|
|
16
|
-
|
|
40
|
+
```typescript
|
|
41
|
+
volume = volume.clamp(0, 1);
|
|
42
|
+
|
|
43
|
+
// Normalize into [0, 1] or remap between ranges
|
|
44
|
+
const normalized = currentValue.lerp(sourceMin, sourceMax);
|
|
45
|
+
const pixelX = angle.lerp(0, 360, 0, canvasWidth);
|
|
46
|
+
|
|
47
|
+
// True mathematical modulo — works correctly with negative numbers
|
|
48
|
+
const wrappedIndex = (-1).mod(items.length); // → items.length - 1
|
|
49
|
+
|
|
50
|
+
// Chainable fallback for invalid values
|
|
51
|
+
const ratio = (numerator / denominator).insteadNaN(0).insteadInfinity(1);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### String
|
|
17
55
|
|
|
18
56
|
```typescript
|
|
19
|
-
|
|
57
|
+
if (String.isWhitespace(userInput)) return;
|
|
58
|
+
|
|
59
|
+
const displayName = username.insteadEmpty("Anonymous");
|
|
60
|
+
|
|
61
|
+
"hello world".toTitleCase(); // → "Hello World"
|
|
62
|
+
"île-de-france".toLocalTitleCase("fr"); // → "Île-De-France"
|
|
63
|
+
```
|
|
20
64
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
65
|
+
### Array
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
for (const index of Array.range(0, 10)) { ... }
|
|
69
|
+
|
|
70
|
+
for (const [user, role] of Array.zip(users, roles)) {
|
|
71
|
+
console.log(`${user.name}: ${role}`);
|
|
24
72
|
}
|
|
25
73
|
|
|
26
|
-
//
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
74
|
+
// Collect an async iterable into an array
|
|
75
|
+
const packets = await Array.fromAsync(readableStream);
|
|
76
|
+
|
|
77
|
+
items.swap(0, items.length - 1);
|
|
78
|
+
items.resize(10, null);
|
|
79
|
+
const wasRemoved = items.remove(targetItem);
|
|
30
80
|
```
|
|
31
81
|
|
|
32
|
-
###
|
|
33
|
-
|
|
82
|
+
### Math
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
const [integer, fractional] = Math.split(3.75); // → [3, 0.75]
|
|
86
|
+
Math.sqpw(sideLength); // sideLength²
|
|
87
|
+
Math.toRadians(90); // → Math.PI / 2
|
|
88
|
+
Math.toDegrees(Math.PI); // → 180
|
|
89
|
+
|
|
90
|
+
Math.meanArithmetic(1, 2, 3, 4); // → 2.5
|
|
91
|
+
Math.meanGeometric(4, 16);
|
|
92
|
+
Math.meanHarmonic(1, 2, 4);
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Set / Map / Date
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
// Like classList.toggle
|
|
99
|
+
selected.toggle(item); // add if absent, remove if present
|
|
100
|
+
selected.toggle(item, true); // force add
|
|
101
|
+
selected.toggle(item, false); // force remove
|
|
102
|
+
|
|
103
|
+
// Add only if key is not already present
|
|
104
|
+
cache.add(requestKey, response); // → false if key exists
|
|
105
|
+
|
|
106
|
+
// Detect and replace invalid dates
|
|
107
|
+
const safeDate = new Date("invalid").insteadInvalid(new Date());
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Promise
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
const request = fetch("/api/data");
|
|
114
|
+
|
|
115
|
+
if (await request.isSettled) { ... }
|
|
116
|
+
if (await request.isResolved) { ... }
|
|
117
|
+
if (await request.isRejected) { ... }
|
|
118
|
+
|
|
119
|
+
const responseData = await request.value; // throws if rejected
|
|
120
|
+
const rejectReason = await request.reason; // throws if resolved
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Error / Global
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// Wrap anything into an Error (string, undefined, object)
|
|
127
|
+
const error = Error.from(thrown);
|
|
128
|
+
|
|
129
|
+
// Assert non-null — throws ReferenceError with a message
|
|
130
|
+
const appRoot = ReferenceError.suppress(document.getElementById("app"));
|
|
131
|
+
|
|
132
|
+
throw new ImplementationError(); // sealed, cannot be subclassed
|
|
133
|
+
|
|
134
|
+
// Get type name without typeof / manual checks
|
|
135
|
+
typename(value); // → "String", "Null", "User", ...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Classes
|
|
141
|
+
|
|
142
|
+
### Timespan
|
|
143
|
+
|
|
144
|
+
Value object for time intervals. Eliminates raw millisecond arithmetic.
|
|
34
145
|
|
|
35
146
|
```typescript
|
|
36
147
|
import { Timespan } from "adaptive-extender/core";
|
|
37
148
|
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
const
|
|
149
|
+
const sessionDuration = Timespan.fromComponents(0, 30, 0); // 30 minutes
|
|
150
|
+
const uptime = Timespan.fromValue(process.uptime() * 1000);
|
|
151
|
+
const parsed = Timespan.parse("1.02:30:00.500"); // 1d 2h 30m 0.5s
|
|
152
|
+
|
|
153
|
+
console.log(uptime.toString()); // "0.00:12:45.123"
|
|
41
154
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
155
|
+
uptime.minutes = 0; // other components recalculate automatically
|
|
156
|
+
|
|
157
|
+
if (uptime.valueOf() > sessionDuration.valueOf()) {
|
|
158
|
+
console.log("Session expired");
|
|
45
159
|
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Color
|
|
163
|
+
|
|
164
|
+
Full color object with RGB, HSL, HEX support and alpha channel. Changing a component in one color space automatically recalculates the other.
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { Color, ColorFormats } from "adaptive-extender/core";
|
|
168
|
+
|
|
169
|
+
const orange = Color.fromRGB(255, 128, 0);
|
|
170
|
+
const parsed = Color.parse("#ff8800");
|
|
171
|
+
|
|
172
|
+
orange.hue = 200; // RGB recalculates automatically
|
|
173
|
+
orange.alpha = 0.8;
|
|
46
174
|
|
|
47
|
-
|
|
48
|
-
|
|
175
|
+
console.log(orange.toString({ format: ColorFormats.hsl, deep: true }));
|
|
176
|
+
// → "hsla(200, 100%, 50%, 0.8)"
|
|
49
177
|
```
|
|
50
178
|
|
|
51
|
-
###
|
|
52
|
-
Native prototypes (`Array`, `String`, `Math`) are augmented with missing standard utility methods. These extensions are non-enumerable and designed to be conflict-free.
|
|
179
|
+
### Random
|
|
53
180
|
|
|
54
181
|
```typescript
|
|
55
|
-
|
|
56
|
-
|
|
182
|
+
import { Random } from "adaptive-extender/core";
|
|
183
|
+
|
|
184
|
+
const rng = Random.global;
|
|
185
|
+
|
|
186
|
+
rng.boolean(0.9); // true with 90% probability
|
|
187
|
+
rng.number(0, 1); // float [0, 1)
|
|
188
|
+
rng.integer(1, 6); // int [1, 6]
|
|
189
|
+
rng.item(options); // random element from array
|
|
190
|
+
rng.subarray(items, 3); // 3 random elements
|
|
191
|
+
rng.shuffle(array); // shuffle in place
|
|
192
|
+
|
|
193
|
+
// Weighted selection
|
|
194
|
+
const loot = rng.case(new Map([
|
|
195
|
+
["common", 70],
|
|
196
|
+
["rare", 25],
|
|
197
|
+
["legendary", 5],
|
|
198
|
+
]));
|
|
199
|
+
```
|
|
57
200
|
|
|
58
|
-
|
|
59
|
-
for (const [user, role] of Array.zip(users, roles)) { ... }
|
|
201
|
+
### Vector
|
|
60
202
|
|
|
61
|
-
|
|
62
|
-
|
|
203
|
+
Mathematical vectors with a LINQ-style iteration API.
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { Vector, Vector2D, Vector3D } from "adaptive-extender/core";
|
|
207
|
+
|
|
208
|
+
const position = new Vector2D(3, 4);
|
|
209
|
+
const direction = Vector3D.fromScalar(1); // (1, 1, 1)
|
|
210
|
+
|
|
211
|
+
// LINQ-like methods over components
|
|
212
|
+
const normalized = Vector3D.fromVector(
|
|
213
|
+
direction.map(component => component / Math.sqrt(3))
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
Vector.isFinite(position);
|
|
217
|
+
const safePosition = position.insteadNaN(Vector2D.newZero);
|
|
218
|
+
const point = Vector2D.parse("(10, 20)"); // → Vector2D { x: 10, y: 20 }
|
|
63
219
|
```
|
|
64
220
|
|
|
65
|
-
###
|
|
66
|
-
|
|
221
|
+
### Controller
|
|
222
|
+
|
|
223
|
+
Abstract base class for async tasks with centralized error handling.
|
|
67
224
|
|
|
68
225
|
```typescript
|
|
69
226
|
import { Controller } from "adaptive-extender/core";
|
|
70
227
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
228
|
+
class InitTask extends Controller {
|
|
229
|
+
async run(): Promise<void> {
|
|
230
|
+
const response = await fetch("/api/init");
|
|
231
|
+
// ...
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
async catch(error: Error): Promise<void> {
|
|
235
|
+
console.error("Init failed:", error.message);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// Creates an instance and runs it — errors are routed to catch()
|
|
240
|
+
await InitTask.launch();
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### EnvironmentProvider
|
|
244
|
+
|
|
245
|
+
Deserializes environment variables into a strictly typed model. JSON values are parsed automatically.
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
import { EnvironmentProvider, Model, Field, Optional } from "adaptive-extender/core";
|
|
249
|
+
|
|
250
|
+
class AppConfig extends Model {
|
|
251
|
+
@Field(String) DB_HOST: string = "localhost";
|
|
252
|
+
@Field(Number) DB_PORT: number = 5432;
|
|
253
|
+
@Field(Optional(String)) LOG_LEVEL?: string;
|
|
75
254
|
}
|
|
255
|
+
|
|
256
|
+
const config = EnvironmentProvider.resolve(process.env, AppConfig);
|
|
257
|
+
// config.DB_PORT is a number, not a string
|
|
258
|
+
// Throws TypeError if a required variable is missing or has the wrong type
|
|
76
259
|
```
|
|
77
260
|
|
|
78
261
|
---
|
|
79
262
|
|
|
80
|
-
##
|
|
263
|
+
## Portable Data System
|
|
264
|
+
|
|
265
|
+
Binds classes to their schema via decorators. Importing from JSON validates types automatically and returns a real class instance.
|
|
81
266
|
|
|
82
|
-
|
|
267
|
+
### Basic Usage
|
|
268
|
+
|
|
269
|
+
```typescript
|
|
270
|
+
import { Model, Field, ArrayOf, Optional, Nullable } from "adaptive-extender/core";
|
|
271
|
+
|
|
272
|
+
class Tag extends Model {
|
|
273
|
+
@Field(String) name: string = "";
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
class Article extends Model {
|
|
277
|
+
@Field(String) title: string = "";
|
|
278
|
+
@Field(Number) views: number = 0;
|
|
279
|
+
@Field(ArrayOf(Tag)) tags: Tag[] = [];
|
|
280
|
+
@Field(Optional(String)) subtitle?: string;
|
|
281
|
+
@Field(Nullable(String)) draft: string | null = null;
|
|
282
|
+
}
|
|
83
283
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
284
|
+
const article = Article.import(json, "api.article");
|
|
285
|
+
// article instanceof Article → true
|
|
286
|
+
// TypeError with exact path on failure: "api.article.tags[2].name"
|
|
287
|
+
|
|
288
|
+
const raw = Article.export(article); // → plain object, ready for JSON.stringify
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Polymorphism
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
import { Model, Field, Descendant, DiscriminatorKey } from "adaptive-extender/core";
|
|
295
|
+
|
|
296
|
+
class Dog extends Model { @Field(String) breed: string = ""; }
|
|
297
|
+
class Cat extends Model { @Field(Boolean) indoor: boolean = true; }
|
|
298
|
+
|
|
299
|
+
@DiscriminatorKey("kind")
|
|
300
|
+
@Descendant(Dog, "dog")
|
|
301
|
+
@Descendant(Cat, "cat")
|
|
302
|
+
abstract class Animal extends Model {}
|
|
303
|
+
|
|
304
|
+
// { kind: "dog", breed: "Husky" } → Dog instance
|
|
305
|
+
// { kind: "cat", indoor: true } → Cat instance
|
|
306
|
+
const animal = Animal.import(json, "api.animal");
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Adapters
|
|
310
|
+
|
|
311
|
+
| Adapter | Type |
|
|
312
|
+
| :------------- | :------------------------------------- |
|
|
313
|
+
| `ArrayOf(T)` | `T[]` |
|
|
314
|
+
| `SetOf(T)` | `Set<T>` ↔ `T[]` |
|
|
315
|
+
| `RecordOf(T)` | `Map<string, T>` ↔ `Record<string, T>` |
|
|
316
|
+
| `MapOf(K, V)` | `Map<K, V>` ↔ `[K, V][]` |
|
|
317
|
+
| `Optional(T)` | `T \| undefined` |
|
|
318
|
+
| `Nullable(T)` | `T \| null` |
|
|
319
|
+
| `Deferred(fn)` | Circular references |
|
|
94
320
|
|
|
95
321
|
---
|
|
96
322
|
|
|
97
|
-
##
|
|
323
|
+
## Web
|
|
98
324
|
|
|
99
|
-
|
|
100
|
-
Universal utilities. Works in Browser, Node, Deno.
|
|
101
|
-
*(Math, arrays, promises, portable system, time)*
|
|
325
|
+
### DOM Queries
|
|
102
326
|
|
|
103
|
-
-
|
|
104
|
-
Backend-specific tools.
|
|
105
|
-
*(Enhanced `fs` operations, strict environment variable parsing)*
|
|
327
|
+
Type-safe wrappers over `querySelector` — throw instead of returning `null`.
|
|
106
328
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
*(DOM element wrappers, parent-node extensions)*
|
|
329
|
+
```typescript
|
|
330
|
+
import "adaptive-extender/web";
|
|
110
331
|
|
|
111
|
-
|
|
332
|
+
const loginForm = document.getElement(HTMLFormElement, "#login-form");
|
|
333
|
+
const requiredInputs = loginForm.getElements(HTMLInputElement, "input[required]");
|
|
334
|
+
const container = loginForm.getClosest(HTMLDivElement, ".wrapper");
|
|
112
335
|
|
|
113
|
-
|
|
114
|
-
|
|
336
|
+
// Async variants — useful with Shadow DOM
|
|
337
|
+
const canvas = await document.getElementAsync(HTMLCanvasElement, "#scene");
|
|
115
338
|
```
|
|
116
339
|
|
|
117
|
-
|
|
340
|
+
### Game Engines
|
|
341
|
+
|
|
342
|
+
Three update-loop engines for UI animation or game logic:
|
|
118
343
|
|
|
119
344
|
```typescript
|
|
120
|
-
import "adaptive-extender/
|
|
345
|
+
import { FastEngine, StaticEngine } from "adaptive-extender/web";
|
|
346
|
+
|
|
347
|
+
// Fast — requestAnimationFrame based
|
|
348
|
+
const engine = new FastEngine({ launch: true });
|
|
349
|
+
engine.limit = 60;
|
|
350
|
+
|
|
351
|
+
engine.addEventListener("trigger", () => {
|
|
352
|
+
const deltaTime = engine.delta; // seconds since last frame
|
|
353
|
+
// update scene...
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
// Static — fixed fps via setTimeout
|
|
357
|
+
const fixedEngine = new StaticEngine({ launch: true });
|
|
358
|
+
fixedEngine.limit = 30;
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Archive (localStorage)
|
|
362
|
+
|
|
363
|
+
Type-safe localStorage with buffered access and auto-save.
|
|
364
|
+
|
|
365
|
+
```typescript
|
|
366
|
+
import { ArchiveRepository, Model, Field } from "adaptive-extender/web";
|
|
121
367
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
368
|
+
class Settings extends Model {
|
|
369
|
+
@Field(Boolean) darkMode: boolean = false;
|
|
370
|
+
@Field(Number) volume: number = 1;
|
|
125
371
|
}
|
|
372
|
+
|
|
373
|
+
const repository = new ArchiveRepository("settings", Settings, new Settings());
|
|
374
|
+
|
|
375
|
+
const settings = repository.content;
|
|
376
|
+
settings.volume = 0.5;
|
|
377
|
+
|
|
378
|
+
repository.save(); // persist immediately
|
|
379
|
+
repository.save(3000); // debounced — persist after 3 seconds
|
|
380
|
+
repository.reset(); // revert to initial state
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Promise Utilities
|
|
384
|
+
|
|
385
|
+
```typescript
|
|
386
|
+
await Promise.asTimeout(1000);
|
|
387
|
+
|
|
388
|
+
// AbortController is created and aborted automatically on completion
|
|
389
|
+
const result = await Promise.withSignal((signal, resolve, reject) => {
|
|
390
|
+
fetch("/api/data", { signal }).then(resolve).catch(reject);
|
|
391
|
+
});
|
|
126
392
|
```
|
|
127
393
|
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Reflect Utilities
|
|
397
|
+
|
|
398
|
+
```typescript
|
|
399
|
+
// Apply a function only if the value is not null / undefined
|
|
400
|
+
const upper = Reflect.mapNull(maybeNull, text => text.toUpperCase());
|
|
401
|
+
const trimmed = Reflect.mapUndefined(maybeUndefined, text => text.trim());
|
|
402
|
+
const parsed = Reflect.mapNullable(maybeNullable, text => parseInt(text));
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
128
407
|
## License
|
|
129
408
|
|
|
130
409
|
Apache-2.0
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type PortableConstructor } from "./portable.js";
|
|
2
|
+
export interface Environment extends Record<string, string | undefined> {
|
|
3
|
+
}
|
|
4
|
+
export interface EnvironmentResolveOptions {
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class EnvironmentProvider {
|
|
8
|
+
#private;
|
|
9
|
+
static resolve<M extends PortableConstructor<InstanceType<M>>>(environment: Environment, model: M): Readonly<InstanceType<M>>;
|
|
10
|
+
static resolve<M extends PortableConstructor<InstanceType<M>>>(environment: Environment, model: M, options: Partial<EnvironmentResolveOptions>): Readonly<InstanceType<M>>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import {} from "./portable.js";
|
|
3
|
+
export class EnvironmentProvider {
|
|
4
|
+
static resolve(environment, model, options = {}) {
|
|
5
|
+
const record = {};
|
|
6
|
+
for (const key of Object.keys(environment)) {
|
|
7
|
+
record[key] = EnvironmentProvider.#parse(environment[key]);
|
|
8
|
+
}
|
|
9
|
+
const instance = model.import(record, options.name ?? model.name);
|
|
10
|
+
return Object.freeze(instance);
|
|
11
|
+
}
|
|
12
|
+
static #parse(value) {
|
|
13
|
+
try {
|
|
14
|
+
if (value === undefined)
|
|
15
|
+
return value;
|
|
16
|
+
return JSON.parse(value);
|
|
17
|
+
}
|
|
18
|
+
catch (reason) {
|
|
19
|
+
if (reason instanceof SyntaxError)
|
|
20
|
+
return value;
|
|
21
|
+
throw reason;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/core/environment.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAA4B,MAAM,eAAe,CAAC;AAUzD,MAAM,OAAO,mBAAmB;IAG/B,MAAM,CAAC,OAAO,CAAiD,WAAwB,EAAE,KAAQ,EAAE,UAA8C,EAAE;QAClJ,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAqC;QAClD,IAAI,CAAC;YACJ,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YACjB,IAAI,MAAM,YAAY,WAAW;gBAAE,OAAO,KAAK,CAAC;YAChD,MAAM,MAAM,CAAC;QACd,CAAC;IACF,CAAC;CACD"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
package/dist/core/portable.d.ts
CHANGED
|
@@ -92,6 +92,17 @@ export declare function ArrayOf<M, S>(type: PortableConstructor<M, S>): Portable
|
|
|
92
92
|
* @param type The portable type of the set elements.
|
|
93
93
|
*/
|
|
94
94
|
export declare function SetOf<M, S>(type: PortableConstructor<M, S>): PortableConstructor<Set<M>, S[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Creates a portable wrapper for maps with string keys, converting them to and from plain objects.
|
|
97
|
+
* @param value The portable type of the map values.
|
|
98
|
+
*/
|
|
99
|
+
export declare function RecordOf<M, S>(type: PortableConstructor<M, S>): PortableConstructor<Map<string, M>, Record<string, S>>;
|
|
100
|
+
/**
|
|
101
|
+
* Creates a portable wrapper for maps with arbitrary key and value types, converting them to and from arrays of `[key, value]` tuples.
|
|
102
|
+
* @param key The portable type of the map keys.
|
|
103
|
+
* @param value The portable type of the map values.
|
|
104
|
+
*/
|
|
105
|
+
export declare function MapOf<MK, SK, MV, SV>(typeKey: PortableConstructor<MK, SK>, typeValue: PortableConstructor<MV, SV>): PortableConstructor<Map<MK, MV>, [SK, SV][]>;
|
|
95
106
|
/**
|
|
96
107
|
* A portable adapter that facilitates the conversion between `Date` instances and millisecond timestamps.
|
|
97
108
|
*/
|
package/dist/core/portable.js
CHANGED
|
@@ -277,6 +277,61 @@ export function SetOf(type) {
|
|
|
277
277
|
},
|
|
278
278
|
};
|
|
279
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Creates a portable wrapper for maps with string keys, converting them to and from plain objects.
|
|
282
|
+
* @param value The portable type of the map values.
|
|
283
|
+
*/
|
|
284
|
+
export function RecordOf(type) {
|
|
285
|
+
return {
|
|
286
|
+
[Symbol.hasInstance](instance) {
|
|
287
|
+
return Map[Symbol.hasInstance](instance);
|
|
288
|
+
},
|
|
289
|
+
get name() {
|
|
290
|
+
return `Map<string, ${type.name}>`;
|
|
291
|
+
},
|
|
292
|
+
import(source, name) {
|
|
293
|
+
const record = Object.import(source, name);
|
|
294
|
+
const map = new Map();
|
|
295
|
+
for (const key of Object.keys(record)) {
|
|
296
|
+
map.set(key, type.import(Reflect.get(record, key), `${name}[${JSON.stringify(key)}]`));
|
|
297
|
+
}
|
|
298
|
+
return map;
|
|
299
|
+
},
|
|
300
|
+
export(source) {
|
|
301
|
+
const record = {};
|
|
302
|
+
for (const [key, value] of source) {
|
|
303
|
+
Reflect.set(record, key, type.export(value));
|
|
304
|
+
}
|
|
305
|
+
return record;
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Creates a portable wrapper for maps with arbitrary key and value types, converting them to and from arrays of `[key, value]` tuples.
|
|
311
|
+
* @param key The portable type of the map keys.
|
|
312
|
+
* @param value The portable type of the map values.
|
|
313
|
+
*/
|
|
314
|
+
export function MapOf(typeKey, typeValue) {
|
|
315
|
+
return {
|
|
316
|
+
[Symbol.hasInstance](instance) {
|
|
317
|
+
return Map[Symbol.hasInstance](instance);
|
|
318
|
+
},
|
|
319
|
+
get name() {
|
|
320
|
+
return `Map<${typeKey.name}, ${typeValue.name}>`;
|
|
321
|
+
},
|
|
322
|
+
import(source, name) {
|
|
323
|
+
return new Map(Array.import(source, name).map((item, index) => {
|
|
324
|
+
const tuple = Array.import(item, `${name}[${index}]`);
|
|
325
|
+
const key = typeKey.import(tuple[0], `${name}[${index}][0]`);
|
|
326
|
+
const value = typeValue.import(tuple[1], `${name}[${index}][1]`);
|
|
327
|
+
return [key, value];
|
|
328
|
+
}));
|
|
329
|
+
},
|
|
330
|
+
export(source) {
|
|
331
|
+
return Array.from(source, ([key, value]) => [typeKey.export(key), typeValue.export(value)]);
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
}
|
|
280
335
|
/**
|
|
281
336
|
* A portable adapter that facilitates the conversion between `Date` instances and millisecond timestamps.
|
|
282
337
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/core/portable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable.js","sourceRoot":"","sources":["../../src/core/portable.ts"],"names":[],"mappings":"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"}
|
package/dist/node/index.d.ts
CHANGED
package/dist/node/index.js
CHANGED
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,kBAAkB,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,cAAc,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adaptive-extender",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.11",
|
|
4
4
|
"description": "Adaptive library for JS/TS development environments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/core/index.js",
|
|
@@ -59,8 +59,5 @@
|
|
|
59
59
|
"jsdom": "^27.0.0",
|
|
60
60
|
"typescript": "^5.9.2",
|
|
61
61
|
"vitest": "^3.2.4"
|
|
62
|
-
},
|
|
63
|
-
"dependencies": {
|
|
64
|
-
"dotenv": "^17.2.3"
|
|
65
62
|
}
|
|
66
63
|
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type Constructor, type PortableConstructor } from "./portable.js";
|
|
2
|
-
export interface PortableField<T> extends Constructor {
|
|
3
|
-
import(source: unknown, name: string): T;
|
|
4
|
-
export(source: T): unknown;
|
|
5
|
-
}
|
|
6
|
-
export interface DeferredCallback<T> {
|
|
7
|
-
(): T;
|
|
8
|
-
}
|
|
9
|
-
export declare function Scheme<T>(type: PortableField<T>, name?: string): (target: void, context: ClassFieldDecoratorContext<PortableModel, unknown>) => void;
|
|
10
|
-
export declare function PolymorphicBase<T extends typeof PortableModel>(resolver: DeferredCallback<PortableConstructor[]>): (target: T, context: ClassDecoratorContext) => T;
|
|
11
|
-
export declare function ArrayOf<T>(type: PortableField<T>): PortableField<T[]>;
|
|
12
|
-
export declare function Nullable<T>(type: PortableField<T>): PortableField<T | null>;
|
|
13
|
-
export declare function Optional<T>(type: PortableField<T>): PortableField<T | undefined>;
|
|
14
|
-
export declare abstract class PortableModel {
|
|
15
|
-
static import<T extends typeof PortableModel>(this: T, source: unknown, name: string): InstanceType<T>;
|
|
16
|
-
static export<T extends typeof PortableModel>(this: T, source: InstanceType<T>): unknown;
|
|
17
|
-
}
|
package/dist/core/decorators.js
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import {} from "./portable.js";
|
|
3
|
-
//#region Field descriptor
|
|
4
|
-
class FieldDescriptor {
|
|
5
|
-
#key;
|
|
6
|
-
#association;
|
|
7
|
-
#type;
|
|
8
|
-
constructor(key, association, type) {
|
|
9
|
-
this.#key = key;
|
|
10
|
-
this.#association = association;
|
|
11
|
-
this.#type = type;
|
|
12
|
-
}
|
|
13
|
-
get key() {
|
|
14
|
-
return this.#key;
|
|
15
|
-
}
|
|
16
|
-
get association() {
|
|
17
|
-
return this.#association;
|
|
18
|
-
}
|
|
19
|
-
get type() {
|
|
20
|
-
return this.#type;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
class DeferredResolver {
|
|
24
|
-
#resolver;
|
|
25
|
-
constructor(resolver) {
|
|
26
|
-
this.#resolver = resolver;
|
|
27
|
-
}
|
|
28
|
-
get value() {
|
|
29
|
-
return this.#resolver.call(this);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
//#region Portability metadata
|
|
34
|
-
class PortabilityMetadata {
|
|
35
|
-
static #registry = new Map();
|
|
36
|
-
#model;
|
|
37
|
-
#fields = [];
|
|
38
|
-
#callback = null;
|
|
39
|
-
constructor(model) {
|
|
40
|
-
this.#model = model;
|
|
41
|
-
}
|
|
42
|
-
static register(model) {
|
|
43
|
-
const registry = PortabilityMetadata.#registry;
|
|
44
|
-
if (registry.has(model.name))
|
|
45
|
-
return; /** @todo Throw error */
|
|
46
|
-
const metadata = new PortabilityMetadata(model);
|
|
47
|
-
registry.set(model.name, metadata);
|
|
48
|
-
}
|
|
49
|
-
static read(model) {
|
|
50
|
-
const registry = PortabilityMetadata.#registry;
|
|
51
|
-
const record = registry.get(model.name);
|
|
52
|
-
const metadata = ReferenceError.suppress(record, "asdasdadsa"); /** @todo Write error */
|
|
53
|
-
return metadata;
|
|
54
|
-
}
|
|
55
|
-
get model() {
|
|
56
|
-
return this.#model;
|
|
57
|
-
}
|
|
58
|
-
get fields() {
|
|
59
|
-
return this.#fields;
|
|
60
|
-
}
|
|
61
|
-
get callback() {
|
|
62
|
-
return this.#callback;
|
|
63
|
-
}
|
|
64
|
-
set callback(value) {
|
|
65
|
-
this.#callback = value;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//#endregion
|
|
69
|
-
export function Scheme(type, name) {
|
|
70
|
-
return function (target, context) {
|
|
71
|
-
const key = context.name;
|
|
72
|
-
if (typeof key === "symbol")
|
|
73
|
-
throw new TypeError(""); /** @todo Write error */
|
|
74
|
-
const association = name ?? key;
|
|
75
|
-
context.addInitializer(function () {
|
|
76
|
-
const Type = constructor(this); /** @todo Fix constructor */
|
|
77
|
-
const { fields } = PortabilityMetadata.read(Type);
|
|
78
|
-
fields.push(new FieldDescriptor(key, association, type));
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
export function PolymorphicBase(resolver) {
|
|
83
|
-
return function (target) {
|
|
84
|
-
const metadata = PortabilityMetadata.read(target);
|
|
85
|
-
metadata.callback = resolver;
|
|
86
|
-
return target;
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
export function ArrayOf(type) {
|
|
90
|
-
return class {
|
|
91
|
-
static import(source, name) {
|
|
92
|
-
return Array.import(source, name).map((item, index) => type.import(item, `${name}[${index}]`));
|
|
93
|
-
}
|
|
94
|
-
static export(source) {
|
|
95
|
-
return source.map(item => type.export(item));
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
export function Nullable(type) {
|
|
100
|
-
return class {
|
|
101
|
-
static import(source, name) {
|
|
102
|
-
return Reflect.mapNull(source, source => type.import(source, name));
|
|
103
|
-
}
|
|
104
|
-
static export(source) {
|
|
105
|
-
return Reflect.mapNull(source, source => type.export(source));
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
export function Optional(type) {
|
|
110
|
-
return class {
|
|
111
|
-
static import(source, name) {
|
|
112
|
-
return Reflect.mapUndefined(source, source => type.import(source, name));
|
|
113
|
-
}
|
|
114
|
-
static export(source) {
|
|
115
|
-
return Reflect.mapUndefined(source, source => type.export(source));
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
export class PortableModel {
|
|
120
|
-
static {
|
|
121
|
-
PortabilityMetadata.register(this);
|
|
122
|
-
}
|
|
123
|
-
static import(source, name) {
|
|
124
|
-
const { callback, fields } = PortabilityMetadata.read(this);
|
|
125
|
-
if (callback !== null) {
|
|
126
|
-
const descendants = callback();
|
|
127
|
-
if (descendants.length > 1) {
|
|
128
|
-
const object = Object.import(source, name);
|
|
129
|
-
const typename = String.import(Reflect.get(object, "$type"), `${name}.$type`);
|
|
130
|
-
const subtype = descendants.find(subtype => subtype.name === typename);
|
|
131
|
-
if (subtype === undefined)
|
|
132
|
-
throw new TypeError(`Unknown polymorphic type '${typename}' for '${this.name}'`);
|
|
133
|
-
return subtype.import(source, name);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const object = Object.import(source, name);
|
|
137
|
-
const instance = Reflect.construct(this, []);
|
|
138
|
-
let current = this;
|
|
139
|
-
while (current && current !== PortableModel) {
|
|
140
|
-
for (const { key, association, type } of fields) {
|
|
141
|
-
const rawValue = Reflect.get(object, association);
|
|
142
|
-
const importedValue = type.import(rawValue, `${name}.${association}`);
|
|
143
|
-
Reflect.set(instance, key, importedValue);
|
|
144
|
-
}
|
|
145
|
-
current = Object.getPrototypeOf(current);
|
|
146
|
-
}
|
|
147
|
-
return instance;
|
|
148
|
-
}
|
|
149
|
-
static export(source) {
|
|
150
|
-
const { callback, fields } = PortabilityMetadata.read(this);
|
|
151
|
-
if (callback !== null) {
|
|
152
|
-
const descendants = callback();
|
|
153
|
-
if (descendants.length > 1) {
|
|
154
|
-
const subtype = descendants.find(subtype => source instanceof subtype);
|
|
155
|
-
if (subtype === undefined)
|
|
156
|
-
throw new TypeError(`Unknown polymorphic type '${typename}' for '${this.name}'`);
|
|
157
|
-
return subtype.export(source);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
const result = Object();
|
|
161
|
-
Reflect.set(result, "$type", this.name);
|
|
162
|
-
let current = this;
|
|
163
|
-
while (current && current !== PortableModel) {
|
|
164
|
-
for (const { key, association, type } of fields) {
|
|
165
|
-
const value = Reflect.get(source, key);
|
|
166
|
-
const exportedValue = type.export(value);
|
|
167
|
-
Reflect.set(result, association, exportedValue);
|
|
168
|
-
}
|
|
169
|
-
current = Object.getPrototypeOf(current);
|
|
170
|
-
}
|
|
171
|
-
return result;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/core/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import "../core/index.js";
|
|
2
|
-
import "dotenv/config";
|
|
3
|
-
/**
|
|
4
|
-
* Represents the system environment and provides utility methods to access environment variables.
|
|
5
|
-
*/
|
|
6
|
-
export declare class Environment {
|
|
7
|
-
/**
|
|
8
|
-
* Retrieves a new instance of the Environment class.
|
|
9
|
-
*/
|
|
10
|
-
static get env(): Environment;
|
|
11
|
-
/**
|
|
12
|
-
* Checks if a specific key exists within the environment variables.
|
|
13
|
-
*/
|
|
14
|
-
hasValue(key: string): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Reads and parses the value of a specific environment variable.
|
|
17
|
-
* @throws {ReferenceError} if the key is missing.
|
|
18
|
-
*/
|
|
19
|
-
readValue(key: string): any;
|
|
20
|
-
}
|
package/dist/node/environment.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import "../core/index.js";
|
|
3
|
-
import "dotenv/config";
|
|
4
|
-
//#region Environment
|
|
5
|
-
/**
|
|
6
|
-
* Represents the system environment and provides utility methods to access environment variables.
|
|
7
|
-
*/
|
|
8
|
-
export class Environment {
|
|
9
|
-
/**
|
|
10
|
-
* Retrieves a new instance of the Environment class.
|
|
11
|
-
*/
|
|
12
|
-
static get env() {
|
|
13
|
-
return new Environment();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Checks if a specific key exists within the environment variables.
|
|
17
|
-
*/
|
|
18
|
-
hasValue(key) {
|
|
19
|
-
const { env } = process;
|
|
20
|
-
return (env[key] !== undefined);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Reads and parses the value of a specific environment variable.
|
|
24
|
-
* @throws {ReferenceError} if the key is missing.
|
|
25
|
-
*/
|
|
26
|
-
readValue(key) {
|
|
27
|
-
const { env } = process;
|
|
28
|
-
const text = ReferenceError.suppress(env[key], `Key '${key}' at environment not registered`);
|
|
29
|
-
try {
|
|
30
|
-
return JSON.parse(text);
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
return text;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/node/environment.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,kBAAkB,CAAC;AAC1B,OAAO,eAAe,CAAC;AAEvB,qBAAqB;AACrB;;GAEG;AACH,MAAM,OAAO,WAAW;IACvB;;OAEG;IACH,MAAM,KAAK,GAAG;QACb,OAAO,IAAI,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW;QACnB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAW;QACpB,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACxB,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,iCAAiC,CAAC,CAAC;QAC7F,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;CACD"}
|