yummies 6.0.0 → 6.1.0
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/complex.cjs +42 -0
- package/complex.cjs.map +1 -1
- package/complex.d.ts +39 -2
- package/complex.js +43 -1
- package/complex.js.map +1 -1
- package/package.json +61 -31
package/complex.cjs
CHANGED
|
@@ -82,8 +82,50 @@ class ModulesFactory {
|
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
+
class PubSub {
|
|
86
|
+
/**
|
|
87
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
88
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
89
|
+
*/
|
|
90
|
+
data = null;
|
|
91
|
+
/**
|
|
92
|
+
* An array of subscriber functions (sub) that will be called
|
|
93
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
94
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
95
|
+
*/
|
|
96
|
+
subs = [];
|
|
97
|
+
/**
|
|
98
|
+
* A function that is used to publish an event. When this function is called,
|
|
99
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
100
|
+
*/
|
|
101
|
+
pub(...args) {
|
|
102
|
+
this.data = args;
|
|
103
|
+
this.subs.forEach((sub) => {
|
|
104
|
+
sub(...args);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
109
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
110
|
+
*/
|
|
111
|
+
unsub(sub) {
|
|
112
|
+
this.subs = this.subs.filter((it) => it !== sub);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
116
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
117
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
118
|
+
*/
|
|
119
|
+
sub(sub) {
|
|
120
|
+
this.subs.push(sub);
|
|
121
|
+
return () => this.unsub(sub);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const createPubSub = () => new PubSub();
|
|
85
125
|
exports.ModulesFactory = ModulesFactory;
|
|
126
|
+
exports.PubSub = PubSub;
|
|
86
127
|
exports.createCounter = createCounter;
|
|
87
128
|
exports.createGlobalConfig = createGlobalConfig;
|
|
88
129
|
exports.createGlobalDynamicConfig = createGlobalDynamicConfig;
|
|
130
|
+
exports.createPubSub = createPubSub;
|
|
89
131
|
//# sourceMappingURL=complex.cjs.map
|
package/complex.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.cjs","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n"],"names":[],"mappings":";;AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF
|
|
1
|
+
{"version":3,"file":"complex.cjs","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts","../src/complex/pub-sub.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n","export type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;\n\n/**\n * The Publish-Subscribe pattern, which allows objects to interact with each other\n * through an event system. Subscribers can subscribe to events and receive notifications\n * when these events occur. The last published data can be accessed through the `data` property.\n */\nexport class PubSub<PubArgs extends any[] = any[]> {\n /**\n * The last published data. This value can be null if no publication has occurred yet.\n * It allows subscribers to receive the last published data when they subscribe.\n */\n data: PubArgs | null = null;\n\n /**\n * An array of subscriber functions (sub) that will be called\n * when an event is published. Each subscriber must match the type SubFn,\n * taking the arguments that will be passed to it when the publisher calls pub.\n */\n subs: SubFn<PubArgs>[] = [];\n\n /**\n * A function that is used to publish an event. When this function is called,\n * all subscribers in the `subs` array will be called with the passed arguments.\n */\n pub(...args: PubArgs) {\n this.data = args;\n this.subs.forEach((sub) => {\n sub(...args);\n });\n }\n\n /**\n * A function to unsubscribe from events. When a subscriber function (sub) is passed,\n * it will be removed from the `subs` array, and will no longer receive notifications.\n */\n unsub(sub: SubFn<PubArgs>) {\n this.subs = this.subs.filter((it) => it !== sub);\n }\n\n /**\n * A function to subscribe to events. When a subscriber function (sub) is passed,\n * it will be added to the `subs` array, and will receive notifications when the publisher calls pub.\n * Returns a function that can be used to unsubscribe from events.\n */\n sub(sub: SubFn<PubArgs>) {\n this.subs.push(sub);\n return () => this.unsub(sub);\n }\n}\n\nexport const createPubSub = <PubArgs extends any[] = any[]>() =>\n new PubSub<PubArgs>();\n"],"names":[],"mappings":";;AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;ACpDO,MAAM,OAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,OAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,OAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,OAAO,MAAe;AACpB,SAAK,OAAO;AACZ,SAAK,KAAK,QAAQ,CAAC,QAAQ;AACzB,UAAI,GAAG,IAAI;AAAA,IACb,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAqB;AACzB,SAAK,OAAO,KAAK,KAAK,OAAO,CAAC,OAAO,OAAO,GAAG;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,KAAqB;AACvB,SAAK,KAAK,KAAK,GAAG;AAClB,WAAO,MAAM,KAAK,MAAM,GAAG;AAAA,EAC7B;AACF;AAEO,MAAM,eAAe,MAC1B,IAAI,OAAA;;;;;;;"}
|
package/complex.d.ts
CHANGED
|
@@ -72,5 +72,42 @@ declare class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {
|
|
|
72
72
|
create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(Constructor: Class<TInstance, [TDeps]>, ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>] : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]): TInstance;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;
|
|
76
|
+
/**
|
|
77
|
+
* The Publish-Subscribe pattern, which allows objects to interact with each other
|
|
78
|
+
* through an event system. Subscribers can subscribe to events and receive notifications
|
|
79
|
+
* when these events occur. The last published data can be accessed through the `data` property.
|
|
80
|
+
*/
|
|
81
|
+
declare class PubSub<PubArgs extends any[] = any[]> {
|
|
82
|
+
/**
|
|
83
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
84
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
85
|
+
*/
|
|
86
|
+
data: PubArgs | null;
|
|
87
|
+
/**
|
|
88
|
+
* An array of subscriber functions (sub) that will be called
|
|
89
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
90
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
91
|
+
*/
|
|
92
|
+
subs: SubFn<PubArgs>[];
|
|
93
|
+
/**
|
|
94
|
+
* A function that is used to publish an event. When this function is called,
|
|
95
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
96
|
+
*/
|
|
97
|
+
pub(...args: PubArgs): void;
|
|
98
|
+
/**
|
|
99
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
100
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
101
|
+
*/
|
|
102
|
+
unsub(sub: SubFn<PubArgs>): void;
|
|
103
|
+
/**
|
|
104
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
105
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
106
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
107
|
+
*/
|
|
108
|
+
sub(sub: SubFn<PubArgs>): () => void;
|
|
109
|
+
}
|
|
110
|
+
declare const createPubSub: <PubArgs extends any[] = any[]>() => PubSub<PubArgs>;
|
|
111
|
+
|
|
112
|
+
export { ModulesFactory, PubSub, createCounter, createGlobalConfig, createGlobalDynamicConfig, createPubSub };
|
|
113
|
+
export type { Counter, CounterFn, SubFn };
|
package/complex.js
CHANGED
|
@@ -80,10 +80,52 @@ class ModulesFactory {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
class PubSub {
|
|
84
|
+
/**
|
|
85
|
+
* The last published data. This value can be null if no publication has occurred yet.
|
|
86
|
+
* It allows subscribers to receive the last published data when they subscribe.
|
|
87
|
+
*/
|
|
88
|
+
data = null;
|
|
89
|
+
/**
|
|
90
|
+
* An array of subscriber functions (sub) that will be called
|
|
91
|
+
* when an event is published. Each subscriber must match the type SubFn,
|
|
92
|
+
* taking the arguments that will be passed to it when the publisher calls pub.
|
|
93
|
+
*/
|
|
94
|
+
subs = [];
|
|
95
|
+
/**
|
|
96
|
+
* A function that is used to publish an event. When this function is called,
|
|
97
|
+
* all subscribers in the `subs` array will be called with the passed arguments.
|
|
98
|
+
*/
|
|
99
|
+
pub(...args) {
|
|
100
|
+
this.data = args;
|
|
101
|
+
this.subs.forEach((sub) => {
|
|
102
|
+
sub(...args);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A function to unsubscribe from events. When a subscriber function (sub) is passed,
|
|
107
|
+
* it will be removed from the `subs` array, and will no longer receive notifications.
|
|
108
|
+
*/
|
|
109
|
+
unsub(sub) {
|
|
110
|
+
this.subs = this.subs.filter((it) => it !== sub);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* A function to subscribe to events. When a subscriber function (sub) is passed,
|
|
114
|
+
* it will be added to the `subs` array, and will receive notifications when the publisher calls pub.
|
|
115
|
+
* Returns a function that can be used to unsubscribe from events.
|
|
116
|
+
*/
|
|
117
|
+
sub(sub) {
|
|
118
|
+
this.subs.push(sub);
|
|
119
|
+
return () => this.unsub(sub);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const createPubSub = () => new PubSub();
|
|
83
123
|
export {
|
|
84
124
|
ModulesFactory,
|
|
125
|
+
PubSub,
|
|
85
126
|
createCounter,
|
|
86
127
|
createGlobalConfig,
|
|
87
|
-
createGlobalDynamicConfig
|
|
128
|
+
createGlobalDynamicConfig,
|
|
129
|
+
createPubSub
|
|
88
130
|
};
|
|
89
131
|
//# sourceMappingURL=complex.js.map
|
package/complex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"complex.js","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n"],"names":[],"mappings":"AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;"}
|
|
1
|
+
{"version":3,"file":"complex.js","sources":["../src/complex/counter.ts","../src/complex/global-config.ts","../src/complex/modules-factory.ts","../src/complex/pub-sub.ts"],"sourcesContent":["export interface Counter<TValue = number> {\n (): TValue;\n counter: number;\n value: TValue;\n increment(): TValue;\n decrement(): TValue;\n reset(): void;\n}\n\n/**\n * @deprecated use {`Counter`}. Will be removed in next major release\n */\nexport interface CounterFn<TValue = number> extends Counter<TValue> {}\n\nexport const createCounter = <TValue = number>(\n processValue?: (value: number) => TValue,\n initial: number = 0,\n): Counter<TValue> => {\n const update = (counter: number) => {\n fn.value = processValue?.(counter) ?? (counter as TValue);\n return fn.value;\n };\n\n const increment = () => update(++fn.counter);\n const decrement = () => update(--fn.counter);\n\n const fn: Counter<TValue> = increment as any;\n\n fn.increment = increment;\n fn.decrement = decrement;\n\n fn.reset = () => {\n fn.counter = initial;\n fn.value = processValue?.(initial) ?? (initial as TValue);\n };\n\n fn.reset();\n\n return fn as Counter<TValue>;\n};\n","import type { AnyObject, Maybe } from 'yummies/types';\n\nconst createGlobalPoint = <TValue>(accessSymbol?: keyof any) => {\n if (accessSymbol == null) {\n let storedValue: TValue | undefined;\n return {\n get: (): TValue => storedValue!,\n set: (value: TValue): TValue => {\n storedValue = value;\n return value;\n },\n };\n }\n\n const _globalThis = globalThis as AnyObject;\n\n return {\n get: (): TValue => _globalThis[accessSymbol],\n set: (value: TValue): TValue => {\n _globalThis[accessSymbol] = value;\n return value;\n },\n };\n};\n\n/**\n * Создает глобальный конфиг, который может быть доступен в любой точке в коде\n */\nexport const createGlobalConfig = <T extends AnyObject>(\n defaultValue: T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T>(accessSymbol);\n return globalPoint.get() || globalPoint.set(defaultValue);\n};\n\nexport const createGlobalDynamicConfig = <T extends AnyObject>(\n processFn: (change: Maybe<Partial<T>>, current: Maybe<T>) => T,\n accessSymbol?: keyof any,\n) => {\n const globalPoint = createGlobalPoint<T | null | undefined>(accessSymbol);\n\n const getValue = () => {\n return globalPoint.get() ?? globalPoint.set(processFn(null, null))!;\n };\n\n return {\n get: getValue,\n set: globalPoint.set,\n update: (value: Partial<T>) => {\n const currentValue = getValue();\n Object.assign(currentValue, processFn(value, currentValue));\n },\n };\n};\n","import type { AnyObject, Class, EmptyObject, IsPartial } from 'yummies/types';\n\ntype ModuleLoaderConfig<TPredefinedDeps extends AnyObject = EmptyObject> = {\n factory<TInstance, TDeps extends TPredefinedDeps>(\n moduleClass: Class<TInstance, [TDeps]>,\n deps: TDeps,\n ): TInstance;\n} & (TPredefinedDeps extends EmptyObject\n ? { deps?: TPredefinedDeps }\n : { deps: TPredefinedDeps });\n\n/**\n * Класс `ModulesFactory` является универсальной фабрикой для создания экземпляров указанного класса с зависимостями.\n * Он использует объект конфигурации для определения того, как эти экземпляры создаются.\n *\n * Важное примечание - эта сущность работает только с классами конструктор которых имеет один параметр\n *\n * @template TPredefinedDeps - Тип, расширяющий `AnyObject`, представляющий предопределенные зависимости, которые использует фабрика.\n *\n * @example\n * ```\n * const factory = new ModulesFactory({\n * factory: (MyClass, deps) => new MyClass(deps),\n * deps: { someDependency: new Dependency() }\n * });\n *\n * const instance = factory.create(MyClass, { extraDependency: new ExtraDependency() });\n * ```\n */\nexport class ModulesFactory<TPredefinedDeps extends AnyObject = EmptyObject> {\n /**\n * Создает новый экземпляр `ModulesFactory`.\n *\n * @param config - Объект конфигурации для фабрики, включающий функцию фабрики и необязательные зависимости.\n */\n constructor(private config: ModuleLoaderConfig<TPredefinedDeps>) {}\n\n /**\n * Создает экземпляр указанного класса, внедряя необходимые зависимости.\n *\n * @template TInstance - Тип создаваемого экземпляра.\n * @template TDeps - Тип зависимостей, необходимых для экземпляра.\n *\n * @param Constructor - Конструктор класса для создаваемого экземпляра.\n * @param args - Необязательные дополнительные зависимости для объединения с предопределенными зависимостями.\n *\n * @returns Экземпляр указанного класса с внедренными зависимостями.\n */\n create<TInstance, TDeps extends TPredefinedDeps = TPredefinedDeps>(\n Constructor: Class<TInstance, [TDeps]>,\n ...args: IsPartial<Omit<TDeps, keyof TPredefinedDeps>> extends true\n ? [extraDeps?: Omit<TDeps, keyof TPredefinedDeps>]\n : [extraDeps: Omit<TDeps, keyof TPredefinedDeps>]\n ) {\n return this.config.factory(Constructor, {\n ...this.config.deps!,\n ...args[0],\n } as any);\n }\n}\n","export type SubFn<PubArgs extends any[] = any[]> = (...args: PubArgs) => void;\n\n/**\n * The Publish-Subscribe pattern, which allows objects to interact with each other\n * through an event system. Subscribers can subscribe to events and receive notifications\n * when these events occur. The last published data can be accessed through the `data` property.\n */\nexport class PubSub<PubArgs extends any[] = any[]> {\n /**\n * The last published data. This value can be null if no publication has occurred yet.\n * It allows subscribers to receive the last published data when they subscribe.\n */\n data: PubArgs | null = null;\n\n /**\n * An array of subscriber functions (sub) that will be called\n * when an event is published. Each subscriber must match the type SubFn,\n * taking the arguments that will be passed to it when the publisher calls pub.\n */\n subs: SubFn<PubArgs>[] = [];\n\n /**\n * A function that is used to publish an event. When this function is called,\n * all subscribers in the `subs` array will be called with the passed arguments.\n */\n pub(...args: PubArgs) {\n this.data = args;\n this.subs.forEach((sub) => {\n sub(...args);\n });\n }\n\n /**\n * A function to unsubscribe from events. When a subscriber function (sub) is passed,\n * it will be removed from the `subs` array, and will no longer receive notifications.\n */\n unsub(sub: SubFn<PubArgs>) {\n this.subs = this.subs.filter((it) => it !== sub);\n }\n\n /**\n * A function to subscribe to events. When a subscriber function (sub) is passed,\n * it will be added to the `subs` array, and will receive notifications when the publisher calls pub.\n * Returns a function that can be used to unsubscribe from events.\n */\n sub(sub: SubFn<PubArgs>) {\n this.subs.push(sub);\n return () => this.unsub(sub);\n }\n}\n\nexport const createPubSub = <PubArgs extends any[] = any[]>() =>\n new PubSub<PubArgs>();\n"],"names":[],"mappings":"AAcO,MAAM,gBAAgB,CAC3B,cACA,UAAkB,MACE;AACpB,QAAM,SAAS,CAAC,YAAoB;AAClC,OAAG,QAAQ,eAAe,OAAO,KAAM;AACvC,WAAO,GAAG;AAAA,EACZ;AAEA,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAC3C,QAAM,YAAY,MAAM,OAAO,EAAE,GAAG,OAAO;AAE3C,QAAM,KAAsB;AAE5B,KAAG,YAAY;AACf,KAAG,YAAY;AAEf,KAAG,QAAQ,MAAM;AACf,OAAG,UAAU;AACb,OAAG,QAAQ,eAAe,OAAO,KAAM;AAAA,EACzC;AAEA,KAAG,MAAA;AAEH,SAAO;AACT;ACrCA,MAAM,oBAAoB,CAAS,iBAA6B;AAC9D,MAAI,gBAAgB,MAAM;AACxB,QAAI;AACJ,WAAO;AAAA,MACL,KAAK,MAAc;AAAA,MACnB,KAAK,CAAC,UAA0B;AAC9B,sBAAc;AACd,eAAO;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,cAAc;AAEpB,SAAO;AAAA,IACL,KAAK,MAAc,YAAY,YAAY;AAAA,IAC3C,KAAK,CAAC,UAA0B;AAC9B,kBAAY,YAAY,IAAI;AAC5B,aAAO;AAAA,IACT;AAAA,EAAA;AAEJ;AAKO,MAAM,qBAAqB,CAChC,cACA,iBACG;AACH,QAAM,cAAc,kBAAqB,YAAY;AACrD,SAAO,YAAY,IAAA,KAAS,YAAY,IAAI,YAAY;AAC1D;AAEO,MAAM,4BAA4B,CACvC,WACA,iBACG;AACH,QAAM,cAAc,kBAAwC,YAAY;AAExE,QAAM,WAAW,MAAM;AACrB,WAAO,YAAY,SAAS,YAAY,IAAI,UAAU,MAAM,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,KAAK;AAAA,IACL,KAAK,YAAY;AAAA,IACjB,QAAQ,CAAC,UAAsB;AAC7B,YAAM,eAAe,SAAA;AACrB,aAAO,OAAO,cAAc,UAAU,OAAO,YAAY,CAAC;AAAA,IAC5D;AAAA,EAAA;AAEJ;ACzBO,MAAM,eAAgE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAM3E,YAAoB,QAA6C;AAA7C,SAAA,SAAA;AAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalE,OACE,gBACG,MAGH;AACA,WAAO,KAAK,OAAO,QAAQ,aAAa;AAAA,MACtC,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,CAAC;AAAA,IAAA,CACH;AAAA,EACV;AACF;ACpDO,MAAM,OAAsC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,OAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,OAAyB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMzB,OAAO,MAAe;AACpB,SAAK,OAAO;AACZ,SAAK,KAAK,QAAQ,CAAC,QAAQ;AACzB,UAAI,GAAG,IAAI;AAAA,IACb,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAqB;AACzB,SAAK,OAAO,KAAK,KAAK,OAAO,CAAC,OAAO,OAAO,GAAG;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,KAAqB;AACvB,SAAK,KAAK,KAAK,GAAG;AAClB,WAAO,MAAM,KAAK,MAAM,GAAG;AAAA,EAC7B;AACF;AAEO,MAAM,eAAe,MAC1B,IAAI,OAAA;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yummies",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"javascript",
|
|
6
6
|
"typescript",
|
|
@@ -43,152 +43,182 @@
|
|
|
43
43
|
"./async": {
|
|
44
44
|
"types": "./async.d.ts",
|
|
45
45
|
"import": "./async.js",
|
|
46
|
-
"require": "./async.cjs"
|
|
46
|
+
"require": "./async.cjs",
|
|
47
|
+
"default": "./async.js"
|
|
47
48
|
},
|
|
48
49
|
"./common": {
|
|
49
50
|
"types": "./common.d.ts",
|
|
50
51
|
"import": "./common.js",
|
|
51
|
-
"require": "./common.cjs"
|
|
52
|
+
"require": "./common.cjs",
|
|
53
|
+
"default": "./common.js"
|
|
52
54
|
},
|
|
53
55
|
"./complex": {
|
|
54
56
|
"types": "./complex.d.ts",
|
|
55
57
|
"import": "./complex.js",
|
|
56
|
-
"require": "./complex.cjs"
|
|
58
|
+
"require": "./complex.cjs",
|
|
59
|
+
"default": "./complex.js"
|
|
57
60
|
},
|
|
58
61
|
"./cookie": {
|
|
59
62
|
"types": "./cookie.d.ts",
|
|
60
63
|
"import": "./cookie.js",
|
|
61
|
-
"require": "./cookie.cjs"
|
|
64
|
+
"require": "./cookie.cjs",
|
|
65
|
+
"default": "./cookie.js"
|
|
62
66
|
},
|
|
63
67
|
"./css": {
|
|
64
68
|
"types": "./css.d.ts",
|
|
65
69
|
"import": "./css.js",
|
|
66
|
-
"require": "./css.cjs"
|
|
70
|
+
"require": "./css.cjs",
|
|
71
|
+
"default": "./css.js"
|
|
67
72
|
},
|
|
68
73
|
"./data": {
|
|
69
74
|
"types": "./data.d.ts",
|
|
70
75
|
"import": "./data.js",
|
|
71
|
-
"require": "./data.cjs"
|
|
76
|
+
"require": "./data.cjs",
|
|
77
|
+
"default": "./data.js"
|
|
72
78
|
},
|
|
73
79
|
"./date-time": {
|
|
74
80
|
"types": "./date-time.d.ts",
|
|
75
81
|
"import": "./date-time.js",
|
|
76
|
-
"require": "./date-time.cjs"
|
|
82
|
+
"require": "./date-time.cjs",
|
|
83
|
+
"default": "./date-time.js"
|
|
77
84
|
},
|
|
78
85
|
"./device": {
|
|
79
86
|
"types": "./device.d.ts",
|
|
80
87
|
"import": "./device.js",
|
|
81
|
-
"require": "./device.cjs"
|
|
88
|
+
"require": "./device.cjs",
|
|
89
|
+
"default": "./device.js"
|
|
82
90
|
},
|
|
83
91
|
"./encodings": {
|
|
84
92
|
"types": "./encodings.d.ts",
|
|
85
93
|
"import": "./encodings.js",
|
|
86
|
-
"require": "./encodings.cjs"
|
|
94
|
+
"require": "./encodings.cjs",
|
|
95
|
+
"default": "./encodings.js"
|
|
87
96
|
},
|
|
88
97
|
"./errors": {
|
|
89
98
|
"types": "./errors.d.ts",
|
|
90
99
|
"import": "./errors.js",
|
|
91
|
-
"require": "./errors.cjs"
|
|
100
|
+
"require": "./errors.cjs",
|
|
101
|
+
"default": "./errors.js"
|
|
92
102
|
},
|
|
93
103
|
"./file": {
|
|
94
104
|
"types": "./file.d.ts",
|
|
95
105
|
"import": "./file.js",
|
|
96
|
-
"require": "./file.cjs"
|
|
106
|
+
"require": "./file.cjs",
|
|
107
|
+
"default": "./file.js"
|
|
97
108
|
},
|
|
98
109
|
"./format": {
|
|
99
110
|
"types": "./format.d.ts",
|
|
100
111
|
"import": "./format.js",
|
|
101
|
-
"require": "./format.cjs"
|
|
112
|
+
"require": "./format.cjs",
|
|
113
|
+
"default": "./format.js"
|
|
102
114
|
},
|
|
103
115
|
"./html": {
|
|
104
116
|
"types": "./html.d.ts",
|
|
105
117
|
"import": "./html.js",
|
|
106
|
-
"require": "./html.cjs"
|
|
118
|
+
"require": "./html.cjs",
|
|
119
|
+
"default": "./html.js"
|
|
107
120
|
},
|
|
108
121
|
"./id": {
|
|
109
122
|
"types": "./id.d.ts",
|
|
110
123
|
"import": "./id.js",
|
|
111
|
-
"require": "./id.cjs"
|
|
124
|
+
"require": "./id.cjs",
|
|
125
|
+
"default": "./id.js"
|
|
112
126
|
},
|
|
113
127
|
"./imports": {
|
|
114
128
|
"types": "./imports.d.ts",
|
|
115
129
|
"import": "./imports.js",
|
|
116
|
-
"require": "./imports.cjs"
|
|
130
|
+
"require": "./imports.cjs",
|
|
131
|
+
"default": "./imports.js"
|
|
117
132
|
},
|
|
118
133
|
"./math": {
|
|
119
134
|
"types": "./math.d.ts",
|
|
120
135
|
"import": "./math.js",
|
|
121
|
-
"require": "./math.cjs"
|
|
136
|
+
"require": "./math.cjs",
|
|
137
|
+
"default": "./math.js"
|
|
122
138
|
},
|
|
123
139
|
"./media": {
|
|
124
140
|
"types": "./media.d.ts",
|
|
125
141
|
"import": "./media.js",
|
|
126
|
-
"require": "./media.cjs"
|
|
142
|
+
"require": "./media.cjs",
|
|
143
|
+
"default": "./media.js"
|
|
127
144
|
},
|
|
128
145
|
"./mobx": {
|
|
129
146
|
"types": "./mobx.d.ts",
|
|
130
147
|
"import": "./mobx.js",
|
|
131
|
-
"require": "./mobx.cjs"
|
|
148
|
+
"require": "./mobx.cjs",
|
|
149
|
+
"default": "./mobx.js"
|
|
132
150
|
},
|
|
133
151
|
"./ms": {
|
|
134
152
|
"types": "./ms.d.ts",
|
|
135
153
|
"import": "./ms.js",
|
|
136
|
-
"require": "./ms.cjs"
|
|
154
|
+
"require": "./ms.cjs",
|
|
155
|
+
"default": "./ms.js"
|
|
137
156
|
},
|
|
138
157
|
"./number": {
|
|
139
158
|
"types": "./number.d.ts",
|
|
140
159
|
"import": "./number.js",
|
|
141
|
-
"require": "./number.cjs"
|
|
160
|
+
"require": "./number.cjs",
|
|
161
|
+
"default": "./number.js"
|
|
142
162
|
},
|
|
143
163
|
"./parser": {
|
|
144
164
|
"types": "./parser.d.ts",
|
|
145
165
|
"import": "./parser.js",
|
|
146
|
-
"require": "./parser.cjs"
|
|
166
|
+
"require": "./parser.cjs",
|
|
167
|
+
"default": "./parser.js"
|
|
147
168
|
},
|
|
148
169
|
"./price": {
|
|
149
170
|
"types": "./price.d.ts",
|
|
150
171
|
"import": "./price.js",
|
|
151
|
-
"require": "./price.cjs"
|
|
172
|
+
"require": "./price.cjs",
|
|
173
|
+
"default": "./price.js"
|
|
152
174
|
},
|
|
153
175
|
"./random": {
|
|
154
176
|
"types": "./random.d.ts",
|
|
155
177
|
"import": "./random.js",
|
|
156
|
-
"require": "./random.cjs"
|
|
178
|
+
"require": "./random.cjs",
|
|
179
|
+
"default": "./random.js"
|
|
157
180
|
},
|
|
158
181
|
"./react": {
|
|
159
182
|
"types": "./react.d.ts",
|
|
160
183
|
"import": "./react.js",
|
|
161
|
-
"require": "./react.cjs"
|
|
184
|
+
"require": "./react.cjs",
|
|
185
|
+
"default": "./react.js"
|
|
162
186
|
},
|
|
163
187
|
"./sound": {
|
|
164
188
|
"types": "./sound.d.ts",
|
|
165
189
|
"import": "./sound.js",
|
|
166
|
-
"require": "./sound.cjs"
|
|
190
|
+
"require": "./sound.cjs",
|
|
191
|
+
"default": "./sound.js"
|
|
167
192
|
},
|
|
168
193
|
"./text": {
|
|
169
194
|
"types": "./text.d.ts",
|
|
170
195
|
"import": "./text.js",
|
|
171
|
-
"require": "./text.cjs"
|
|
196
|
+
"require": "./text.cjs",
|
|
197
|
+
"default": "./text.js"
|
|
172
198
|
},
|
|
173
199
|
"./type-guard": {
|
|
174
200
|
"types": "./type-guard.d.ts",
|
|
175
201
|
"import": "./type-guard.js",
|
|
176
|
-
"require": "./type-guard.cjs"
|
|
202
|
+
"require": "./type-guard.cjs",
|
|
203
|
+
"default": "./type-guard.js"
|
|
177
204
|
},
|
|
178
205
|
"./types": {
|
|
179
206
|
"types": "./types.d.ts",
|
|
180
207
|
"import": "./types.js",
|
|
181
|
-
"require": "./types.cjs"
|
|
208
|
+
"require": "./types.cjs",
|
|
209
|
+
"default": "./types.js"
|
|
182
210
|
},
|
|
183
211
|
"./types.global": {
|
|
184
212
|
"types": "./types.global.d.ts",
|
|
185
213
|
"import": "./types.global.js",
|
|
186
|
-
"require": "./types.global.cjs"
|
|
214
|
+
"require": "./types.global.cjs",
|
|
215
|
+
"default": "./types.global.js"
|
|
187
216
|
},
|
|
188
217
|
"./vibrate": {
|
|
189
218
|
"types": "./vibrate.d.ts",
|
|
190
219
|
"import": "./vibrate.js",
|
|
191
|
-
"require": "./vibrate.cjs"
|
|
220
|
+
"require": "./vibrate.cjs",
|
|
221
|
+
"default": "./vibrate.js"
|
|
192
222
|
}
|
|
193
223
|
},
|
|
194
224
|
"files": [
|