@signalium/query 1.1.0 → 1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"EntityMap.d.ts","sourceRoot":"","sources":["../../src/EntityMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,QAAQ,EAAY,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA4BpD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAU3D,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAA2D;IACtE,OAAO,CAAC,WAAW,CAAc;IAEjC;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CAA8C;gBAElE,WAAW,EAAE,WAAW;IAIpC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,YAAY,GAAG,SAAS;IAIxE,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IAsBpE,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY;IAWnE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB;IAgBrF,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY;IAsB9G;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA+BlF;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAsB/C;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C,OAAO,CAAC,iBAAiB;CA2C1B"}
1
+ {"version":3,"file":"EntityMap.d.ts","sourceRoot":"","sources":["../../src/EntityMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,QAAQ,EAAY,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA4BpD,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAU3D,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAA2D;IACtE,OAAO,CAAC,WAAW,CAAc;IAEjC;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CAA8C;gBAElE,WAAW,EAAE,WAAW;IAIpC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,YAAY,GAAG,SAAS;IAIxE,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;IAsBpE,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY;IAWnE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB;IAgBrF,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,YAAY;IA2B9G;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA+BlF;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAsB/C;;;OAGG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI/C,OAAO,CAAC,iBAAiB;CA2C1B"}
@@ -910,6 +910,43 @@ function createEntityProxy(id, entityRecord, def, entityRelay, scopeOwner, warn
910
910
  if (!Object.hasOwnProperty.call(shape, prop)) {
911
911
  return value;
912
912
  }
913
+ if (value && typeof value === "object") {
914
+ const ownerWithHydrate = scopeOwner;
915
+ if (typeof value.__entityRef === "number") {
916
+ const nestedRecord = ownerWithHydrate.hydrateEntity?.(
917
+ value.__entityRef,
918
+ propDef
919
+ );
920
+ if (nestedRecord && nestedRecord.proxy) {
921
+ cache.set(prop, nestedRecord.proxy);
922
+ return nestedRecord.proxy;
923
+ }
924
+ }
925
+ if (Array.isArray(value) && value.length > 0) {
926
+ const firstItem = value[0];
927
+ if (firstItem && typeof firstItem === "object" && typeof firstItem.__entityRef === "number") {
928
+ const arrayTypeDef = propDef;
929
+ const isArrayType = typeof arrayTypeDef.mask === "number" && (arrayTypeDef.mask & Mask.ARRAY) !== 0;
930
+ const itemDef = isArrayType ? arrayTypeDef.shape : void 0;
931
+ if (itemDef) {
932
+ const hydratedArray = value.map((item) => {
933
+ if (item && typeof item === "object" && typeof item.__entityRef === "number") {
934
+ const nestedRecord = ownerWithHydrate.hydrateEntity?.(
935
+ item.__entityRef,
936
+ itemDef
937
+ );
938
+ if (nestedRecord && nestedRecord.proxy) {
939
+ return nestedRecord.proxy;
940
+ }
941
+ }
942
+ return item;
943
+ });
944
+ cache.set(prop, hydratedArray);
945
+ return hydratedArray;
946
+ }
947
+ }
948
+ }
949
+ }
913
950
  const parsed = parseValue(value, propDef, `[[${desc}]].${prop}`, false, warn);
914
951
  cache.set(prop, parsed);
915
952
  return parsed;
@@ -1050,6 +1087,9 @@ class EntityStore {
1050
1087
  record.data = mergeValues(record.data, obj);
1051
1088
  record.notifier.notify();
1052
1089
  record.cache.clear();
1090
+ if (record.proxy === void 0) {
1091
+ record.proxy = this.createEntityProxy(record, shape);
1092
+ }
1053
1093
  }
1054
1094
  record.entityRefs = entityRefs;
1055
1095
  return record;