chore: 🤖 upgrade ember-data to v5.3.11 (#2745)

* chore: 🤖 upgrade ember-data to v5.3.11

* Add missing copyright headers

* refactor: 💡 remove comment

* chore: 🤖 update yarn.lock due to merge conflict

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* fix: 🐛 undo ember-source upgrade (should be upgraded w/ ember)

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* chore: 🤖 move dep to devDeps & resolve test-helper version

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* fix: 🐛 unique record id error bug fix using store.push

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 cleanup

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* Delete old deprecation initializer (#2748)

* refactor: 💡 import from'ember-data/store'

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 clean up comments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

* refactor: 💡 remove compatWith comment

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16544

---------

Co-authored-by: Carlos Alcaide Corvo <ccorvo@hashicorp.com>
This commit is contained in:
Lisbet AlvarezandCarlos Alcaide Corvo authored and GitHub committed 2025-04-03 09:32:44 -07:00
1 parent 834058ff45
commit 9dd1617b57
30 files changed
+598 -636

No files matched your search

@@ -43,7 +43,10 @@ const fetchControllerData = async (context, next) => {
// If we get an error or cache daemon is unavailable, fall back to calling the API
context.request.data.query = remainingQuery;
const results = await next(context.request);
const models = results.content.toArray();
// As a result of https://rfcs.emberjs.com/id/0846-ember-data-deprecate-proxies/ we cannot use proxy array methods like .toArray
// use slice() instead as indicated in the RFC.
const models = results.content.slice();
const paginatedResult = paginateResults(models, page, pageSize);
paginatedResult.meta = { totalItems: models.length };
+6 -10
View File
@@ -244,12 +244,10 @@ export default class ApplicationSerializer extends RESTSerializer {
* @return {object}
*/
normalizeMissingArrays(store, primaryModelClass, payload) {
const attrDefs = store
.getSchemaDefinitionService()
.attributesDefinitionFor({ type: primaryModelClass.modelName });
const attrDefs = store.schema.fields({ type: primaryModelClass.modelName });
if (attrDefs) {
Object.keys(attrDefs).forEach((key) => {
if (!payload[key] && attrDefs[key]?.options?.emptyArrayIfMissing) {
attrDefs.keys().forEach((key) => {
if (!payload[key] && attrDefs.get(key)?.options?.emptyArrayIfMissing) {
payload[key] = [];
}
});
@@ -268,12 +266,10 @@ export default class ApplicationSerializer extends RESTSerializer {
* @return {object}
*/
normalizeMissingObjects(store, primaryModelClass, payload) {
const attrDefs = store
.getSchemaDefinitionService()
.attributesDefinitionFor({ type: primaryModelClass.modelName });
const attrDefs = store.schema.fields({ type: primaryModelClass.modelName });
if (attrDefs) {
Object.keys(attrDefs).forEach((key) => {
if (!payload[key] && attrDefs[key]?.options?.emptyObjectIfMissing) {
attrDefs.keys().forEach((key) => {
if (!payload[key] && attrDefs.get(key)?.options?.emptyObjectIfMissing) {
payload[key] = {};
}
});
+5 -1
View File
@@ -3,7 +3,11 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Store, { CacheHandler } from '@ember-data/store';
// Importing 'Store' from 'ember-data/store' to get default configuration automatically.
// TODO: Remove eslint-disable after upgrading to eslint-plugin-ember >= v12.2.1
// eslint-disable-next-line ember/use-ember-data-rfc-395-imports
import Store from 'ember-data/store';
import { CacheHandler } from '@ember-data/store';
import RequestManager from '@ember-data/request';
import { LegacyNetworkHandler } from '@ember-data/legacy-compat';
import IndexedDbHandler from 'api/handlers/indexed-db-handler';
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
export default class AccountValueMapArrayTransform extends Transform {
export default class AccountValueMapArrayTransform {
deserialize(serialized) {
const accountValues = serialized || [];
return accountValues.map((accountValueString) => ({
@@ -18,4 +16,8 @@ export default class AccountValueMapArrayTransform extends Transform {
const accountValues = deserialized || [];
return accountValues.map(({ key, value }) => `${key}=${value}`);
}
static create() {
return new this();
}
}
+5 -2
View File
@@ -3,10 +3,9 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
import { TrackedArray } from 'tracked-built-ins';
export default class ArrayTransform extends Transform {
export default class ArrayTransform {
deserialize(serialized) {
const arr = new TrackedArray(serialized || []);
return arr;
@@ -16,4 +15,8 @@ export default class ArrayTransform extends Transform {
const arr = deserialized || [];
return arr;
}
static create() {
return new this();
}
}
+5 -3
View File
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
export default class DurationTransform extends Transform {
export default class DurationTransform {
/**
* Normalize a duration string in the format "3.0001s" to milliseconds.
* The backend returns a precision of nanoseconds but we round to whole
@@ -37,4 +35,8 @@ export default class DurationTransform extends Transform {
maximumFractionDigits: 9,
})}s`;
}
static create() {
return new this();
}
}
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
export default class HostSourceIdArrayTransform extends Transform {
export default class HostSourceIdArrayTransform {
deserialize(serialized) {
const stringValues = serialized || [];
return stringValues.map(({ id: host_source_id, ...obj }) => ({
@@ -18,4 +16,8 @@ export default class HostSourceIdArrayTransform extends Transform {
const strings = deserialized || [];
return strings.map(({ host_source_id: id, ...obj }) => ({ id, ...obj }));
}
static create() {
return new this();
}
}
@@ -3,13 +3,12 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
export default class ObjectAsArrayTransform extends Transform {
export default class ObjectAsArrayTransform {
deserialize(serialized) {
const obj = serialized || {};
return Object.entries(obj).map(([key, value]) => ({ key, value }));
}
serialize(deserialized) {
const array = deserialized || [];
@@ -24,4 +23,8 @@ export default class ObjectAsArrayTransform extends Transform {
return result;
}, {});
}
static create() {
return new this();
}
}
+5 -2
View File
@@ -3,10 +3,9 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
import { TrackedObject } from 'tracked-built-ins';
export default class ObjectTransform extends Transform {
export default class ObjectTransform {
/**
* @param serialized
* @returns {object}
@@ -26,4 +25,8 @@ export default class ObjectTransform extends Transform {
}
return deserialized;
}
static create() {
return new this();
}
}
+5 -3
View File
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: BUSL-1.1
*/
import Transform from '@ember-data/serializer/transform';
export default class StringArrayTransform extends Transform {
export default class StringArrayTransform {
deserialize(serialized) {
const stringValues = serialized || [];
return stringValues.map((value) => ({ value }));
@@ -15,4 +13,8 @@ export default class StringArrayTransform extends Transform {
const strings = deserialized || [];
return strings.map(({ value }) => value);
}
static create() {
return new this();
}
}
+7
View File
@@ -0,0 +1,7 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
// Ember-data no longer automatically installs BooleanTransform for apps.
export { BooleanTransform as default } from '@ember-data/serializer/transform';
+6
View File
@@ -0,0 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
export { DateTransform as default } from '@ember-data/serializer/transform';
+6
View File
@@ -0,0 +1,6 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
export { NumberTransform as default } from '@ember-data/serializer/transform';
+7
View File
@@ -0,0 +1,7 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
// Ember-data no longer automatically installs StringTransform for apps.
export { StringTransform as default } from '@ember-data/serializer/transform';
+5 -4
View File
@@ -24,22 +24,23 @@
},
"dependencies": {
"dexie": "^3.2.4",
"ember-auto-import": "^2.8.1",
"ember-auto-import": "^2.10.0",
"ember-can": "^4.2.0",
"ember-cli-babel": "^8.2.0",
"ember-cli-htmlbars": "^6.2.0",
"ember-cli-mirage": "^3.0.3",
"ember-data": "~4.12.0",
"ember-data": "~5.3.12",
"miragejs": "^0.1.48",
"tracked-built-ins": "^3.1.1"
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/core": "^7.26.10",
"@babel/eslint-parser": "^7.21.3",
"@babel/plugin-proposal-decorators": "^7.21.0",
"@ember/optional-features": "^2.0.0",
"@ember/string": "^3.0.1",
"@ember/test-helpers": "^4.0.4",
"@ember/test-helpers": "^4.0.5",
"@ember/test-waiters": "^4.1.0",
"@embroider/test-setup": "^2.1.1",
"@faker-js/faker": "^8.0.2",
"@glimmer/component": "^1.1.2",