Skip to content

Commit 7f849ad

Browse files
authored
feat: string utils 🌌 (#9468)
* feat: string utils * fixup * refactor to use own utils * fix prettier * cleanup lint * fixup tsconfigs * fix lint * fixup prettier * fix bug * fix tests
1 parent 97f97f7 commit 7f849ad

File tree

96 files changed

+1415
-981
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+1415
-981
lines changed

β€Ž.github/renovate.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
"groupName": "testing"
7777
},
7878
{
79-
"matchPackageNames": ["ember-inflector", "ember-promise-helpers"],
79+
"matchPackageNames": ["ember-promise-helpers"],
8080
"groupName": "data-utils"
8181
},
8282
{

β€Žpackage.json

-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@
141141
"ember-cli-htmlbars": "^6.3.0",
142142
"ember-cli-typescript": "^5.3.0",
143143
"webpack": "5.91.0",
144-
"@ember/string": "3.1.1",
145144
"qunit": "2.19.4",
146145
"ember-compatibility-helpers": "^1.2.7",
147146
"testem": "~3.11.0"

β€Žpackages/-ember-data/eslint.config.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ export default [
1616
'@embroider/macros',
1717
'@ember/application/namespace',
1818
'ember',
19-
'ember-inflector',
2019
'@ember/debug',
2120
'@ember/array/proxy',
2221
'@ember/object/promise-proxy-mixin',

β€Žpackages/-ember-data/package.json

-9
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,9 @@
9595
"@ember-data/tracking": {
9696
"injected": true
9797
},
98-
"@ember/string": {
99-
"injected": true
100-
},
10198
"@warp-drive/core-types": {
10299
"injected": true
103100
},
104-
"ember-inflector": {
105-
"injected": true
106-
},
107101
"@warp-drive/build-config": {
108102
"injected": true
109103
}
@@ -123,11 +117,9 @@
123117
"@ember/edition-utils": "^1.2.0",
124118
"@embroider/macros": "^1.16.1",
125119
"@warp-drive/core-types": "workspace:0.0.0-alpha.60",
126-
"ember-inflector": "^4.0.2",
127120
"@warp-drive/build-config": "workspace:0.0.0-alpha.11"
128121
},
129122
"peerDependencies": {
130-
"@ember/string": "^3.1.1",
131123
"@ember/test-helpers": "^3.3.0",
132124
"@ember/test-waiters": "^3.1.0",
133125
"qunit": "^2.18.0"
@@ -148,7 +140,6 @@
148140
"@babel/plugin-transform-typescript": "^7.24.5",
149141
"@babel/preset-env": "^7.24.5",
150142
"@babel/preset-typescript": "^7.24.1",
151-
"@ember/string": "3.1.1",
152143
"@ember/test-waiters": "^3.1.0",
153144
"@glimmer/component": "^1.1.2",
154145
"@glimmer/tracking": "^1.1.2",

β€Žpackages/-ember-data/src/index.ts

-2
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,6 @@ that has not explicitly activated it. To activate it set the appropriate flag to
161161
@module ember-data-overview
162162
@main ember-data-overview
163163
*/
164-
import 'ember-inflector';
165-
166164
import { deprecate } from '@ember/debug';
167165

168166
import { dependencySatisfies, importSync, macroCondition } from '@embroider/macros';

β€Žpackages/-ember-data/vite.config.mjs

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ export const externals = [
99
'@ember/object/proxy',
1010
'@ember/application',
1111
'@ember/owner',
12-
'ember-inflector',
1312
'qunit',
1413
'@ember/test-waiters',
1514
'@ember/test-helpers',

β€Žpackages/active-record/eslint.config.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default [
1111
// browser (js/ts) ================
1212
typescript.browser({
1313
srcDirs: ['src'],
14-
allowedImports: ['ember-inflector', '@ember/string'],
14+
allowedImports: [],
1515
}),
1616

1717
// node (module) ================

β€Žpackages/active-record/package.json

+1-11
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@
5151
"peerDependencies": {
5252
"@ember-data/request-utils": "workspace:5.4.0-alpha.74",
5353
"@ember-data/store": "^4.12.0 || ^5.0.0",
54-
"@ember/string": "^3.1.1",
55-
"@warp-drive/core-types": "workspace:0.0.0-alpha.60",
56-
"ember-inflector": "^4.0.2"
54+
"@warp-drive/core-types": "workspace:0.0.0-alpha.60"
5755
},
5856
"devDependencies": {
5957
"@babel/core": "^7.24.5",
@@ -63,23 +61,15 @@
6361
"@ember-data/request-utils": "workspace:5.4.0-alpha.74",
6462
"@ember-data/store": "workspace:5.4.0-alpha.74",
6563
"@ember-data/tracking": "workspace:5.4.0-alpha.74",
66-
"@ember/string": "^3.1.1",
6764
"@glimmer/component": "^1.1.2",
6865
"@warp-drive/core-types": "workspace:0.0.0-alpha.60",
6966
"@warp-drive/internal-config": "workspace:5.4.0-alpha.74",
70-
"ember-inflector": "^4.0.2",
7167
"ember-source": "~5.8.0",
7268
"pnpm-sync-dependencies-meta-injected": "0.0.14",
7369
"vite": "^5.2.11",
7470
"typescript": "^5.4.5"
7571
},
7672
"dependenciesMeta": {
77-
"ember-inflector": {
78-
"injected": true
79-
},
80-
"@ember/string": {
81-
"injected": true
82-
},
8373
"@warp-drive/core-types": {
8474
"injected": true
8575
},

β€Žpackages/active-record/src/-private/builders/find-record.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
/**
22
* @module @ember-data/active-record/request
33
*/
4-
import { underscore } from '@ember/string';
5-
6-
import { pluralize } from 'ember-inflector';
7-
84
import { buildBaseURL, buildQueryParams, type FindRecordUrlOptions } from '@ember-data/request-utils';
5+
import { pluralize, underscore } from '@ember-data/request-utils/string';
96
import type { TypeFromInstance } from '@warp-drive/core-types/record';
107
import type {
118
FindRecordOptions,

β€Žpackages/active-record/src/-private/builders/query.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
/**
22
* @module @ember-data/active-record/request
33
*/
4-
import { underscore } from '@ember/string';
5-
6-
import { pluralize } from 'ember-inflector';
7-
84
import { buildBaseURL, buildQueryParams, type QueryUrlOptions } from '@ember-data/request-utils';
5+
import { pluralize, underscore } from '@ember-data/request-utils/string';
96
import type { QueryParamsSource } from '@warp-drive/core-types/params';
107
import type { TypeFromInstance } from '@warp-drive/core-types/record';
118
import type { ConstrainedRequestOptions, QueryRequestOptions } from '@warp-drive/core-types/request';

β€Žpackages/active-record/src/-private/builders/save-record.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
import { underscore } from '@ember/string';
2-
3-
import { pluralize } from 'ember-inflector';
4-
51
import {
62
buildBaseURL,
73
type CreateRecordUrlOptions,
84
type DeleteRecordUrlOptions,
95
type UpdateRecordUrlOptions,
106
} from '@ember-data/request-utils';
7+
import { pluralize, underscore } from '@ember-data/request-utils/string';
118
import { recordIdentifierFor } from '@ember-data/store';
129
import { assert } from '@warp-drive/build-config/macros';
1310
import type { StableExistingRecordIdentifier, StableRecordIdentifier } from '@warp-drive/core-types/identifier';

β€Žpackages/adapter/eslint.config.mjs

+2-18
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,14 @@ export default [
1212
// browser (js) ================
1313
js.browser({
1414
srcDirs: ['src'],
15-
allowedImports: [
16-
'@ember/object',
17-
'@ember/application',
18-
'@ember/service',
19-
'@ember/debug',
20-
'ember-inflector',
21-
'@ember/object/mixin',
22-
'@ember/string',
23-
],
15+
allowedImports: ['@ember/object', '@ember/application', '@ember/service', '@ember/debug', '@ember/object/mixin'],
2416
}),
2517

2618
// browser (ts) ================
2719
typescript.browser({
2820
files: ['**/*.ts', '**/*.gts'],
2921
srcDirs: ['src'],
30-
allowedImports: [
31-
'@ember/object',
32-
'@ember/application',
33-
'@ember/service',
34-
'@ember/debug',
35-
'ember-inflector',
36-
'@ember/object/mixin',
37-
'@ember/string',
38-
],
22+
allowedImports: ['@ember/object', '@ember/application', '@ember/service', '@ember/debug', '@ember/object/mixin'],
3923
}),
4024

4125
// node (module) ================

β€Žpackages/adapter/package.json

+1-10
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,10 @@
4747
"peerDependencies": {
4848
"@ember-data/legacy-compat": "workspace:5.4.0-alpha.74",
4949
"@ember-data/store": "workspace:5.4.0-alpha.74",
50-
"@ember/string": "^3.1.1",
51-
"ember-inflector": "^4.0.2",
50+
"@ember-data/request-utils": "workspace:5.4.0-alpha.74",
5251
"@warp-drive/core-types": "workspace:0.0.0-alpha.60"
5352
},
5453
"dependenciesMeta": {
55-
"@ember/string": {
56-
"injected": true
57-
},
5854
"@warp-drive/core-types": {
5955
"injected": true
6056
},
@@ -64,9 +60,6 @@
6460
"@ember-data/store": {
6561
"injected": true
6662
},
67-
"ember-inflector": {
68-
"injected": true
69-
},
7063
"@ember-data/request": {
7164
"injected": true
7265
},
@@ -106,13 +99,11 @@
10699
"@ember-data/store": "workspace:5.4.0-alpha.74",
107100
"@ember-data/tracking": "workspace:5.4.0-alpha.74",
108101
"@ember/test-waiters": "^3.1.0",
109-
"@ember/string": "^3.1.1",
110102
"@glimmer/component": "^1.1.2",
111103
"decorator-transforms": "^2.0.0",
112104
"@types/jquery": "^3.5.30",
113105
"@warp-drive/core-types": "workspace:0.0.0-alpha.60",
114106
"@warp-drive/internal-config": "workspace:5.4.0-alpha.74",
115-
"ember-inflector": "^4.0.2",
116107
"ember-source": "~5.8.0",
117108
"pnpm-sync-dependencies-meta-injected": "0.0.14",
118109
"typescript": "^5.4.5",

β€Žpackages/adapter/src/-private/build-url-mixin.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import Mixin from '@ember/object/mixin';
2-
import { camelize } from '@ember/string';
3-
4-
import { pluralize } from 'ember-inflector';
52

63
import type { Snapshot, SnapshotRecordArray } from '@ember-data/legacy-compat/-private';
4+
import { camelize, pluralize } from '@ember-data/request-utils/string';
75

86
/**
97
@module @ember-data/adapter
@@ -654,12 +652,11 @@ function urlPrefix(this: MixtBuildURLMixin, path?: string | null, parentURL?: st
654652
655653
```app/adapters/application.js
656654
import RESTAdapter from '@ember-data/adapter/rest';
657-
import { decamelize, pluralize } from '<app-name>/utils/string-utils';
655+
import { undesrcore, pluralize } from '<app-name>/utils/string-utils';
658656
659657
export default class ApplicationAdapter extends RESTAdapter {
660658
pathForType(modelName) {
661-
var decamelized = decamelize(modelName);
662-
return pluralize(decamelized);
659+
return pluralize(underscore(modelName));
663660
}
664661
}
665662
```

β€Žpackages/adapter/src/json-api.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
/**
22
@module @ember-data/adapter/json-api
33
*/
4-
import { dasherize } from '@ember/string';
5-
6-
import { pluralize } from 'ember-inflector';
7-
84
import type { AdapterPayload } from '@ember-data/legacy-compat';
95
import type { Snapshot } from '@ember-data/legacy-compat/-private';
6+
import { dasherize, pluralize } from '@ember-data/request-utils/string';
107
import type Store from '@ember-data/store';
118
import type { ModelSchema } from '@ember-data/store/types';
129
import { assert } from '@warp-drive/build-config/macros';

β€Žpackages/debug/package.json

+5-6
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,10 @@
4242
"peerDependencies": {
4343
"@ember-data/store": "workspace:5.4.0-alpha.74",
4444
"@ember-data/model": "workspace:5.4.0-alpha.74",
45-
"@ember/string": "^3.1.1",
45+
"@ember-data/request-utils": "workspace:5.4.0-alpha.74",
4646
"@warp-drive/core-types": "workspace:0.0.0-alpha.60"
4747
},
4848
"dependenciesMeta": {
49-
"@ember/string": {
50-
"injected": true
51-
},
5249
"@ember-data/store": {
5350
"injected": true
5451
},
@@ -61,6 +58,9 @@
6158
"@ember-data/request": {
6259
"injected": true
6360
},
61+
"@ember-data/request-utils": {
62+
"injected": true
63+
},
6464
"@warp-drive/core-types": {
6565
"injected": true
6666
},
@@ -83,16 +83,15 @@
8383
"@babel/preset-typescript": "^7.24.1",
8484
"@ember-data/request": "workspace:5.4.0-alpha.74",
8585
"@ember-data/legacy-compat": "workspace:5.4.0-alpha.74",
86+
"@ember-data/request-utils": "workspace:5.4.0-alpha.74",
8687
"@ember-data/store": "workspace:5.4.0-alpha.74",
8788
"@ember-data/model": "workspace:5.4.0-alpha.74",
8889
"@ember-data/tracking": "workspace:5.4.0-alpha.74",
8990
"@ember/test-waiters": "^3.1.0",
90-
"@ember/string": "^3.1.1",
9191
"@glimmer/component": "^1.1.2",
9292
"@warp-drive/core-types": "workspace:0.0.0-alpha.60",
9393
"@warp-drive/internal-config": "workspace:5.4.0-alpha.74",
9494
"ember-source": "~5.8.0",
95-
"ember-inflector": "^4.0.2",
9695
"decorator-transforms": "^2.0.0",
9796
"pnpm-sync-dependencies-meta-injected": "0.0.14",
9897
"typescript": "^5.4.5",

β€Žpackages/debug/src/data-adapter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ import { A } from '@ember/array';
2828
import DataAdapter from '@ember/debug/data-adapter';
2929
import { addObserver, removeObserver } from '@ember/object/observers';
3030
import { inject as service } from '@ember/service';
31-
import { capitalize, underscore } from '@ember/string';
3231

3332
import type Model from '@ember-data/model';
33+
import { capitalize, underscore } from '@ember-data/request-utils/string';
3434
import type Store from '@ember-data/store';
3535
import { recordIdentifierFor } from '@ember-data/store';
3636
import type { ModelSchema } from '@ember-data/store/types';

β€Žpackages/debug/tsconfig.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
"@warp-drive/build-config": ["../build-config/unstable-preview-types"],
4343
"@warp-drive/build-config/*": ["../build-config/unstable-preview-types/*"],
4444
"@warp-drive/core-types": ["../core-types/unstable-preview-types"],
45-
"@warp-drive/core-types/*": ["../core-types/unstable-preview-types/*"]
45+
"@warp-drive/core-types/*": ["../core-types/unstable-preview-types/*"],
46+
"@ember-data/request-utils": ["../request-utils/unstable-preview-types"],
47+
"@ember-data/request-utils/*": ["../request-utils/unstable-preview-types/*"]
4648
}
4749
},
4850
"references": [
@@ -66,6 +68,9 @@
6668
},
6769
{
6870
"path": "../legacy-compat"
71+
},
72+
{
73+
"path": "../request-utils"
6974
}
7075
]
7176
}

β€Žpackages/debug/vite.config.mjs

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
import { createConfig } from '@warp-drive/internal-config/vite/config.js';
22

3-
export const externals = [
4-
'@ember/debug/data-adapter',
5-
'@ember/service',
6-
'@ember/object/observers',
7-
'@ember/string',
8-
'@ember/array',
9-
];
3+
export const externals = ['@ember/debug/data-adapter', '@ember/service', '@ember/object/observers', '@ember/array'];
104

115
export const entryPoints = ['./src/index.ts', './src/data-adapter.ts'];
126

β€Žpackages/diagnostic/package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -123,5 +123,9 @@
123123
"ember": {
124124
"edition": "octane"
125125
},
126-
"dependenciesMeta": {}
126+
"dependenciesMeta": {
127+
"@warp-drive/build-config": {
128+
"injected": true
129+
}
130+
}
127131
}

0 commit comments

Comments
Β (0)