@hf-chimera/vue 0.2.0 → 0.2.2
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 +21 -0
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +49 -47
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Hewston Fox
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
let _hf_chimera_adapters_shared = require("@hf-chimera/adapters-shared");
|
|
2
|
-
let _hf_chimera_query_builder = require("@hf-chimera/query-builder");
|
|
3
2
|
let vue = require("vue");
|
|
4
3
|
|
|
5
4
|
//#region composables.ts
|
|
@@ -28,7 +27,6 @@ const createEmitterRef = (value, events, name) => (0, vue.customRef)((track, tri
|
|
|
28
27
|
};
|
|
29
28
|
});
|
|
30
29
|
function createChimeraStoreComposables(store, createQueryBuilder) {
|
|
31
|
-
createQueryBuilder ||= () => new _hf_chimera_query_builder.DefaultChimeraQueryBuilder();
|
|
32
30
|
return {
|
|
33
31
|
[`useChimera${capitalize(store.name)}Store`]: () => createEmitterRef(store, _hf_chimera_adapters_shared.CHIMERA_ENTITY_STORE_UPDATE_EVENTS, "ChimeraEntityStore"),
|
|
34
32
|
[`useChimera${capitalize(store.name)}Collection`]: (params) => {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["value","
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["value","CHIMERA_ENTITY_STORE_UPDATE_EVENTS","CHIMERA_COLLECTION_UPDATE_EVENTS","CHIMERA_ITEM_UPDATE_EVENTS"],"sources":["../composables.ts"],"sourcesContent":["import {\n\ttype AnyChimeraParams,\n\tCHIMERA_COLLECTION_UPDATE_EVENTS,\n\tCHIMERA_ENTITY_STORE_UPDATE_EVENTS,\n\tCHIMERA_ITEM_UPDATE_EVENTS,\n\ttype ChimeraQueryBuilder,\n\tnormalizeParams,\n} from \"@hf-chimera/adapters-shared\";\nimport type {\n\tAnyChimeraEntityStore,\n\tAnyChimeraEventEmitter,\n\tChimeraCollectionQuery,\n\tChimeraEntityId,\n\tChimeraEntityStoreEntity,\n\tChimeraEntityStoreName,\n\tChimeraEntityStoreOperatorsMap,\n\tChimeraEventEmitterEventNames,\n\tChimeraItemQuery,\n} from \"@hf-chimera/store\";\nimport { computed, customRef, isRef, type Ref, watch } from \"vue\";\n\ntype MaybeRef<T> = T | Ref<T>;\ntype MaybeRefOrGetter<T> = MaybeRef<T> | (() => T);\n\ntype ChimeraComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n\tTEntityName extends ChimeraEntityStoreName<TStore> = ChimeraEntityStoreName<TStore>,\n> = {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Store`]: () => Ref<TStore>;\n} & {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Collection`]: <TMeta = any>(\n\t\tparams: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>,\n\t) => Ref<\n\t\tChimeraCollectionQuery<\n\t\t\tChimeraEntityStoreName<TStore>,\n\t\t\tChimeraEntityStoreEntity<TStore>,\n\t\t\tChimeraEntityStoreOperatorsMap<TStore>\n\t\t>\n\t>;\n} & {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Item`]: <TMeta = any>(\n\t\tid: MaybeRefOrGetter<ChimeraEntityId>,\n\t\tmeta?: MaybeRefOrGetter<TMeta>,\n\t) => Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>>;\n};\n\nconst isFunction = (value: any): value is () => any => typeof value === \"function\";\nconst toValue = <T>(value: MaybeRefOrGetter<T>): T =>\n\tisFunction(value) ? value() : isRef(value) ? value.value : value;\nconst capitalize = <T extends string>(s: T): Capitalize<T> =>\n\ts !== \"\" ? (((s[0] as string).toUpperCase() + s.slice(1)) as Capitalize<T>) : (\"\" as Capitalize<T>);\n\nconst createEmitterRef = <TEventEmitter extends AnyChimeraEventEmitter>(\n\tvalue: MaybeRefOrGetter<TEventEmitter>,\n\tevents: ChimeraEventEmitterEventNames<TEventEmitter>[],\n\tname: string,\n) =>\n\tcustomRef((track, trigger) => {\n\t\twatch(\n\t\t\tvalue,\n\t\t\t(value, _, onCleanup) => {\n\t\t\t\tconst actualValue = toValue(value);\n\n\t\t\t\tconst handler = () => trigger();\n\t\t\t\tevents.forEach((event) => {\n\t\t\t\t\tactualValue.on(event, handler);\n\t\t\t\t});\n\t\t\t\tonCleanup(() =>\n\t\t\t\t\tevents.forEach((event) => {\n\t\t\t\t\t\tactualValue.off(event, handler);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t{ immediate: true },\n\t\t);\n\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn toValue(value);\n\t\t\t},\n\t\t\tset() {\n\t\t\t\tconsole.warn(`${name} ref is readonly`);\n\t\t\t},\n\t\t};\n\t});\n\nexport function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(\n\tstore: TStore,\n): ChimeraComposables<TStore, never>;\nexport function createChimeraStoreComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n>(store: TStore, createQueryBuilder: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder>;\nexport function createChimeraStoreComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n>(store: TStore, createQueryBuilder?: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder> {\n\treturn {\n\t\t[`useChimera${capitalize(store.name)}Store`]: () =>\n\t\t\tcreateEmitterRef(store, CHIMERA_ENTITY_STORE_UPDATE_EVENTS, \"ChimeraEntityStore\"),\n\t\t[`useChimera${capitalize(store.name)}Collection`]: <TMeta = any>(\n\t\t\tparams: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>,\n\t\t): Ref<\n\t\t\tChimeraCollectionQuery<\n\t\t\t\tChimeraEntityStoreName<TStore>,\n\t\t\t\tChimeraEntityStoreEntity<TStore>,\n\t\t\t\tChimeraEntityStoreOperatorsMap<TStore>\n\t\t\t>\n\t\t> => {\n\t\t\tconst normalizedParams = computed(() => normalizeParams(createQueryBuilder, toValue(params)));\n\t\t\treturn createEmitterRef(\n\t\t\t\tcomputed(() => store.getCollection(normalizedParams.value)),\n\t\t\t\tCHIMERA_COLLECTION_UPDATE_EVENTS,\n\t\t\t\t\"ChimeraCollectionQuery\",\n\t\t\t);\n\t\t},\n\t\t[`useChimera${capitalize(store.name)}Item`]: <TMeta = any>(\n\t\t\tid: MaybeRefOrGetter<ChimeraEntityId>,\n\t\t\tmeta?: MaybeRefOrGetter<TMeta>,\n\t\t): Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>> =>\n\t\t\tcreateEmitterRef(\n\t\t\t\tcomputed(() => store.getItem(toValue(id), toValue(meta))),\n\t\t\t\tCHIMERA_ITEM_UPDATE_EVENTS,\n\t\t\t\t\"ChimeraItemQuery\",\n\t\t\t),\n\t} as ChimeraComposables<TStore, TQueryBuilder>;\n}\n"],"mappings":";;;;AA+CA,MAAM,cAAc,UAAmC,OAAO,UAAU;AACxE,MAAM,WAAc,UACnB,WAAW,MAAM,GAAG,OAAO,kBAAS,MAAM,GAAG,MAAM,QAAQ;AAC5D,MAAM,cAAgC,MACrC,MAAM,KAAQ,EAAE,GAAc,aAAa,GAAG,EAAE,MAAM,EAAE,GAAuB;AAEhF,MAAM,oBACL,OACA,QACA,6BAEW,OAAO,YAAY;AAC7B,gBACC,QACC,SAAO,GAAG,cAAc;EACxB,MAAM,cAAc,QAAQA,QAAM;EAElC,MAAM,gBAAgB,SAAS;AAC/B,SAAO,SAAS,UAAU;AACzB,eAAY,GAAG,OAAO,QAAQ;IAC7B;AACF,kBACC,OAAO,SAAS,UAAU;AACzB,eAAY,IAAI,OAAO,QAAQ;IAC9B,CACF;IAEF,EAAE,WAAW,MAAM,CACnB;AAED,QAAO;EACN,MAAM;AACL,UAAO;AACP,UAAO,QAAQ,MAAM;;EAEtB,MAAM;AACL,WAAQ,KAAK,GAAG,KAAK,kBAAkB;;EAExC;EACA;AASH,SAAgB,8BAGd,OAAe,oBAAqF;AACrG,QAAO;GACL,aAAa,WAAW,MAAM,KAAK,CAAC,eACpC,iBAAiB,OAAOC,gEAAoC,qBAAqB;GACjF,aAAa,WAAW,MAAM,KAAK,CAAC,eACpC,WAOI;GACJ,MAAM,4FAAkD,oBAAoB,QAAQ,OAAO,CAAC,CAAC;AAC7F,UAAO,yCACS,MAAM,cAAc,iBAAiB,MAAM,CAAC,EAC3DC,8DACA,yBACA;;GAED,aAAa,WAAW,MAAM,KAAK,CAAC,SACpC,IACA,SAEA,yCACgB,MAAM,QAAQ,QAAQ,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC,EACzDC,wDACA,mBACA;EACF"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AnyChimeraParams } from "@hf-chimera/adapters-shared";
|
|
2
|
-
import { ChimeraQueryBuilder, DefaultChimeraQueryBuilder } from "@hf-chimera/query-builder";
|
|
1
|
+
import { AnyChimeraParams, ChimeraQueryBuilder } from "@hf-chimera/adapters-shared";
|
|
3
2
|
import { AnyChimeraEntityStore, ChimeraCollectionQuery, ChimeraEntityId, ChimeraEntityStoreEntity, ChimeraEntityStoreName, ChimeraEntityStoreOperatorsMap, ChimeraItemQuery } from "@hf-chimera/store";
|
|
4
3
|
import { Ref } from "vue";
|
|
5
4
|
|
|
@@ -7,7 +6,7 @@ import { Ref } from "vue";
|
|
|
7
6
|
type MaybeRef<T> = T | Ref<T>;
|
|
8
7
|
type MaybeRefOrGetter<T> = MaybeRef<T> | (() => T);
|
|
9
8
|
type ChimeraComposables<TStore extends AnyChimeraEntityStore, TQueryBuilder extends ChimeraQueryBuilder<TStore>, TEntityName extends ChimeraEntityStoreName<TStore> = ChimeraEntityStoreName<TStore>> = { [K in TEntityName as `useChimera${Capitalize<K>}Store`]: () => Ref<TStore> } & { [K in TEntityName as `useChimera${Capitalize<K>}Collection`]: <TMeta = any>(params: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>) => Ref<ChimeraCollectionQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>, ChimeraEntityStoreOperatorsMap<TStore>>> } & { [K in TEntityName as `useChimera${Capitalize<K>}Item`]: <TMeta = any>(id: MaybeRefOrGetter<ChimeraEntityId>, meta?: MaybeRefOrGetter<TMeta>) => Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>> };
|
|
10
|
-
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(store: TStore): ChimeraComposables<TStore,
|
|
9
|
+
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(store: TStore): ChimeraComposables<TStore, never>;
|
|
11
10
|
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore, TQueryBuilder extends ChimeraQueryBuilder<TStore>>(store: TStore, createQueryBuilder: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder>;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { createChimeraStoreComposables };
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../composables.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../composables.ts"],"sourcesContent":[],"mappings":";;;;;KAqBK,cAAc,IAAI,IAAI;KACtB,sBAAsB,SAAS,YAAY;AAHkB,KAK7D,kBAHQ,CAAA,eAIG,qBAJH,EAAA,sBAKU,mBALV,CAK8B,MAL9B,CAAA,EAAA,oBAMQ,sBANR,CAM+B,MAN/B,CAAA,GAMyC,sBANzC,CAMgE,MANhE,CAAA,CAAA,GAAA,QAQN,WARY,IAAA,aAQgB,UARhB,CAQ2B,CAR3B,CAAA,OAAA,GAAA,GAAA,GAQ6C,GAR7C,CAQiD,MARjD,CAAA,EAAQ,GAAA,QAUpB,WAVgB,IAAA,aAUY,UAVZ,CAUuB,CAVvB,CAAA,YAAA,GAAA,CAAA,QAAA,GAAA,CAAA,CAAA,MAAA,EAWb,gBAXa,CAWI,gBAXJ,CAWqB,MAXrB,EAW6B,KAX7B,EAWoC,OAXpC,CAW4C,aAX5C,EAW2D,mBAX3D,CAW+E,MAX/E,CAAA,CAAA,CAAA,CAAA,EAAA,GAYjB,GAZiB,CAarB,sBAbqB,CAcpB,sBAdoB,CAcG,MAdH,CAAA,EAepB,wBAfoB,CAeK,MAfL,CAAA,EAgBpB,8BAhBoB,CAgBW,MAhBX,CAAA,CAAA,CAAA,EAAG,GAAA,QAoBnB,WAnBF,IAAgB,aAmBc,UAnBd,CAmByB,CAnBzB,CAAA,MAAA,GAAA,CAAA,QAAA,GAAA,CAAA,CAAA,EAAA,EAoBf,gBApBe,CAoBE,eApBF,CAAA,EAAA,IAAA,CAAA,EAqBZ,gBArBY,CAqBK,KArBL,CAAA,EAAA,GAsBf,GAtBe,CAsBX,gBAtBW,CAsBM,sBAtBN,CAsB6B,MAtB7B,CAAA,EAsBsC,wBAtBtC,CAsB+D,MAtB/D,CAAA,CAAA,CAAA,EAAe;AAAT,iBAkEX,6BAlEW,CAAA,eAkEkC,qBAlElC,CAAA,CAAA,KAAA,EAmEnB,MAnEmB,CAAA,EAoExB,kBApEwB,CAoEL,MApEK,EAAA,KAAA,CAAA;AAAqB,iBAqEhC,6BArEgC,CAAA,eAsEhC,qBAtEgC,EAAA,sBAuEzB,mBAvEyB,CAuEL,MAvEK,CAAA,CAAA,CAAA,KAAA,EAwEvC,MAxEuC,EAAA,kBAAA,EAAA,GAAA,GAwEL,aAxEK,CAAA,EAwEW,kBAxEX,CAwE8B,MAxE9B,EAwEsC,aAxEtC,CAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { AnyChimeraParams } from "@hf-chimera/adapters-shared";
|
|
2
|
-
import { ChimeraQueryBuilder, DefaultChimeraQueryBuilder } from "@hf-chimera/query-builder";
|
|
1
|
+
import { AnyChimeraParams, ChimeraQueryBuilder } from "@hf-chimera/adapters-shared";
|
|
3
2
|
import { Ref } from "vue";
|
|
4
3
|
import { AnyChimeraEntityStore, ChimeraCollectionQuery, ChimeraEntityId, ChimeraEntityStoreEntity, ChimeraEntityStoreName, ChimeraEntityStoreOperatorsMap, ChimeraItemQuery } from "@hf-chimera/store";
|
|
5
4
|
|
|
@@ -7,7 +6,7 @@ import { AnyChimeraEntityStore, ChimeraCollectionQuery, ChimeraEntityId, Chimera
|
|
|
7
6
|
type MaybeRef<T> = T | Ref<T>;
|
|
8
7
|
type MaybeRefOrGetter<T> = MaybeRef<T> | (() => T);
|
|
9
8
|
type ChimeraComposables<TStore extends AnyChimeraEntityStore, TQueryBuilder extends ChimeraQueryBuilder<TStore>, TEntityName extends ChimeraEntityStoreName<TStore> = ChimeraEntityStoreName<TStore>> = { [K in TEntityName as `useChimera${Capitalize<K>}Store`]: () => Ref<TStore> } & { [K in TEntityName as `useChimera${Capitalize<K>}Collection`]: <TMeta = any>(params: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>) => Ref<ChimeraCollectionQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>, ChimeraEntityStoreOperatorsMap<TStore>>> } & { [K in TEntityName as `useChimera${Capitalize<K>}Item`]: <TMeta = any>(id: MaybeRefOrGetter<ChimeraEntityId>, meta?: MaybeRefOrGetter<TMeta>) => Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>> };
|
|
10
|
-
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(store: TStore): ChimeraComposables<TStore,
|
|
9
|
+
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(store: TStore): ChimeraComposables<TStore, never>;
|
|
11
10
|
declare function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore, TQueryBuilder extends ChimeraQueryBuilder<TStore>>(store: TStore, createQueryBuilder: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder>;
|
|
12
11
|
//#endregion
|
|
13
12
|
export { createChimeraStoreComposables };
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../composables.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../composables.ts"],"sourcesContent":[],"mappings":";;;;;KAqBK,cAAc,IAAI,IAAI;KACtB,sBAAsB,SAAS,YAAY;AAHkB,KAK7D,kBAHQ,CAAA,eAIG,qBAJH,EAAA,sBAKU,mBALV,CAK8B,MAL9B,CAAA,EAAA,oBAMQ,sBANR,CAM+B,MAN/B,CAAA,GAMyC,sBANzC,CAMgE,MANhE,CAAA,CAAA,GAAA,QAQN,WARY,IAAA,aAQgB,UARhB,CAQ2B,CAR3B,CAAA,OAAA,GAAA,GAAA,GAQ6C,GAR7C,CAQiD,MARjD,CAAA,EAAQ,GAAA,QAUpB,WAVgB,IAAA,aAUY,UAVZ,CAUuB,CAVvB,CAAA,YAAA,GAAA,CAAA,QAAA,GAAA,CAAA,CAAA,MAAA,EAWb,gBAXa,CAWI,gBAXJ,CAWqB,MAXrB,EAW6B,KAX7B,EAWoC,OAXpC,CAW4C,aAX5C,EAW2D,mBAX3D,CAW+E,MAX/E,CAAA,CAAA,CAAA,CAAA,EAAA,GAYjB,GAZiB,CAarB,sBAbqB,CAcpB,sBAdoB,CAcG,MAdH,CAAA,EAepB,wBAfoB,CAeK,MAfL,CAAA,EAgBpB,8BAhBoB,CAgBW,MAhBX,CAAA,CAAA,CAAA,EAAG,GAAA,QAoBnB,WAnBF,IAAgB,aAmBc,UAnBd,CAmByB,CAnBzB,CAAA,MAAA,GAAA,CAAA,QAAA,GAAA,CAAA,CAAA,EAAA,EAoBf,gBApBe,CAoBE,eApBF,CAAA,EAAA,IAAA,CAAA,EAqBZ,gBArBY,CAqBK,KArBL,CAAA,EAAA,GAsBf,GAtBe,CAsBX,gBAtBW,CAsBM,sBAtBN,CAsB6B,MAtB7B,CAAA,EAsBsC,wBAtBtC,CAsB+D,MAtB/D,CAAA,CAAA,CAAA,EAAe;AAAT,iBAkEX,6BAlEW,CAAA,eAkEkC,qBAlElC,CAAA,CAAA,KAAA,EAmEnB,MAnEmB,CAAA,EAoExB,kBApEwB,CAoEL,MApEK,EAAA,KAAA,CAAA;AAAqB,iBAqEhC,6BArEgC,CAAA,eAsEhC,qBAtEgC,EAAA,sBAuEzB,mBAvEyB,CAuEL,MAvEK,CAAA,CAAA,CAAA,KAAA,EAwEvC,MAxEuC,EAAA,kBAAA,EAAA,GAAA,GAwEL,aAxEK,CAAA,EAwEW,kBAxEX,CAwE8B,MAxE9B,EAwEsC,aAxEtC,CAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CHIMERA_COLLECTION_UPDATE_EVENTS, CHIMERA_ENTITY_STORE_UPDATE_EVENTS, CHIMERA_ITEM_UPDATE_EVENTS, normalizeParams } from "@hf-chimera/adapters-shared";
|
|
2
|
-
import { DefaultChimeraQueryBuilder } from "@hf-chimera/query-builder";
|
|
3
2
|
import { computed, customRef, isRef, watch } from "vue";
|
|
4
3
|
|
|
5
4
|
//#region composables.ts
|
|
@@ -28,7 +27,6 @@ const createEmitterRef = (value, events, name) => customRef((track, trigger) =>
|
|
|
28
27
|
};
|
|
29
28
|
});
|
|
30
29
|
function createChimeraStoreComposables(store, createQueryBuilder) {
|
|
31
|
-
createQueryBuilder ||= () => new DefaultChimeraQueryBuilder();
|
|
32
30
|
return {
|
|
33
31
|
[`useChimera${capitalize(store.name)}Store`]: () => createEmitterRef(store, CHIMERA_ENTITY_STORE_UPDATE_EVENTS, "ChimeraEntityStore"),
|
|
34
32
|
[`useChimera${capitalize(store.name)}Collection`]: (params) => {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["value"],"sources":["../composables.ts"],"sourcesContent":["import {\n\ttype AnyChimeraParams,\n\tCHIMERA_COLLECTION_UPDATE_EVENTS,\n\tCHIMERA_ENTITY_STORE_UPDATE_EVENTS,\n\tCHIMERA_ITEM_UPDATE_EVENTS,\n\tnormalizeParams,\n} from \"@hf-chimera/adapters-shared\";\nimport type {
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["value"],"sources":["../composables.ts"],"sourcesContent":["import {\n\ttype AnyChimeraParams,\n\tCHIMERA_COLLECTION_UPDATE_EVENTS,\n\tCHIMERA_ENTITY_STORE_UPDATE_EVENTS,\n\tCHIMERA_ITEM_UPDATE_EVENTS,\n\ttype ChimeraQueryBuilder,\n\tnormalizeParams,\n} from \"@hf-chimera/adapters-shared\";\nimport type {\n\tAnyChimeraEntityStore,\n\tAnyChimeraEventEmitter,\n\tChimeraCollectionQuery,\n\tChimeraEntityId,\n\tChimeraEntityStoreEntity,\n\tChimeraEntityStoreName,\n\tChimeraEntityStoreOperatorsMap,\n\tChimeraEventEmitterEventNames,\n\tChimeraItemQuery,\n} from \"@hf-chimera/store\";\nimport { computed, customRef, isRef, type Ref, watch } from \"vue\";\n\ntype MaybeRef<T> = T | Ref<T>;\ntype MaybeRefOrGetter<T> = MaybeRef<T> | (() => T);\n\ntype ChimeraComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n\tTEntityName extends ChimeraEntityStoreName<TStore> = ChimeraEntityStoreName<TStore>,\n> = {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Store`]: () => Ref<TStore>;\n} & {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Collection`]: <TMeta = any>(\n\t\tparams: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>,\n\t) => Ref<\n\t\tChimeraCollectionQuery<\n\t\t\tChimeraEntityStoreName<TStore>,\n\t\t\tChimeraEntityStoreEntity<TStore>,\n\t\t\tChimeraEntityStoreOperatorsMap<TStore>\n\t\t>\n\t>;\n} & {\n\t[K in TEntityName as `useChimera${Capitalize<K>}Item`]: <TMeta = any>(\n\t\tid: MaybeRefOrGetter<ChimeraEntityId>,\n\t\tmeta?: MaybeRefOrGetter<TMeta>,\n\t) => Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>>;\n};\n\nconst isFunction = (value: any): value is () => any => typeof value === \"function\";\nconst toValue = <T>(value: MaybeRefOrGetter<T>): T =>\n\tisFunction(value) ? value() : isRef(value) ? value.value : value;\nconst capitalize = <T extends string>(s: T): Capitalize<T> =>\n\ts !== \"\" ? (((s[0] as string).toUpperCase() + s.slice(1)) as Capitalize<T>) : (\"\" as Capitalize<T>);\n\nconst createEmitterRef = <TEventEmitter extends AnyChimeraEventEmitter>(\n\tvalue: MaybeRefOrGetter<TEventEmitter>,\n\tevents: ChimeraEventEmitterEventNames<TEventEmitter>[],\n\tname: string,\n) =>\n\tcustomRef((track, trigger) => {\n\t\twatch(\n\t\t\tvalue,\n\t\t\t(value, _, onCleanup) => {\n\t\t\t\tconst actualValue = toValue(value);\n\n\t\t\t\tconst handler = () => trigger();\n\t\t\t\tevents.forEach((event) => {\n\t\t\t\t\tactualValue.on(event, handler);\n\t\t\t\t});\n\t\t\t\tonCleanup(() =>\n\t\t\t\t\tevents.forEach((event) => {\n\t\t\t\t\t\tactualValue.off(event, handler);\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t},\n\t\t\t{ immediate: true },\n\t\t);\n\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn toValue(value);\n\t\t\t},\n\t\t\tset() {\n\t\t\t\tconsole.warn(`${name} ref is readonly`);\n\t\t\t},\n\t\t};\n\t});\n\nexport function createChimeraStoreComposables<TStore extends AnyChimeraEntityStore>(\n\tstore: TStore,\n): ChimeraComposables<TStore, never>;\nexport function createChimeraStoreComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n>(store: TStore, createQueryBuilder: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder>;\nexport function createChimeraStoreComposables<\n\tTStore extends AnyChimeraEntityStore,\n\tTQueryBuilder extends ChimeraQueryBuilder<TStore>,\n>(store: TStore, createQueryBuilder?: () => TQueryBuilder): ChimeraComposables<TStore, TQueryBuilder> {\n\treturn {\n\t\t[`useChimera${capitalize(store.name)}Store`]: () =>\n\t\t\tcreateEmitterRef(store, CHIMERA_ENTITY_STORE_UPDATE_EVENTS, \"ChimeraEntityStore\"),\n\t\t[`useChimera${capitalize(store.name)}Collection`]: <TMeta = any>(\n\t\t\tparams: MaybeRefOrGetter<AnyChimeraParams<TStore, TMeta, Extract<TQueryBuilder, ChimeraQueryBuilder<TStore>>>>,\n\t\t): Ref<\n\t\t\tChimeraCollectionQuery<\n\t\t\t\tChimeraEntityStoreName<TStore>,\n\t\t\t\tChimeraEntityStoreEntity<TStore>,\n\t\t\t\tChimeraEntityStoreOperatorsMap<TStore>\n\t\t\t>\n\t\t> => {\n\t\t\tconst normalizedParams = computed(() => normalizeParams(createQueryBuilder, toValue(params)));\n\t\t\treturn createEmitterRef(\n\t\t\t\tcomputed(() => store.getCollection(normalizedParams.value)),\n\t\t\t\tCHIMERA_COLLECTION_UPDATE_EVENTS,\n\t\t\t\t\"ChimeraCollectionQuery\",\n\t\t\t);\n\t\t},\n\t\t[`useChimera${capitalize(store.name)}Item`]: <TMeta = any>(\n\t\t\tid: MaybeRefOrGetter<ChimeraEntityId>,\n\t\t\tmeta?: MaybeRefOrGetter<TMeta>,\n\t\t): Ref<ChimeraItemQuery<ChimeraEntityStoreName<TStore>, ChimeraEntityStoreEntity<TStore>>> =>\n\t\t\tcreateEmitterRef(\n\t\t\t\tcomputed(() => store.getItem(toValue(id), toValue(meta))),\n\t\t\t\tCHIMERA_ITEM_UPDATE_EVENTS,\n\t\t\t\t\"ChimeraItemQuery\",\n\t\t\t),\n\t} as ChimeraComposables<TStore, TQueryBuilder>;\n}\n"],"mappings":";;;;AA+CA,MAAM,cAAc,UAAmC,OAAO,UAAU;AACxE,MAAM,WAAc,UACnB,WAAW,MAAM,GAAG,OAAO,GAAG,MAAM,MAAM,GAAG,MAAM,QAAQ;AAC5D,MAAM,cAAgC,MACrC,MAAM,KAAQ,EAAE,GAAc,aAAa,GAAG,EAAE,MAAM,EAAE,GAAuB;AAEhF,MAAM,oBACL,OACA,QACA,SAEA,WAAW,OAAO,YAAY;AAC7B,OACC,QACC,SAAO,GAAG,cAAc;EACxB,MAAM,cAAc,QAAQA,QAAM;EAElC,MAAM,gBAAgB,SAAS;AAC/B,SAAO,SAAS,UAAU;AACzB,eAAY,GAAG,OAAO,QAAQ;IAC7B;AACF,kBACC,OAAO,SAAS,UAAU;AACzB,eAAY,IAAI,OAAO,QAAQ;IAC9B,CACF;IAEF,EAAE,WAAW,MAAM,CACnB;AAED,QAAO;EACN,MAAM;AACL,UAAO;AACP,UAAO,QAAQ,MAAM;;EAEtB,MAAM;AACL,WAAQ,KAAK,GAAG,KAAK,kBAAkB;;EAExC;EACA;AASH,SAAgB,8BAGd,OAAe,oBAAqF;AACrG,QAAO;GACL,aAAa,WAAW,MAAM,KAAK,CAAC,eACpC,iBAAiB,OAAO,oCAAoC,qBAAqB;GACjF,aAAa,WAAW,MAAM,KAAK,CAAC,eACpC,WAOI;GACJ,MAAM,mBAAmB,eAAe,gBAAgB,oBAAoB,QAAQ,OAAO,CAAC,CAAC;AAC7F,UAAO,iBACN,eAAe,MAAM,cAAc,iBAAiB,MAAM,CAAC,EAC3D,kCACA,yBACA;;GAED,aAAa,WAAW,MAAM,KAAK,CAAC,SACpC,IACA,SAEA,iBACC,eAAe,MAAM,QAAQ,QAAQ,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC,EACzD,4BACA,mBACA;EACF"}
|
package/package.json
CHANGED
|
@@ -1,48 +1,50 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
2
|
+
"name": "@hf-chimera/vue",
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"description": "Cross-end reactivity API - Vue adapter",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "hewston",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"reactivity",
|
|
9
|
+
"reactive",
|
|
10
|
+
"vue",
|
|
11
|
+
"composables",
|
|
12
|
+
"typescript",
|
|
13
|
+
"state-management"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"main": "./dist/index.cjs",
|
|
18
|
+
"module": "./dist/index.js",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"require": "./dist/index.cjs",
|
|
23
|
+
"import": "./dist/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/hf-chimera/store/issues"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"url": "https://github.com/hf-chimera/store"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"vue": ">=3.0.0",
|
|
37
|
+
"@hf-chimera/store": "~0.2.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@hf-chimera/adapters-shared": "~0.2.2"
|
|
41
|
+
},
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public",
|
|
44
|
+
"provenance": true
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsdown",
|
|
48
|
+
"changeset:patch": "node ../../../scripts/changeset-patch.mjs @hf-chimera/vue"
|
|
49
|
+
}
|
|
50
|
+
}
|