pinia-orm-edge 1.9.0-28580890.9c8ee0d → 1.9.0-28581629.9ed41d3

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/dist/index.cjs CHANGED
@@ -1449,7 +1449,8 @@ class Query {
1449
1449
  if (isDeleting === false) {
1450
1450
  notDeletableIds.push(currentModel.$getIndexId());
1451
1451
  } else {
1452
- this.hydratedDataCache.delete(this.model.$entity() + currentModel.$getIndexId());
1452
+ this.hydratedDataCache.delete("set" + this.model.$entity() + currentModel.$getIndexId());
1453
+ this.hydratedDataCache.delete("get" + this.model.$entity() + currentModel.$getIndexId());
1453
1454
  afterHooks.push(() => currentModel.$self().deleted(currentModel));
1454
1455
  this.checkAndDeleteRelations(currentModel);
1455
1456
  }
@@ -1481,16 +1482,21 @@ class Query {
1481
1482
  * an update event trigger in vue if the object is used.
1482
1483
  */
1483
1484
  getHydratedModel(record, options) {
1484
- const id = this.model.$getKey(record, true);
1485
- const savedHydratedModel = id && this.hydratedDataCache.get(this.model.$entity() + id);
1486
- if (!this.getNewHydrated && options?.operation !== "set" && savedHydratedModel) {
1487
- return savedHydratedModel.$fill(record, options);
1485
+ const id = this.model.$entity() + this.model.$getKey(record, true);
1486
+ const operationId = options?.operation + id;
1487
+ let savedHydratedModel = this.hydratedDataCache.get(operationId);
1488
+ if (options?.action === "update") {
1489
+ this.hydratedDataCache.delete("get" + id);
1490
+ savedHydratedModel = void 0;
1491
+ }
1492
+ if (!this.getNewHydrated && savedHydratedModel) {
1493
+ return savedHydratedModel;
1488
1494
  }
1489
1495
  const modelByType = this.model.$types()[record[this.model.$typeKey()]];
1490
1496
  const getNewInsance = (newOptions) => (modelByType ? modelByType.newRawInstance() : this.model).$newInstance(record, { relations: false, ...options || {}, ...newOptions });
1491
1497
  const hydratedModel = getNewInsance();
1492
- if (id && (!this.getNewHydrated && options?.operation !== "set" || options?.action === "update")) {
1493
- this.hydratedDataCache.set(this.model.$entity() + id, hydratedModel);
1498
+ if (Utils.isEmpty(this.eagerLoad) && options?.operation !== "set") {
1499
+ this.hydratedDataCache.set(operationId, hydratedModel);
1494
1500
  }
1495
1501
  return hydratedModel;
1496
1502
  }
@@ -3184,12 +3190,18 @@ class Model {
3184
3190
  continue;
3185
3191
  }
3186
3192
  const attr = fields[key];
3187
- const value = attributes[key];
3193
+ let value = attributes[key];
3188
3194
  if (attr instanceof Relation && !fillRelation) {
3189
3195
  continue;
3190
3196
  }
3191
3197
  const mutator = mutators?.[key];
3192
3198
  const cast = this.$casts()[key]?.newRawInstance(fields);
3199
+ if (mutator && operation === "get") {
3200
+ value = typeof mutator === "function" ? mutator(value) : typeof mutator.get === "function" ? mutator.get(value) : value;
3201
+ }
3202
+ if (cast && operation === "get") {
3203
+ value = cast.get(value);
3204
+ }
3193
3205
  let keyValue = this.$fillField(key, attr, value);
3194
3206
  if (mutator && typeof mutator !== "function" && operation === "set" && mutator.set) {
3195
3207
  keyValue = mutator.set(keyValue);
@@ -3197,36 +3209,6 @@ class Model {
3197
3209
  if (cast && operation === "set") {
3198
3210
  keyValue = cast.set(keyValue);
3199
3211
  }
3200
- if (cast || mutator) {
3201
- Object.defineProperty(this, "_" + key, {
3202
- configurable: true,
3203
- writable: true,
3204
- enumerable: false
3205
- });
3206
- Object.defineProperty(this, key, {
3207
- configurable: true,
3208
- enumerable: true,
3209
- get() {
3210
- let scopeValue = this["_" + key];
3211
- if (scopeValue === void 0) {
3212
- return keyValue;
3213
- }
3214
- if (operation === "set") {
3215
- return scopeValue;
3216
- }
3217
- if (mutator) {
3218
- scopeValue = typeof mutator === "function" ? mutator(scopeValue) : typeof mutator.get === "function" ? mutator.get(scopeValue) : scopeValue;
3219
- }
3220
- if (cast) {
3221
- scopeValue = cast.get(scopeValue);
3222
- }
3223
- return scopeValue;
3224
- },
3225
- set(value2) {
3226
- this["_" + key] = value2;
3227
- }
3228
- });
3229
- }
3230
3212
  this[key] = this[key] ?? keyValue;
3231
3213
  }
3232
3214
  operation === "set" && (this.$self().original[this.$getKey(this, true)] = this.$getAttributes());
package/dist/index.mjs CHANGED
@@ -1447,7 +1447,8 @@ class Query {
1447
1447
  if (isDeleting === false) {
1448
1448
  notDeletableIds.push(currentModel.$getIndexId());
1449
1449
  } else {
1450
- this.hydratedDataCache.delete(this.model.$entity() + currentModel.$getIndexId());
1450
+ this.hydratedDataCache.delete("set" + this.model.$entity() + currentModel.$getIndexId());
1451
+ this.hydratedDataCache.delete("get" + this.model.$entity() + currentModel.$getIndexId());
1451
1452
  afterHooks.push(() => currentModel.$self().deleted(currentModel));
1452
1453
  this.checkAndDeleteRelations(currentModel);
1453
1454
  }
@@ -1479,16 +1480,21 @@ class Query {
1479
1480
  * an update event trigger in vue if the object is used.
1480
1481
  */
1481
1482
  getHydratedModel(record, options) {
1482
- const id = this.model.$getKey(record, true);
1483
- const savedHydratedModel = id && this.hydratedDataCache.get(this.model.$entity() + id);
1484
- if (!this.getNewHydrated && options?.operation !== "set" && savedHydratedModel) {
1485
- return savedHydratedModel.$fill(record, options);
1483
+ const id = this.model.$entity() + this.model.$getKey(record, true);
1484
+ const operationId = options?.operation + id;
1485
+ let savedHydratedModel = this.hydratedDataCache.get(operationId);
1486
+ if (options?.action === "update") {
1487
+ this.hydratedDataCache.delete("get" + id);
1488
+ savedHydratedModel = void 0;
1489
+ }
1490
+ if (!this.getNewHydrated && savedHydratedModel) {
1491
+ return savedHydratedModel;
1486
1492
  }
1487
1493
  const modelByType = this.model.$types()[record[this.model.$typeKey()]];
1488
1494
  const getNewInsance = (newOptions) => (modelByType ? modelByType.newRawInstance() : this.model).$newInstance(record, { relations: false, ...options || {}, ...newOptions });
1489
1495
  const hydratedModel = getNewInsance();
1490
- if (id && (!this.getNewHydrated && options?.operation !== "set" || options?.action === "update")) {
1491
- this.hydratedDataCache.set(this.model.$entity() + id, hydratedModel);
1496
+ if (isEmpty(this.eagerLoad) && options?.operation !== "set") {
1497
+ this.hydratedDataCache.set(operationId, hydratedModel);
1492
1498
  }
1493
1499
  return hydratedModel;
1494
1500
  }
@@ -3182,12 +3188,18 @@ class Model {
3182
3188
  continue;
3183
3189
  }
3184
3190
  const attr = fields[key];
3185
- const value = attributes[key];
3191
+ let value = attributes[key];
3186
3192
  if (attr instanceof Relation && !fillRelation) {
3187
3193
  continue;
3188
3194
  }
3189
3195
  const mutator = mutators?.[key];
3190
3196
  const cast = this.$casts()[key]?.newRawInstance(fields);
3197
+ if (mutator && operation === "get") {
3198
+ value = typeof mutator === "function" ? mutator(value) : typeof mutator.get === "function" ? mutator.get(value) : value;
3199
+ }
3200
+ if (cast && operation === "get") {
3201
+ value = cast.get(value);
3202
+ }
3191
3203
  let keyValue = this.$fillField(key, attr, value);
3192
3204
  if (mutator && typeof mutator !== "function" && operation === "set" && mutator.set) {
3193
3205
  keyValue = mutator.set(keyValue);
@@ -3195,36 +3207,6 @@ class Model {
3195
3207
  if (cast && operation === "set") {
3196
3208
  keyValue = cast.set(keyValue);
3197
3209
  }
3198
- if (cast || mutator) {
3199
- Object.defineProperty(this, "_" + key, {
3200
- configurable: true,
3201
- writable: true,
3202
- enumerable: false
3203
- });
3204
- Object.defineProperty(this, key, {
3205
- configurable: true,
3206
- enumerable: true,
3207
- get() {
3208
- let scopeValue = this["_" + key];
3209
- if (scopeValue === void 0) {
3210
- return keyValue;
3211
- }
3212
- if (operation === "set") {
3213
- return scopeValue;
3214
- }
3215
- if (mutator) {
3216
- scopeValue = typeof mutator === "function" ? mutator(scopeValue) : typeof mutator.get === "function" ? mutator.get(scopeValue) : scopeValue;
3217
- }
3218
- if (cast) {
3219
- scopeValue = cast.get(scopeValue);
3220
- }
3221
- return scopeValue;
3222
- },
3223
- set(value2) {
3224
- this["_" + key] = value2;
3225
- }
3226
- });
3227
- }
3228
3210
  this[key] = this[key] ?? keyValue;
3229
3211
  }
3230
3212
  operation === "set" && (this.$self().original[this.$getKey(this, true)] = this.$getAttributes());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinia-orm-edge",
3
- "version": "1.9.0-28580890.9c8ee0d",
3
+ "version": "1.9.0-28581629.9ed41d3",
4
4
  "description": "The Pinia plugin to enable Object-Relational Mapping access to the Pinia Store.",
5
5
  "keywords": [
6
6
  "vue",
@@ -46,7 +46,7 @@
46
46
  "pinia": "^2.1.7"
47
47
  },
48
48
  "dependencies": {
49
- "@pinia-orm/normalizr": "npm:@pinia-orm/normalizr-edge@1.9.0-28580890.9c8ee0d"
49
+ "@pinia-orm/normalizr": "npm:@pinia-orm/normalizr-edge@1.9.0-28581629.9ed41d3"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@nuxt/eslint-config": "^0.3.10",