Skip to content

Commit

Permalink
Merge pull request #7914 from jrjohnson/ember-data-replace-store
Browse files Browse the repository at this point in the history
Replace Ember Data Packages
  • Loading branch information
dartajax committed Jul 3, 2024
2 parents 91cebca + c9c1774 commit 588885b
Show file tree
Hide file tree
Showing 29 changed files with 534 additions and 376 deletions.
4 changes: 3 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ updates:
embroider:
patterns:
- "@embroider/*"
ember-data:
patterns:
- "@ember-data/*"
ignore:
- dependency-name: "@babel/core"
- dependency-name: "@babel/eslint-parser"
Expand All @@ -38,7 +41,6 @@ updates:
- dependency-name: ember-cli-inject-live-reload
- dependency-name: ember-cli-sri
- dependency-name: ember-cli-terser
- dependency-name: ember-data
- dependency-name: ember-fetch
- dependency-name: ember-load-initializers
- dependency-name: ember-modifier
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/app/deprecation-workflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const SILENCED_DEPRECATIONS = [
'ember-data:deprecate-legacy-imports',
'ember-data:deprecate-non-strict-types',
'ember-data:deprecate-non-unique-relationship-entries',
'ember-data:deprecate-many-array-duplicates',
];

registerDeprecationHandler((message, options, next) => {
Expand Down
11 changes: 0 additions & 11 deletions packages/frontend/app/initializers/inflector.js

This file was deleted.

7 changes: 6 additions & 1 deletion packages/frontend/ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const { RetryChunkLoadPlugin } = require('webpack-retry-chunk-load-plugin');
const TerserPlugin = require('terser-webpack-plugin');
// const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');

module.exports = function (defaults) {
module.exports = async function (defaults) {
const env = EmberApp.env() || 'development';
const isTestBuild = env === 'test';

Expand Down Expand Up @@ -67,6 +67,11 @@ module.exports = function (defaults) {

const app = new EmberApp(defaults, config);

const { setConfig } = await import('@warp-drive/build-config');
setConfig(app, __dirname, {
___legacy_support: true,
});

if (process.env.BUILD_WITH_EMBROIDER) {
return require('@embroider/compat').compatBuild(app, Webpack, {
staticAddonTestSupportTrees: true,
Expand Down
10 changes: 10 additions & 0 deletions packages/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@
"@babel/core": "^7.24.4",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-proposal-decorators": "^7.24.1",
"@ember-data/adapter": "5.3.8",
"@ember-data/json-api": "5.3.8",
"@ember-data/legacy-compat": "^5.3.8",
"@ember-data/model": "5.3.8",
"@ember-data/request": "^5.3.8",
"@ember-data/request-utils": "^5.3.8",
"@ember-data/serializer": "5.3.8",
"@ember-data/store": "5.3.8",
"@ember-data/tracking": "5.3.8",
"@ember/edition-utils": "^1.2.0",
"@ember/optional-features": "^2.1.0",
"@ember/string": "^3.1.1",
Expand All @@ -41,6 +50,7 @@
"@percy/cli": "^1.28.7",
"@percy/ember": "^4.2.0",
"@sentry/ember": "^8.12.0",
"@warp-drive/build-config": "0.0.0-beta.6",
"broccoli-asset-rev": "^3.0.0",
"broccoli-file-creator": "^2.1.1",
"broccoli-merge-trees": "^4.2.0",
Expand Down
34 changes: 0 additions & 34 deletions packages/frontend/tests/unit/initializers/inflector-test.js

This file was deleted.

3 changes: 0 additions & 3 deletions packages/ilios-common/addon-mirage-support/get-all.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@ const getAll = function (schema, request) {
//turn /api/programyears?limit=1 into 'programYears'
const modelRegex = /\/api\/([a-z]+).*/i;
let modelName = getName(request.url.match(modelRegex)[1]);
if ('aamcpcrses' === modelName.toLowerCase()) {
modelName = 'aamcPcrs';
}
if (!schema[modelName]) {
console.error(
'Mirage: The route handler for ' +
Expand Down
2 changes: 1 addition & 1 deletion packages/ilios-common/addon-mirage-support/get-name.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var models = [
'aamcMethods',
'aamcPcrs',
'aamcPcrses',
'academicYears',
'assessmentOptions',
'courseLearningMaterials',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import Inflector from 'ember-inflector';

import { irregular } from '@ember-data/request-utils/string';
export function initialize() {
const inflector = Inflector.inflector;
inflector.irregular('pcrs', 'pcrses');
irregular('pcrs', 'pcrses');
irregular('vocabulary', 'vocabularies');

Inflector.inflector.irregular('pcrs', 'pcrses');
Inflector.inflector.irregular('vocabulary', 'vocabularies');
}

export default {
Expand Down
3 changes: 0 additions & 3 deletions packages/ilios-common/addon/models/vocabulary.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import Model, { belongsTo, hasMany, attr } from '@ember-data/model';
import Inflector from 'ember-inflector';
import { filter } from 'rsvp';

Inflector.inflector.irregular('vocabulary', 'vocabularies');

export default class Vocabulary extends Model {
@attr('string')
title;
Expand Down
48 changes: 48 additions & 0 deletions packages/ilios-common/addon/services/store.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import BaseStore, { CacheHandler } from '@ember-data/store';
import JSONAPICache from '@ember-data/json-api';
import {
adapterFor,
LegacyNetworkHandler,
normalize,
pushPayload,
serializeRecord,
serializerFor,
} from '@ember-data/legacy-compat';
import { buildSchema, instantiateRecord, modelFor, teardownRecord } from '@ember-data/model/hooks';
import RequestManager from '@ember-data/request';
import Fetch from '@ember-data/request/fetch';

export default class StoreService extends BaseStore {
adapterFor = adapterFor;
serializerFor = serializerFor;
pushPayload = pushPayload;
normalize = normalize;
serializeRecord = serializeRecord;

constructor() {
super(...arguments);
this.requestManager = new RequestManager();
this.requestManager.use([LegacyNetworkHandler, Fetch]);
this.requestManager.useCache(CacheHandler);
}

createSchemaService() {
return buildSchema(this);
}

createCache(storeWrapper) {
return new JSONAPICache(storeWrapper);
}

instantiateRecord(identifier, createRecordArgs) {
return instantiateRecord.call(this, identifier, createRecordArgs);
}

teardownRecord(record) {
teardownRecord.call(this, record);
}

modelFor(type) {
return modelFor.call(this, type) || super.modelFor(type);
}
}
1 change: 1 addition & 0 deletions packages/ilios-common/app/services/store.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from 'ilios-common/services/store';
1 change: 1 addition & 0 deletions packages/ilios-common/app/transforms/boolean.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { BooleanTransform as default } from '@ember-data/serializer/transform';
1 change: 1 addition & 0 deletions packages/ilios-common/app/transforms/date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { DateTransform as default } from '@ember-data/serializer/transform';
1 change: 1 addition & 0 deletions packages/ilios-common/app/transforms/number.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { NumberTransform as default } from '@ember-data/serializer/transform';
1 change: 1 addition & 0 deletions packages/ilios-common/app/transforms/string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { StringTransform as default } from '@ember-data/serializer/transform';
6 changes: 5 additions & 1 deletion packages/ilios-common/ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@

const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');

module.exports = function (defaults) {
module.exports = async function (defaults) {
const app = new EmberAddon(defaults, {
// Add options here
});
const { setConfig } = await import('@warp-drive/build-config');
setConfig(app, __dirname, {
___legacy_support: true,
});

/*
This build file specifies the options for the dummy test app of this
Expand Down
20 changes: 19 additions & 1 deletion packages/ilios-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
"ember-click-outside": "^6.0.0",
"ember-concurrency": "^4.0.2",
"ember-could-get-used-to-this": "^1.0.1",
"ember-data": "5.3.0",
"ember-event-helpers": "^0.1.0",
"ember-feature-flags": "^6.0.0",
"ember-file-upload": "^9.0.0",
Expand Down Expand Up @@ -71,6 +70,15 @@
"validator": ">= 13.12.0"
},
"peerDependencies": {
"@ember-data/adapter": "5.3.8",
"@ember-data/json-api": "5.3.8",
"@ember-data/legacy-compat": "^5.3.8",
"@ember-data/model": "5.3.8",
"@ember-data/request": "^5.3.8",
"@ember-data/request-utils": "^5.3.8",
"@ember-data/serializer": "5.3.8",
"@ember-data/store": "5.3.8",
"@ember-data/tracking": "5.3.8",
"@popperjs/core": ">= 2.1.0",
"class-validator": ">= 0.14.0",
"ember-source": ">= 4.0.0",
Expand All @@ -88,11 +96,21 @@
"devDependencies": {
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-proposal-decorators": "^7.24.1",
"@ember-data/adapter": "5.3.8",
"@ember-data/json-api": "5.3.8",
"@ember-data/legacy-compat": "^5.3.8",
"@ember-data/model": "5.3.8",
"@ember-data/request": "^5.3.8",
"@ember-data/request-utils": "^5.3.8",
"@ember-data/serializer": "5.3.8",
"@ember-data/store": "5.3.8",
"@ember-data/tracking": "5.3.8",
"@ember/edition-utils": "^1.1.1",
"@ember/optional-features": "^2.1.0",
"@ember/test-helpers": "^3.3.0",
"@embroider/test-setup": "^4.0.0",
"@ilios/ember-template-lint-plugin": "^3.0.0",
"@warp-drive/build-config": "0.0.0-beta.6",
"broccoli-asset-rev": "^3.0.0",
"ember-cli": "~5.8.1",
"ember-cli-clean-css": "^3.0.0",
Expand Down
1 change: 1 addition & 0 deletions packages/lti-course-manager/app/deprecation-workflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const SILENCED_DEPRECATIONS = [
// Add ids of deprecations we temporarily want to silence here.
'ember-data:deprecate-legacy-imports',
'ember-data:deprecate-non-strict-types',
'ember-data:deprecate-many-array-duplicates',
];

registerDeprecationHandler((message, options, next) => {
Expand Down
7 changes: 6 additions & 1 deletion packages/lti-course-manager/ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app');
const broccoliAssetRevDefaults = require('broccoli-asset-rev/lib/default-options');
const { Webpack } = require('@embroider/webpack');

module.exports = function (defaults) {
module.exports = async function (defaults) {
const env = EmberApp.env() || 'development';
const isTestBuild = env === 'test';

Expand All @@ -25,6 +25,11 @@ module.exports = function (defaults) {
}
const app = new EmberApp(defaults, config);

const { setConfig } = await import('@warp-drive/build-config');
setConfig(app, __dirname, {
___legacy_support: true,
});

if (process.env.BUILD_WITH_EMBROIDER) {
return require('@embroider/compat').compatBuild(app, Webpack, {
staticAddonTestSupportTrees: true,
Expand Down
10 changes: 10 additions & 0 deletions packages/lti-course-manager/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,15 @@
"@babel/core": "^7.24.4",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-proposal-decorators": "^7.24.1",
"@ember-data/adapter": "5.3.8",
"@ember-data/json-api": "5.3.8",
"@ember-data/legacy-compat": "^5.3.8",
"@ember-data/model": "5.3.8",
"@ember-data/request": "^5.3.8",
"@ember-data/request-utils": "^5.3.8",
"@ember-data/serializer": "5.3.8",
"@ember-data/store": "5.3.8",
"@ember-data/tracking": "5.3.8",
"@ember/edition-utils": "^1.2.0",
"@ember/optional-features": "^2.1.0",
"@ember/string": "^3.1.1",
Expand All @@ -36,6 +45,7 @@
"@embroider/webpack": "~4.0.3",
"@glimmer/component": "^1.1.2",
"@glimmer/tracking": "^1.1.2",
"@warp-drive/build-config": "0.0.0-beta.6",
"broccoli-asset-rev": "^3.0.0",
"broccoli-file-creator": "^2.1.1",
"broccoli-merge-trees": "^4.2.0",
Expand Down
1 change: 1 addition & 0 deletions packages/lti-dashboard/app/deprecation-workflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const SILENCED_DEPRECATIONS = [
// Add ids of deprecations we temporarily want to silence here.
'ember-data:deprecate-legacy-imports',
'ember-data:deprecate-non-strict-types',
'ember-data:deprecate-many-array-duplicates',
];

registerDeprecationHandler((message, options, next) => {
Expand Down
7 changes: 6 additions & 1 deletion packages/lti-dashboard/ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app');
const broccoliAssetRevDefaults = require('broccoli-asset-rev/lib/default-options');
const { Webpack } = require('@embroider/webpack');

module.exports = function (defaults) {
module.exports = async function (defaults) {
const env = EmberApp.env() || 'development';
const isTestBuild = env === 'test';

Expand All @@ -26,6 +26,11 @@ module.exports = function (defaults) {
}
const app = new EmberApp(defaults, config);

const { setConfig } = await import('@warp-drive/build-config');
setConfig(app, __dirname, {
___legacy_support: true,
});

if (process.env.BUILD_WITH_EMBROIDER) {
return require('@embroider/compat').compatBuild(app, Webpack, {
staticAddonTestSupportTrees: true,
Expand Down
10 changes: 10 additions & 0 deletions packages/lti-dashboard/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,15 @@
"@babel/core": "^7.24.4",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-proposal-decorators": "^7.24.1",
"@ember-data/adapter": "5.3.8",
"@ember-data/json-api": "5.3.8",
"@ember-data/legacy-compat": "^5.3.8",
"@ember-data/model": "5.3.8",
"@ember-data/request": "^5.3.8",
"@ember-data/request-utils": "^5.3.8",
"@ember-data/serializer": "5.3.8",
"@ember-data/store": "5.3.8",
"@ember-data/tracking": "5.3.8",
"@ember/edition-utils": "^1.2.0",
"@ember/optional-features": "^2.1.0",
"@ember/string": "^3.1.1",
Expand All @@ -35,6 +44,7 @@
"@embroider/webpack": "~4.0.3",
"@glimmer/component": "^1.1.2",
"@glimmer/tracking": "^1.1.2",
"@warp-drive/build-config": "0.0.0-beta.6",
"broccoli-asset-rev": "^3.0.0",
"broccoli-file-creator": "^2.1.1",
"broccoli-merge-trees": "^4.2.0",
Expand Down
1 change: 1 addition & 0 deletions packages/test-app/app/deprecation-workflow.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ const SILENCED_DEPRECATIONS = [
'ember-data:deprecate-non-strict-types',
'ember-data:deprecate-non-strict-id',
'ember-data:deprecate-non-unique-relationship-entries',
'ember-data:deprecate-many-array-duplicates',
];

registerDeprecationHandler((message, options, next) => {
Expand Down
Loading

0 comments on commit 588885b

Please sign in to comment.