@declaro/core 2.0.0-y.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{LICENSE → LICENSE.md} +1 -1
- package/README.md +203 -0
- package/dist/browser/index.js +28 -0
- package/dist/browser/index.js.map +133 -0
- package/dist/browser/scope/index.js +3 -0
- package/dist/browser/scope/index.js.map +9 -0
- package/dist/bun/index.js +19011 -0
- package/dist/bun/index.js.map +132 -0
- package/dist/bun/scope/index.js +4 -0
- package/dist/bun/scope/index.js.map +9 -0
- package/dist/node/index.cjs +19039 -0
- package/dist/node/index.cjs.map +132 -0
- package/dist/node/index.js +19010 -0
- package/dist/node/index.js.map +132 -0
- package/dist/node/scope/index.cjs +69 -0
- package/dist/node/scope/index.cjs.map +9 -0
- package/dist/node/scope/index.js +3 -0
- package/dist/node/scope/index.js.map +9 -0
- package/dist/ts/app/app-context.d.ts +9 -0
- package/dist/ts/app/app-context.d.ts.map +1 -0
- package/dist/ts/app/app-lifecycle.d.ts +6 -0
- package/dist/ts/app/app-lifecycle.d.ts.map +1 -0
- package/dist/ts/app/app.d.ts +24 -0
- package/dist/ts/app/app.d.ts.map +1 -0
- package/dist/{app → ts/app}/index.d.ts +1 -0
- package/dist/ts/app/index.d.ts.map +1 -0
- package/dist/ts/application/create-request-context.d.ts +4 -0
- package/dist/ts/application/create-request-context.d.ts.map +1 -0
- package/dist/ts/application/create-request-context.test.d.ts +2 -0
- package/dist/ts/application/create-request-context.test.d.ts.map +1 -0
- package/dist/ts/application/use-declaro.d.ts +3 -0
- package/dist/ts/application/use-declaro.d.ts.map +1 -0
- package/dist/{auth → ts/auth}/permission-validator.d.ts +1 -0
- package/dist/ts/auth/permission-validator.d.ts.map +1 -0
- package/dist/ts/auth/permission-validator.test.d.ts +2 -0
- package/dist/ts/auth/permission-validator.test.d.ts.map +1 -0
- package/dist/ts/context/async-context.d.ts +54 -0
- package/dist/ts/context/async-context.d.ts.map +1 -0
- package/dist/ts/context/async-context.test.d.ts +2 -0
- package/dist/ts/context/async-context.test.d.ts.map +1 -0
- package/dist/{context → ts/context}/context-consumer.d.ts +4 -0
- package/dist/ts/context/context-consumer.d.ts.map +1 -0
- package/dist/ts/context/context.circular-deps.test.d.ts +2 -0
- package/dist/ts/context/context.circular-deps.test.d.ts.map +1 -0
- package/dist/ts/context/context.d.ts +452 -0
- package/dist/ts/context/context.d.ts.map +1 -0
- package/dist/ts/context/context.test.d.ts +2 -0
- package/dist/ts/context/context.test.d.ts.map +1 -0
- package/dist/ts/context/legacy-context.test.d.ts +2 -0
- package/dist/ts/context/legacy-context.test.d.ts.map +1 -0
- package/dist/{context → ts/context}/validators.d.ts +2 -1
- package/dist/ts/context/validators.d.ts.map +1 -0
- package/dist/ts/dataflow/index.d.ts +2 -0
- package/dist/ts/dataflow/index.d.ts.map +1 -0
- package/dist/ts/dataflow/objects.d.ts +7 -0
- package/dist/ts/dataflow/objects.d.ts.map +1 -0
- package/dist/ts/dataflow/objects.test.d.ts +2 -0
- package/dist/ts/dataflow/objects.test.d.ts.map +1 -0
- package/dist/{errors → ts/errors}/errors.d.ts +16 -3
- package/dist/ts/errors/errors.d.ts.map +1 -0
- package/dist/ts/events/event-manager.d.ts +19 -0
- package/dist/ts/events/event-manager.d.ts.map +1 -0
- package/dist/ts/events/event-manager.spec.d.ts +2 -0
- package/dist/ts/events/event-manager.spec.d.ts.map +1 -0
- package/dist/ts/events/index.d.ts +2 -0
- package/dist/ts/events/index.d.ts.map +1 -0
- package/dist/ts/http/headers.d.ts +21 -0
- package/dist/ts/http/headers.d.ts.map +1 -0
- package/dist/ts/http/headers.spec.d.ts +2 -0
- package/dist/ts/http/headers.spec.d.ts.map +1 -0
- package/dist/ts/http/request-context.d.ts +17 -0
- package/dist/ts/http/request-context.d.ts.map +1 -0
- package/dist/ts/http/request-context.spec.d.ts +2 -0
- package/dist/ts/http/request-context.spec.d.ts.map +1 -0
- package/dist/ts/http/request.d.ts +31 -0
- package/dist/ts/http/request.d.ts.map +1 -0
- package/dist/ts/http/request.spec.d.ts +2 -0
- package/dist/ts/http/request.spec.d.ts.map +1 -0
- package/dist/{http → ts/http}/url.d.ts +5 -4
- package/dist/ts/http/url.d.ts.map +1 -0
- package/dist/ts/http/url.spec.d.ts +2 -0
- package/dist/ts/http/url.spec.d.ts.map +1 -0
- package/dist/ts/index.d.ts +47 -0
- package/dist/ts/index.d.ts.map +1 -0
- package/dist/{pipelines → ts/pipelines}/index.d.ts +1 -0
- package/dist/ts/pipelines/index.d.ts.map +1 -0
- package/dist/{pipelines → ts/pipelines}/pipeline-action.d.ts +1 -0
- package/dist/ts/pipelines/pipeline-action.d.ts.map +1 -0
- package/dist/ts/pipelines/pipeline-action.test.d.ts +2 -0
- package/dist/ts/pipelines/pipeline-action.test.d.ts.map +1 -0
- package/dist/{pipelines → ts/pipelines}/pipeline.d.ts +3 -2
- package/dist/ts/pipelines/pipeline.d.ts.map +1 -0
- package/dist/ts/pipelines/pipeline.test.d.ts +2 -0
- package/dist/ts/pipelines/pipeline.test.d.ts.map +1 -0
- package/dist/ts/schema/json-schema.d.ts +12 -0
- package/dist/ts/schema/json-schema.d.ts.map +1 -0
- package/dist/ts/schema/labels.d.ts +14 -0
- package/dist/ts/schema/labels.d.ts.map +1 -0
- package/dist/ts/schema/model-schema.d.ts +75 -0
- package/dist/ts/schema/model-schema.d.ts.map +1 -0
- package/dist/ts/schema/model-schema.test.d.ts +2 -0
- package/dist/ts/schema/model-schema.test.d.ts.map +1 -0
- package/dist/ts/schema/model.d.ts +35 -0
- package/dist/ts/schema/model.d.ts.map +1 -0
- package/dist/ts/schema/schema-mixin.d.ts +24 -0
- package/dist/ts/schema/schema-mixin.d.ts.map +1 -0
- package/dist/ts/schema/test/mock-model.d.ts +8 -0
- package/dist/ts/schema/test/mock-model.d.ts.map +1 -0
- package/dist/ts/scope/index.d.ts +34 -0
- package/dist/ts/scope/index.d.ts.map +1 -0
- package/dist/ts/shared/utils/action-descriptor.d.ts +28 -0
- package/dist/ts/shared/utils/action-descriptor.d.ts.map +1 -0
- package/dist/ts/shared/utils/action-descriptor.test.d.ts +2 -0
- package/dist/ts/shared/utils/action-descriptor.test.d.ts.map +1 -0
- package/dist/ts/shared/utils/schema-utils.d.ts +3 -0
- package/dist/ts/shared/utils/schema-utils.d.ts.map +1 -0
- package/dist/ts/shared/utils/schema-utils.test.d.ts +2 -0
- package/dist/ts/shared/utils/schema-utils.test.d.ts.map +1 -0
- package/dist/ts/shims/async-local-storage.d.ts +36 -0
- package/dist/ts/shims/async-local-storage.d.ts.map +1 -0
- package/dist/ts/shims/async-local-storage.test.d.ts +2 -0
- package/dist/ts/shims/async-local-storage.test.d.ts.map +1 -0
- package/dist/{timing.d.ts → ts/timing.d.ts} +1 -0
- package/dist/ts/timing.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/arrays.d.ts +1 -0
- package/dist/ts/typescript/arrays.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/baseModel.d.ts +1 -0
- package/dist/ts/typescript/baseModel.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/classes.d.ts +1 -0
- package/dist/ts/typescript/classes.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/constant-manipulation/snake-case.d.ts +1 -0
- package/dist/ts/typescript/constant-manipulation/snake-case.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/errors.d.ts +1 -0
- package/dist/ts/typescript/errors.d.ts.map +1 -0
- package/dist/ts/typescript/fetch.d.ts +3 -0
- package/dist/ts/typescript/fetch.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/generics.d.ts +1 -0
- package/dist/ts/typescript/generics.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/index.d.ts +1 -0
- package/dist/ts/typescript/index.d.ts.map +1 -0
- package/dist/ts/typescript/objects.d.ts +26 -0
- package/dist/ts/typescript/objects.d.ts.map +1 -0
- package/dist/{typescript → ts/typescript}/promises.d.ts +1 -0
- package/dist/ts/typescript/promises.d.ts.map +1 -0
- package/dist/{validation → ts/validation}/index.d.ts +1 -0
- package/dist/ts/validation/index.d.ts.map +1 -0
- package/dist/{validation → ts/validation}/validation.d.ts +1 -0
- package/dist/ts/validation/validation.d.ts.map +1 -0
- package/dist/{validation → ts/validation}/validator.d.ts +1 -0
- package/dist/ts/validation/validator.d.ts.map +1 -0
- package/dist/ts/validation/validator.test.d.ts +2 -0
- package/dist/ts/validation/validator.test.d.ts.map +1 -0
- package/package.json +46 -13
- package/src/app/app-context.ts +4 -5
- package/src/app/app-lifecycle.ts +4 -3
- package/src/app/app.ts +7 -5
- package/src/application/create-request-context.test.ts +345 -0
- package/src/application/create-request-context.ts +19 -0
- package/src/application/use-declaro.ts +27 -0
- package/src/auth/permission-validator.test.ts +238 -2
- package/src/auth/permission-validator.ts +3 -3
- package/src/context/async-context.test.ts +348 -0
- package/src/context/async-context.ts +129 -0
- package/src/context/context-consumer.ts +4 -4
- package/src/context/context.circular-deps.test.ts +1047 -0
- package/src/context/context.test.ts +420 -3
- package/src/context/context.ts +590 -87
- package/src/context/legacy-context.test.ts +9 -9
- package/src/dataflow/objects.test.ts +7 -7
- package/src/dataflow/objects.ts +10 -9
- package/src/errors/errors.ts +19 -3
- package/src/events/event-manager.spec.ts +129 -0
- package/src/events/event-manager.ts +25 -14
- package/src/http/headers.ts +17 -2
- package/src/http/request-context.ts +24 -15
- package/src/http/request.ts +27 -6
- package/src/http/url.ts +3 -3
- package/src/index.ts +34 -3
- package/src/pipelines/pipeline.test.ts +11 -9
- package/src/schema/json-schema.ts +16 -0
- package/src/schema/labels.ts +23 -23
- package/src/schema/model-schema.test.ts +282 -0
- package/src/schema/model-schema.ts +197 -0
- package/src/schema/model.ts +143 -0
- package/src/schema/schema-mixin.ts +51 -0
- package/src/schema/test/mock-model.ts +19 -0
- package/src/scope/index.ts +33 -0
- package/src/shared/utils/action-descriptor.test.ts +182 -0
- package/src/shared/utils/action-descriptor.ts +102 -0
- package/src/shared/utils/schema-utils.test.ts +33 -0
- package/src/shared/utils/schema-utils.ts +17 -0
- package/src/shims/async-local-storage.test.ts +258 -0
- package/src/shims/async-local-storage.ts +82 -0
- package/src/typescript/objects.ts +32 -1
- package/src/validation/validator.test.ts +12 -20
- package/dist/app/app-context.d.ts +0 -8
- package/dist/app/app-lifecycle.d.ts +0 -4
- package/dist/app/app.d.ts +0 -22
- package/dist/auth/permission-validator.test.d.ts +0 -1
- package/dist/context/context.d.ts +0 -161
- package/dist/context/context.test.d.ts +0 -1
- package/dist/context/legacy-context.test.d.ts +0 -1
- package/dist/dataflow/index.d.ts +0 -1
- package/dist/dataflow/objects.d.ts +0 -5
- package/dist/dataflow/objects.test.d.ts +0 -1
- package/dist/events/event-manager.d.ts +0 -16
- package/dist/events/event-manager.spec.d.ts +0 -1
- package/dist/events/index.d.ts +0 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/ucfirst.d.ts +0 -1
- package/dist/http/headers.d.ts +0 -4
- package/dist/http/headers.spec.d.ts +0 -1
- package/dist/http/request-context.d.ts +0 -12
- package/dist/http/request-context.spec.d.ts +0 -1
- package/dist/http/request.d.ts +0 -8
- package/dist/http/request.spec.d.ts +0 -1
- package/dist/http/url.spec.d.ts +0 -1
- package/dist/index.d.ts +0 -19
- package/dist/pipelines/pipeline-action.test.d.ts +0 -1
- package/dist/pipelines/pipeline.test.d.ts +0 -1
- package/dist/pkg.cjs +0 -30
- package/dist/pkg.mjs +0 -56612
- package/dist/schema/application.d.ts +0 -83
- package/dist/schema/application.test.d.ts +0 -1
- package/dist/schema/define-model.d.ts +0 -10
- package/dist/schema/define-model.test.d.ts +0 -1
- package/dist/schema/formats.d.ts +0 -10
- package/dist/schema/index.d.ts +0 -10
- package/dist/schema/labels.d.ts +0 -13
- package/dist/schema/labels.test.d.ts +0 -1
- package/dist/schema/module.d.ts +0 -7
- package/dist/schema/module.test.d.ts +0 -1
- package/dist/schema/properties.d.ts +0 -19
- package/dist/schema/response.d.ts +0 -31
- package/dist/schema/response.test.d.ts +0 -1
- package/dist/schema/supported-types.d.ts +0 -12
- package/dist/schema/supported-types.test.d.ts +0 -1
- package/dist/schema/transform-model.d.ts +0 -4
- package/dist/schema/transform-model.test.d.ts +0 -1
- package/dist/schema/types.d.ts +0 -95
- package/dist/schema/types.test.d.ts +0 -1
- package/dist/typescript/fetch.d.ts +0 -2
- package/dist/typescript/objects.d.ts +0 -12
- package/dist/validation/validator.test.d.ts +0 -1
- package/src/helpers/index.ts +0 -1
- package/src/helpers/ucfirst.ts +0 -3
- package/src/schema/application.test.ts +0 -286
- package/src/schema/application.ts +0 -150
- package/src/schema/define-model.test.ts +0 -81
- package/src/schema/define-model.ts +0 -50
- package/src/schema/formats.ts +0 -23
- package/src/schema/index.ts +0 -10
- package/src/schema/labels.test.ts +0 -60
- package/src/schema/module.test.ts +0 -39
- package/src/schema/module.ts +0 -6
- package/src/schema/properties.ts +0 -40
- package/src/schema/response.test.ts +0 -101
- package/src/schema/response.ts +0 -93
- package/src/schema/supported-types.test.ts +0 -20
- package/src/schema/supported-types.ts +0 -15
- package/src/schema/transform-model.test.ts +0 -31
- package/src/schema/transform-model.ts +0 -24
- package/src/schema/types.test.ts +0 -28
- package/src/schema/types.ts +0 -163
- package/tsconfig.json +0 -11
- package/vite.config.ts +0 -24
package/{LICENSE → LICENSE.md}
RENAMED
package/README.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Core Library
|
|
2
|
+
|
|
3
|
+
The Core Library is a foundational module designed to provide essential utilities and abstractions for building scalable and maintainable applications. It includes features such as event management, validation, dependency injection, and more.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Event Management**: A robust event manager for handling custom events and listeners.
|
|
8
|
+
- **Validation**: Flexible and extensible validation utilities for synchronous and asynchronous use cases.
|
|
9
|
+
- **Dependency Injection**: A powerful context-based dependency injection system with support for factories, singletons, and eager initialization.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
To install the Core Library, use npm or yarn:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @declaro/core
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
or
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @declaro/core
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
### Event Management
|
|
28
|
+
|
|
29
|
+
The `EventManager` class allows you to manage custom events and listeners.
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { EventManager, IEvent } from '@declaro/core'
|
|
33
|
+
|
|
34
|
+
class MyEvent implements IEvent {
|
|
35
|
+
constructor(public readonly type: string) {}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const eventManager = new EventManager<MyEvent>()
|
|
39
|
+
|
|
40
|
+
// Add a listener
|
|
41
|
+
const removeListener = eventManager.on('my-event', (event) => {
|
|
42
|
+
console.log(`Event received: ${event.type}`)
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
// Emit an event
|
|
46
|
+
const event = new MyEvent('my-event')
|
|
47
|
+
eventManager.emit(event)
|
|
48
|
+
|
|
49
|
+
// Remove the listener
|
|
50
|
+
removeListener()
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Validation
|
|
54
|
+
|
|
55
|
+
The `validate` and `validateAny` functions provide a flexible way to validate data.
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { validate } from '@declaro/core'
|
|
59
|
+
|
|
60
|
+
const value = { message: 'Hello World' }
|
|
61
|
+
|
|
62
|
+
const result = await validate(value, (val) => val.message === 'Hello World')
|
|
63
|
+
|
|
64
|
+
if (result.valid) {
|
|
65
|
+
console.log('Validation passed!')
|
|
66
|
+
} else {
|
|
67
|
+
console.log('Validation failed!')
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Dependency Injection
|
|
72
|
+
|
|
73
|
+
The `Context` class provides a powerful dependency injection system.
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
import { Context } from '@declaro/core'
|
|
77
|
+
|
|
78
|
+
type AppScope = {
|
|
79
|
+
foo: string
|
|
80
|
+
bar: number
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const context = new Context<AppScope>()
|
|
84
|
+
|
|
85
|
+
context.registerValue('foo', 'Hello')
|
|
86
|
+
context.registerValue('bar', 42)
|
|
87
|
+
|
|
88
|
+
const foo = context.resolve('foo')
|
|
89
|
+
const bar = context.resolve('bar')
|
|
90
|
+
|
|
91
|
+
console.log(foo) // Output: Hello
|
|
92
|
+
console.log(bar) // Output: 42
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Setting Up and Resolving Factories, Classes, and Async Factories
|
|
96
|
+
|
|
97
|
+
The Core Library's `Context` class provides a powerful dependency injection system that supports factories, classes, and async factories. Below are examples of how to set up and resolve these dependencies.
|
|
98
|
+
|
|
99
|
+
### Registering and Resolving Factories
|
|
100
|
+
|
|
101
|
+
Factories are functions that produce values. You can register a factory with the `Context` class and resolve it when needed.
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { Context } from '@declaro/core'
|
|
105
|
+
|
|
106
|
+
type AppScope = {
|
|
107
|
+
greeting: string
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const context = new Context<AppScope>()
|
|
111
|
+
|
|
112
|
+
context.registerFactory('greeting', (name: string) => `Hello, ${name}!`, ['name'])
|
|
113
|
+
|
|
114
|
+
context.registerValue('name', 'World')
|
|
115
|
+
|
|
116
|
+
const greeting = context.resolve('greeting')
|
|
117
|
+
console.log(greeting) // Output: Hello, World!
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Registering and Resolving Classes
|
|
121
|
+
|
|
122
|
+
Classes can also be registered as dependencies. The `Context` class will handle their instantiation and dependency injection.
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
import { Context } from '@declaro/core'
|
|
126
|
+
|
|
127
|
+
class Greeter {
|
|
128
|
+
constructor(public name: string) {}
|
|
129
|
+
|
|
130
|
+
greet() {
|
|
131
|
+
return `Hello, ${this.name}!`
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
type AppScope = {
|
|
136
|
+
greeter: Greeter
|
|
137
|
+
name: string
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const context = new Context<AppScope>()
|
|
141
|
+
|
|
142
|
+
context.registerValue('name', 'World')
|
|
143
|
+
context.registerClass('greeter', Greeter, ['name'])
|
|
144
|
+
|
|
145
|
+
const greeter = context.resolve('greeter')
|
|
146
|
+
console.log(greeter.greet()) // Output: Hello, World!
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Registering and Resolving Async Factories
|
|
150
|
+
|
|
151
|
+
Async factories are useful for dependencies that require asynchronous initialization.
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
import { Context } from '@declaro/core'
|
|
155
|
+
|
|
156
|
+
type AppScope = {
|
|
157
|
+
asyncGreeting: Promise<string>
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const context = new Context<AppScope>()
|
|
161
|
+
|
|
162
|
+
context.registerAsyncFactory(
|
|
163
|
+
'asyncGreeting',
|
|
164
|
+
async (name: string) => {
|
|
165
|
+
await new Promise((resolve) => setTimeout(resolve, 1000))
|
|
166
|
+
return `Hello, ${name}!`
|
|
167
|
+
},
|
|
168
|
+
['name'],
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
context.registerValue('name', 'World')
|
|
172
|
+
;(async () => {
|
|
173
|
+
const asyncGreeting = await context.resolve('asyncGreeting')
|
|
174
|
+
console.log(asyncGreeting) // Output: Hello, World!
|
|
175
|
+
})()
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Singleton and Eager Initialization
|
|
179
|
+
|
|
180
|
+
You can configure factories and classes to be singletons or eagerly initialized. Singletons are instantiated only once, while eager initialization ensures that dependencies are proactively created and cached when calling `initializeEagerDependencies`, which is typically called as a part of your app's setup (or test suite setup).
|
|
181
|
+
|
|
182
|
+
```typescript
|
|
183
|
+
context.registerFactory('singletonFactory', () => 'Singleton Value', [], { singleton: true })
|
|
184
|
+
context.registerClass('eagerClass', SomeClass, [], { eager: true })
|
|
185
|
+
|
|
186
|
+
await context.initializeEagerDependencies()
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Testing
|
|
190
|
+
|
|
191
|
+
The Core Library includes comprehensive tests to ensure reliability. To run the tests, use the following command:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
yarn test
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Contributing
|
|
198
|
+
|
|
199
|
+
Contributions are welcome! Please follow the guidelines in the [CONTRIBUTING.md](../../CONTRIBUTING.md) file.
|
|
200
|
+
|
|
201
|
+
## License
|
|
202
|
+
|
|
203
|
+
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|