Skip to content

Commit 8114e2f

Browse files
Merge pull request #10939 from ember-cli/copilot/update-app-blueprint-migration
Add warpDrive support to app-blueprint
2 parents 0b3a4ab + 6ee99c5 commit 8114e2f

File tree

9 files changed

+56
-20
lines changed

9 files changed

+56
-20
lines changed

packages/addon-blueprint/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ module.exports = {
244244
embroider: false,
245245
lang: options.lang,
246246
emberData: options.emberData,
247+
warpDrive: options.warpDrive ?? options.emberData ?? false,
247248
ciProvider: options.ciProvider,
248249
typescript: options.typescript,
249250
strict: options.strict,

packages/app-blueprint/files/_js_eslint.config.mjs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
import globals from 'globals';
1616
import js from '@eslint/js';
1717

18-
import ember from 'eslint-plugin-ember/recommended';
18+
import ember from 'eslint-plugin-ember/recommended';<% if (warpDrive) { %>
19+
import WarpDrive from 'eslint-plugin-warp-drive/recommended';<% } %>
1920
import eslintConfigPrettier from 'eslint-config-prettier';
2021
import qunit from 'eslint-plugin-qunit';
2122
import n from 'eslint-plugin-n';
@@ -38,7 +39,8 @@ export default [
3839
eslintConfigPrettier,
3940
ember.configs.base,
4041
ember.configs.gjs,
41-
/**
42+
<% if (warpDrive) { %>...WarpDrive,
43+
<% } %>/**
4244
* Ignores must be in their own object
4345
* https://eslint.org/docs/latest/use/configure/ignore
4446
*/

packages/app-blueprint/files/_ts_eslint.config.mjs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import js from '@eslint/js';
1919

2020
import ts from 'typescript-eslint';
2121

22-
import ember from 'eslint-plugin-ember/recommended';
22+
import ember from 'eslint-plugin-ember/recommended';<% if (warpDrive) { %>
23+
import WarpDrive from 'eslint-plugin-warp-drive/recommended';<% } %>
2324

2425
import eslintConfigPrettier from 'eslint-config-prettier';
2526
import qunit from 'eslint-plugin-qunit';
@@ -54,7 +55,8 @@ export default ts.config(
5455
ember.configs.base,
5556
ember.configs.gjs,
5657
ember.configs.gts,
57-
eslintConfigPrettier,
58+
<% if (warpDrive) { %>...WarpDrive,
59+
<% } %>eslintConfigPrettier,
5860
/**
5961
* Ignores must be in their own object
6062
* https://eslint.org/docs/latest/use/configure/ignore

packages/app-blueprint/files/app/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<% if (emberData) { %>import '@warp-drive/ember/install';
1+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
22
<% } %>import Application from '@ember/application';
33
import Resolver from 'ember-resolver';
44
import loadInitializers from 'ember-load-initializers';
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { useLegacyStore } from '@warp-drive/legacy';
2+
import { JSONAPICache } from '@warp-drive/json-api';
3+
4+
const Store = useLegacyStore({
5+
linksMode: false,
6+
cache: JSONAPICache,
7+
handlers: [
8+
// -- your handlers here
9+
],
10+
schemas: [
11+
// -- your schemas here
12+
],
13+
});
14+
15+
type Store = InstanceType<typeof Store>;
16+
17+
export default Store;

packages/app-blueprint/files/ember-cli-build.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,25 @@
11
'use strict';
22

33
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
4-
4+
<% if (warpDrive) {%>const { setConfig } = require('@warp-drive/core/build-config');
5+
<% } %>
56
module.exports = function (defaults) {
67
const app = new EmberApp(defaults, {
7-
<% if (emberData) {%>emberData: {
8-
deprecations: {
9-
// New projects can safely leave this deprecation disabled.
10-
// If upgrading, to opt-into the deprecated behavior, set this to true and then follow:
11-
// https://deprecations.emberjs.com/id/ember-data-deprecate-store-extends-ember-object
12-
// before upgrading to Ember Data 6.0
13-
DEPRECATE_STORE_EXTENDS_EMBER_OBJECT: false,
14-
},
15-
},
16-
<% } %><% if (typescript) {%>'ember-cli-babel': { enableTypeScriptTransform: true },
8+
<% if (typescript) {%>'ember-cli-babel': { enableTypeScriptTransform: true },
179

1810
<% } %>// Add options here
1911
});
12+
<% if (warpDrive) {%>
13+
setConfig(app, __dirname, {
14+
// this should be the most recent <major>.<minor> version for
15+
// which all deprecations have been fully resolved
16+
// and should be updated when that changes
17+
compatWith: '5.8',
18+
deprecations: {
19+
// ... list individual deprecations that have been resolved here
20+
},
21+
});
22+
<% } %>
2023

2124
<% if (embroider) { %>const { Webpack } = require('@embroider/webpack');
2225
return require('@embroider/compat').compatBuild(app, Webpack, {

packages/app-blueprint/files/package.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,12 @@
5555
"@glint/template": "^1.7.4",
5656
"@tsconfig/ember": "^3.0.12",
5757
"@types/qunit": "^2.19.13",
58-
"@types/rsvp": "^4.0.9<% if (emberData) {%>",
59-
"@warp-drive/core-types": "~5.7.0<% }} %>",
58+
"@types/rsvp": "^4.0.9<% } %><% if (warpDrive) { %>",
59+
"@warp-drive/core": "~5.8.0",
60+
"@warp-drive/ember": "~5.8.0",
61+
"@warp-drive/json-api": "~5.8.0",
62+
"@warp-drive/legacy": "~5.8.0",
63+
"@warp-drive/utilities": "~5.8.0<% } %>",
6064
"broccoli-asset-rev": "^3.0.0",
6165
"concurrently": "^9.2.1",
6266
"ember-auto-import": "^2.12.0",
@@ -84,7 +88,8 @@
8488
"eslint-config-prettier": "^9.1.2",
8589
"eslint-plugin-ember": "^12.7.5",
8690
"eslint-plugin-n": "^17.23.2",
87-
"eslint-plugin-qunit": "^8.2.6",
91+
"eslint-plugin-qunit": "^8.2.6<% if (warpDrive) { %>",
92+
"eslint-plugin-warp-drive": "^5.8.0<% } %>",
8893
"globals": "^15.15.0",
8994
"loader.js": "^4.7.0",
9095
"prettier": "^3.8.1",

packages/app-blueprint/files/tests/test-helper.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import Application from '<%= modulePrefix %>/app';
1+
<% if (warpDrive) { %>import '@warp-drive/ember/install';
2+
<% } %>import Application from '<%= modulePrefix %>/app';
23
import config from '<%= modulePrefix %>/config/environment';
34
import * as QUnit from 'qunit';
45
import { setApplication } from '@ember/test-helpers';

packages/app-blueprint/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ module.exports = {
8080
embroider,
8181
lang: options.lang,
8282
emberData: options.emberData,
83+
warpDrive: options.warpDrive ?? options.emberData ?? false,
8384
ciProvider: options.ciProvider,
8485
typescript: options.typescript,
8586
strict: options.strict,
@@ -109,6 +110,10 @@ module.exports = {
109110
files = files.filter((file) => !file.includes('ember-data/'));
110111
}
111112

113+
if (!options.warpDrive && !options.emberData) {
114+
files = files.filter((file) => !file.includes('services/store.ts'));
115+
}
116+
112117
if (options.strict) {
113118
files = files.filter((file) => !file.endsWith('.hbs'));
114119
} else {

0 commit comments

Comments
 (0)