yummies 3.0.8 → 3.0.10
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 +5 -0
- package/complex/index.d.ts +2 -0
- package/complex/index.d.ts.map +1 -0
- package/complex/index.js +1 -0
- package/complex/modules-factory.d.ts +49 -0
- package/complex/modules-factory.d.ts.map +1 -0
- package/complex/modules-factory.js +50 -0
- package/id.d.ts +1 -0
- package/id.d.ts.map +1 -1
- package/id.js +3 -0
- package/package.json +11 -1
- package/utility-types.d.ts +1 -0
- package/utils/types.d.ts +1 -0
- package/utils/types.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/complex/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
package/complex/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './modules-factory';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { AllPropertiesOptional, AnyObject, Class, EmptyObject } from '../utils/types';
|
|
2
|
+
type ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {
|
|
3
|
+
factory<TInstance, TDeps extends TPredefinedDeps>(moduleClass: Class<TInstance, [TDeps]>, deps: TDeps): TInstance;
|
|
4
|
+
} & (TPredefinedDeps extends EmptyObject ? {
|
|
5
|
+
deps?: TPredefinedDeps;
|
|
6
|
+
} : {
|
|
7
|
+
deps: TPredefinedDeps;
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.
|
|
11
|
+
* Он использует объект конфигурации для определения того, как эти экземпляры создаются.
|
|
12
|
+
*
|
|
13
|
+
* Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр
|
|
14
|
+
*
|
|
15
|
+
* @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```
|
|
19
|
+
* const factory = new ModulesFactory({
|
|
20
|
+
* factory: (MyClass, deps) => new MyClass(deps),
|
|
21
|
+
* deps: { someDependency: new Dependency() }
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {
|
|
28
|
+
private config;
|
|
29
|
+
/**
|
|
30
|
+
* Создает новый экземпляр `ModulesFactory`.
|
|
31
|
+
*
|
|
32
|
+
* @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.
|
|
33
|
+
*/
|
|
34
|
+
constructor(config: ModuleLoaderConfig<TPredefinedDeps>);
|
|
35
|
+
/**
|
|
36
|
+
* Создает экземпляр указанного класса, внедряя необходимые зависимости.
|
|
37
|
+
*
|
|
38
|
+
* @template TInstance - Тип создаваемого экземпляра.
|
|
39
|
+
* @template TDeps - Тип зависимостей, необходимых для экземпляра.
|
|
40
|
+
*
|
|
41
|
+
* @param Constructor - Конструктор класса для создаваемого экземпляра.
|
|
42
|
+
* @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.
|
|
43
|
+
*
|
|
44
|
+
* @returns Экземпляр указанного класса с внедренными зависимостями.
|
|
45
|
+
*/
|
|
46
|
+
create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(Constructor: Class<TInstance, [TDeps]>, ...args: AllPropertiesOptional<Omit<TDeps, keyof TPredefinedDeps>> extends true ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>] : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]): TInstance;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=modules-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules-factory.d.ts","sourceRoot":"","sources":["../../src/complex/modules-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,KAAK,EACL,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,KAAK,kBAAkB,CAAC,eAAe,SAAS,SAAS,GAAG,WAAW,IAAI;IACzE,OAAO,CAAC,SAAS,EAAE,KAAK,SAAS,eAAe,EAC9C,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,EACtC,IAAI,EAAE,KAAK,GACV,SAAS,CAAC;CAEd,GAAG,CAAC,eAAe,SAAS,WAAW,GACpC;IAAE,IAAI,CAAC,EAAE,eAAe,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,cAAc,CAAC,eAAe,SAAS,SAAS,GAAG,WAAW;IAM7D,OAAO,CAAC,MAAM;IAL1B;;;;OAIG;gBACiB,MAAM,EAAE,kBAAkB,CAAC,eAAe,CAAC;IAE/D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,SAAS,EAAE,KAAK,SAAS,eAAe,GAAG,eAAe,EAC/D,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,EACtC,GAAG,IAAI,EAAE,qBAAqB,CAC5B,IAAI,CAAC,KAAK,EAAE,MAAM,eAAe,CAAC,CACnC,SAAS,IAAI,GACV,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,eAAe,CAAC,CAAC,GAChD,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,eAAe,CAAC,CAAC;CAOtD"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.
|
|
3
|
+
* Он использует объект конфигурации для определения того, как эти экземпляры создаются.
|
|
4
|
+
*
|
|
5
|
+
* Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр
|
|
6
|
+
*
|
|
7
|
+
* @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```
|
|
11
|
+
* const factory = new ModulesFactory({
|
|
12
|
+
* factory: (MyClass, deps) => new MyClass(deps),
|
|
13
|
+
* deps: { someDependency: new Dependency() }
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class ModulesFactory {
|
|
20
|
+
/**
|
|
21
|
+
* Создает новый экземпляр `ModulesFactory`.
|
|
22
|
+
*
|
|
23
|
+
* @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.
|
|
24
|
+
*/
|
|
25
|
+
constructor(config) {
|
|
26
|
+
Object.defineProperty(this, "config", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true,
|
|
30
|
+
value: config
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Создает экземпляр указанного класса, внедряя необходимые зависимости.
|
|
35
|
+
*
|
|
36
|
+
* @template TInstance - Тип создаваемого экземпляра.
|
|
37
|
+
* @template TDeps - Тип зависимостей, необходимых для экземпляра.
|
|
38
|
+
*
|
|
39
|
+
* @param Constructor - Конструктор класса для создаваемого экземпляра.
|
|
40
|
+
* @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.
|
|
41
|
+
*
|
|
42
|
+
* @returns Экземпляр указанного класса с внедренными зависимостями.
|
|
43
|
+
*/
|
|
44
|
+
create(Constructor, ...args) {
|
|
45
|
+
return this.config.factory(Constructor, {
|
|
46
|
+
...this.config.deps,
|
|
47
|
+
...args[0],
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
package/id.d.ts
CHANGED
package/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,eAAO,MAAM,UAAU,2BAA8B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,2BAA8B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,UAAU,MAAM,iBAK1D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,cAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,eAAO,MAAM,UAAU,2BAA8B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,2BAA8B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,UAAU,MAAM,iBAK1D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,cAAmC,CAAC;AAExE,eAAO,MAAM,oBAAoB,cAEoB,CAAC"}
|
package/id.js
CHANGED
|
@@ -63,3 +63,6 @@ export const createLinearNumericIdGenerator = (size = 9) => {
|
|
|
63
63
|
*
|
|
64
64
|
*/
|
|
65
65
|
export const generateLinearNumericId = createLinearNumericIdGenerator();
|
|
66
|
+
export const generateStackBasedId = () =>
|
|
67
|
+
// eslint-disable-next-line unicorn/error-message
|
|
68
|
+
new Error().stack.split('\n').slice(1, 4).join('');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yummies",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.10",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": "js2me",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,6 +38,16 @@
|
|
|
38
38
|
"default": "./async.js",
|
|
39
39
|
"types": "./async.d.ts"
|
|
40
40
|
},
|
|
41
|
+
"./complex": {
|
|
42
|
+
"import": "./complex/index.js",
|
|
43
|
+
"default": "./complex/index.js",
|
|
44
|
+
"types": "./complex/index.d.ts"
|
|
45
|
+
},
|
|
46
|
+
"./complex/modules-factory": {
|
|
47
|
+
"import": "./complex/modules-factory.js",
|
|
48
|
+
"default": "./complex/modules-factory.js",
|
|
49
|
+
"types": "./complex/modules-factory.d.ts"
|
|
50
|
+
},
|
|
41
51
|
"./cookie": {
|
|
42
52
|
"import": "./cookie.js",
|
|
43
53
|
"default": "./cookie.js",
|
package/utility-types.d.ts
CHANGED
|
@@ -41,4 +41,5 @@ type RenameKey<TObject, TOldKey extends keyof TObject, TNewKey extends string> =
|
|
|
41
41
|
} : {
|
|
42
42
|
[K in TNewKey]: TObject[TOldKey];
|
|
43
43
|
};
|
|
44
|
+
type IsObjectEmpty<T extends AnyObject> = T extends EmptyObject ? true : keyof T extends never ? true : never;
|
|
44
45
|
//# sourceMappingURL=types.d.ts.map
|
package/utils/types.d.ts
CHANGED
|
@@ -41,4 +41,5 @@ export type RenameKey<TObject, TOldKey extends keyof TObject, TNewKey extends st
|
|
|
41
41
|
} : {
|
|
42
42
|
[K in TNewKey]: TObject[TOldKey];
|
|
43
43
|
};
|
|
44
|
+
export type IsObjectEmpty<T extends AnyObject> = T extends EmptyObject ? true : keyof T extends never ? true : never;
|
|
44
45
|
//# sourceMappingURL=types.d.ts.map
|
package/utils/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
|