@lee-zg/melange 1.2.2 → 1.2.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.
- package/README.md +257 -256
- package/dist/{chunk-YZVCK6VZ.cjs → chunk-AAWWAPSG.cjs} +1425 -2
- package/dist/{chunk-3RM45M64.js → chunk-R3BPDZ3R.js} +1388 -3
- package/dist/container-B8n-ok8M.d.cts +201 -0
- package/dist/container-n8Q2Xa_y.d.ts +201 -0
- package/dist/core/index.d.cts +3 -200
- package/dist/core/index.d.ts +3 -200
- package/dist/generator-CEj5qxFh.d.cts +1752 -0
- package/dist/generator-D7ofMxfc.d.ts +1752 -0
- package/dist/index.cjs +138 -34
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -2
- package/dist/plugins/index.cjs +162 -9
- package/dist/plugins/index.d.cts +108 -755
- package/dist/plugins/index.d.ts +108 -755
- package/dist/plugins/index.js +2 -1
- package/package.json +143 -135
- package/dist/chunk-3RM45M64.js.map +0 -1
- package/dist/chunk-7QVYU63E.js.map +0 -1
- package/dist/chunk-BEY4UAYF.cjs.map +0 -1
- package/dist/chunk-GXFWPL5M.js.map +0 -1
- package/dist/chunk-GZBY4BUP.js.map +0 -1
- package/dist/chunk-ILNGTDQ4.js.map +0 -1
- package/dist/chunk-JLBTZPBY.cjs.map +0 -1
- package/dist/chunk-PK6SKIKE.cjs.map +0 -1
- package/dist/chunk-UYJUSNDI.cjs.map +0 -1
- package/dist/chunk-YZVCK6VZ.cjs.map +0 -1
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.js.map +0 -1
- package/dist/fp/index.cjs.map +0 -1
- package/dist/fp/index.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/plugins/index.cjs.map +0 -1
- package/dist/plugins/index.js.map +0 -1
- package/dist/utils/index.cjs.map +0 -1
- package/dist/utils/index.js.map +0 -1
package/dist/core/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { v as EventHandler, x as Subscription
|
|
1
|
+
import { v as EventHandler, x as Subscription } from '../types-BtOUCLB-.js';
|
|
2
|
+
export { C as Container, F as Factory, a as Inject, I as Injectable, L as Lifecycle, S as Singleton, T as Token, g as globalContainer } from '../container-n8Q2Xa_y.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* @fileoverview 用于发布/订阅模式的事件发射器类
|
|
@@ -125,204 +126,6 @@ declare class EventEmitter<Events extends EventMap = EventMap> {
|
|
|
125
126
|
private addListener;
|
|
126
127
|
}
|
|
127
128
|
|
|
128
|
-
/**
|
|
129
|
-
* @fileoverview 依赖注入容器
|
|
130
|
-
* @module melange/core/container
|
|
131
|
-
* @description 提供一个简单而强大的依赖注入容器
|
|
132
|
-
* 支持单例、工厂函数和自动解析。
|
|
133
|
-
*/
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* 用于标识依赖项的令牌类型。
|
|
137
|
-
* 可以是字符串、符号或类构造函数。
|
|
138
|
-
*/
|
|
139
|
-
type Token<T = unknown> = string | symbol | Constructor<T>;
|
|
140
|
-
/**
|
|
141
|
-
* 创建实例的工厂函数类型。
|
|
142
|
-
*/
|
|
143
|
-
type Factory<T> = (container: Container) => T;
|
|
144
|
-
/**
|
|
145
|
-
* 依赖注册的生命周期选项。
|
|
146
|
-
*/
|
|
147
|
-
declare enum Lifecycle {
|
|
148
|
-
/** 每次都创建新实例 */
|
|
149
|
-
Transient = "transient",
|
|
150
|
-
/** 创建单个实例并重复使用 */
|
|
151
|
-
Singleton = "singleton"
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* 依赖注入容器。
|
|
155
|
-
* 管理依赖项的生命周期和解析。
|
|
156
|
-
*
|
|
157
|
-
* @description
|
|
158
|
-
* Container 类提供控制反转 (IoC) 功能,
|
|
159
|
-
* 允许您通过在运行时注册和解析依赖项来解耦代码。
|
|
160
|
-
*
|
|
161
|
-
* @example
|
|
162
|
-
* ```typescript
|
|
163
|
-
* // 创建容器
|
|
164
|
-
* const container = new Container();
|
|
165
|
-
*
|
|
166
|
-
* // 注册类
|
|
167
|
-
* container.register('logger', () => new ConsoleLogger());
|
|
168
|
-
*
|
|
169
|
-
* // 注册单例
|
|
170
|
-
* container.registerSingleton('config', () => loadConfig());
|
|
171
|
-
*
|
|
172
|
-
* // 解析依赖项
|
|
173
|
-
* const logger = container.resolve<Logger>('logger');
|
|
174
|
-
*
|
|
175
|
-
* // 使用装饰器
|
|
176
|
-
* @Injectable()
|
|
177
|
-
* class UserService {
|
|
178
|
-
* constructor(@Inject('logger') private logger: Logger) {}
|
|
179
|
-
* }
|
|
180
|
-
* container.registerClass(UserService);
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
declare class Container {
|
|
184
|
-
/**
|
|
185
|
-
* 已注册依赖项的映射
|
|
186
|
-
*/
|
|
187
|
-
private registrations;
|
|
188
|
-
/**
|
|
189
|
-
* 用于分层解析的父容器
|
|
190
|
-
*/
|
|
191
|
-
private parent;
|
|
192
|
-
/**
|
|
193
|
-
* 创建新的容器实例。
|
|
194
|
-
*
|
|
195
|
-
* @param parent - 用于分层解析的可选父容器
|
|
196
|
-
*/
|
|
197
|
-
constructor(parent?: Container);
|
|
198
|
-
/**
|
|
199
|
-
* 使用工厂函数注册依赖项。
|
|
200
|
-
*
|
|
201
|
-
* @template T - 依赖项类型
|
|
202
|
-
* @param token - 用于标识依赖项的令牌
|
|
203
|
-
* @param factory - 创建依赖项的工厂函数
|
|
204
|
-
* @param lifecycle - 依赖项的生命周期(默认:Transient)
|
|
205
|
-
* @returns 容器实例,用于链式调用
|
|
206
|
-
*/
|
|
207
|
-
register<T>(token: Token<T>, factory: Factory<T>, lifecycle?: Lifecycle): this;
|
|
208
|
-
/**
|
|
209
|
-
* 注册单例依赖项。
|
|
210
|
-
* 工厂函数只会被调用一次,之后返回相同的实例。
|
|
211
|
-
*
|
|
212
|
-
* @template T - 依赖项类型
|
|
213
|
-
* @param token - 用于标识依赖项的令牌
|
|
214
|
-
* @param factory - 创建依赖项的工厂函数
|
|
215
|
-
* @returns 容器实例,用于链式调用
|
|
216
|
-
*/
|
|
217
|
-
registerSingleton<T>(token: Token<T>, factory: Factory<T>): this;
|
|
218
|
-
/**
|
|
219
|
-
* 直接将值注册为单例。
|
|
220
|
-
*
|
|
221
|
-
* @template T - 值类型
|
|
222
|
-
* @param token - 用于标识依赖项的令牌
|
|
223
|
-
* @param value - 要注册的值
|
|
224
|
-
* @returns 容器实例,用于链式调用
|
|
225
|
-
*/
|
|
226
|
-
registerValue<T>(token: Token<T>, value: T): this;
|
|
227
|
-
/**
|
|
228
|
-
* 将类注册为依赖项。
|
|
229
|
-
* 类的实例化会自动解析其依赖项。
|
|
230
|
-
*
|
|
231
|
-
* @template T - 类类型
|
|
232
|
-
* @param ClassConstructor - 要注册的类构造函数
|
|
233
|
-
* @param lifecycle - 依赖项的生命周期(默认:Transient)
|
|
234
|
-
* @returns 容器实例,用于链式调用
|
|
235
|
-
*/
|
|
236
|
-
registerClass<T extends object>(ClassConstructor: Constructor<T>, lifecycle?: Lifecycle): this;
|
|
237
|
-
/**
|
|
238
|
-
* 通过令牌解析依赖项。
|
|
239
|
-
*
|
|
240
|
-
* @template T - 依赖项类型
|
|
241
|
-
* @param token - 标识依赖项的令牌
|
|
242
|
-
* @returns 已解析的依赖项
|
|
243
|
-
* @throws Error 如果依赖项未注册
|
|
244
|
-
*/
|
|
245
|
-
resolve<T>(token: Token<T>): T;
|
|
246
|
-
/**
|
|
247
|
-
* 检查依赖项是否已注册。
|
|
248
|
-
*
|
|
249
|
-
* @param token - 要检查的令牌
|
|
250
|
-
* @returns 如果依赖项已注册则返回 true
|
|
251
|
-
*/
|
|
252
|
-
has(token: Token): boolean;
|
|
253
|
-
/**
|
|
254
|
-
* 移除依赖项注册。
|
|
255
|
-
*
|
|
256
|
-
* @param token - 要移除的令牌
|
|
257
|
-
* @returns 如果注册已被移除则返回 true
|
|
258
|
-
*/
|
|
259
|
-
unregister(token: Token): boolean;
|
|
260
|
-
/**
|
|
261
|
-
* 清除所有注册。
|
|
262
|
-
*/
|
|
263
|
-
clear(): void;
|
|
264
|
-
/**
|
|
265
|
-
* 创建子容器。
|
|
266
|
-
* 子容器从父容器继承注册。
|
|
267
|
-
*
|
|
268
|
-
* @returns 新的子容器
|
|
269
|
-
*/
|
|
270
|
-
createChild(): Container;
|
|
271
|
-
/**
|
|
272
|
-
* 获取类的注入元数据。
|
|
273
|
-
*/
|
|
274
|
-
private getInjectMetadata;
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* 为了方便而提供的全局容器实例。
|
|
278
|
-
*/
|
|
279
|
-
declare const globalContainer: Container;
|
|
280
|
-
/**
|
|
281
|
-
* 将类标记为可注入。
|
|
282
|
-
* 自动依赖解析所必需。
|
|
283
|
-
*
|
|
284
|
-
* @example
|
|
285
|
-
* ```typescript
|
|
286
|
-
* @Injectable()
|
|
287
|
-
* class UserService {
|
|
288
|
-
* constructor(private userRepo: UserRepository) {}
|
|
289
|
-
* }
|
|
290
|
-
* ```
|
|
291
|
-
*
|
|
292
|
-
* @returns 类装饰器
|
|
293
|
-
*/
|
|
294
|
-
declare function Injectable(): ClassDecorator;
|
|
295
|
-
/**
|
|
296
|
-
* 标记构造函数参数以进行注入。
|
|
297
|
-
*
|
|
298
|
-
* @example
|
|
299
|
-
* ```typescript
|
|
300
|
-
* @Injectable()
|
|
301
|
-
* class UserService {
|
|
302
|
-
* constructor(@Inject('logger') private logger: Logger) {}
|
|
303
|
-
* }
|
|
304
|
-
* ```
|
|
305
|
-
*
|
|
306
|
-
* @param token - 要注入的令牌
|
|
307
|
-
* @returns 参数装饰器
|
|
308
|
-
*/
|
|
309
|
-
declare function Inject(token: Token): ParameterDecorator;
|
|
310
|
-
/**
|
|
311
|
-
* 将类标记为单例。
|
|
312
|
-
* 结合 @Injectable 和单例生命周期。
|
|
313
|
-
*
|
|
314
|
-
* @example
|
|
315
|
-
* ```typescript
|
|
316
|
-
* @Singleton()
|
|
317
|
-
* class ConfigService {
|
|
318
|
-
* // 只会存在一个实例
|
|
319
|
-
* }
|
|
320
|
-
* ```
|
|
321
|
-
*
|
|
322
|
-
* @returns 类装饰器
|
|
323
|
-
*/
|
|
324
|
-
declare function Singleton(): ClassDecorator;
|
|
325
|
-
|
|
326
129
|
/**
|
|
327
130
|
* @fileoverview 方法和类装饰器
|
|
328
131
|
* @module melange/core/decorators
|
|
@@ -715,4 +518,4 @@ declare function toDisposable(dispose: () => void): IDisposable;
|
|
|
715
518
|
*/
|
|
716
519
|
declare function combineDisposables(...disposables: IDisposable[]): IDisposable;
|
|
717
520
|
|
|
718
|
-
export { Bind,
|
|
521
|
+
export { Bind, Debounce, Deprecated, Disposable, DisposableStore, EventEmitter, type EventMap, Frozen, type IDisposable, Log, Memoize, Retry, Sealed, Throttle, Timeout, Validate, combineDisposables, toDisposable };
|