Skip to content

Commit 9b503a8

Browse files
committed
Dynamic ember data imports
1 parent a5a7afd commit 9b503a8

File tree

3 files changed

+47
-141
lines changed

3 files changed

+47
-141
lines changed

package-lock.json

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
]
6161
},
6262
"devDependencies": {
63+
"@ember-data/rfc395-data": "0.0.4",
6364
"ember-rfc176-data": "^0.3.11",
6465
"fs-extra": "^8.1.0",
6566
"glob": "^7.1.4",
+40-141
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,41 @@
1-
module.exports = {
2-
"[ember-data] Import Model": {
3-
"prefix": "imModel",
4-
"body": "import Model from '@ember-data/model';",
5-
"description": "[ember-data] Import Model"
6-
},
7-
"[ember-data] Import attr": {
8-
"prefix": "imattr",
9-
"body": "import { attr } from '@ember-data/model';",
10-
"description": "[ember-data] Import attr"
11-
},
12-
"[ember-data] Import belongsTo": {
13-
"prefix": "imbelongsTo",
14-
"body": "import { belongsTo } from '@ember-data/model';",
15-
"description": "[ember-data] Import belongsTo"
16-
},
17-
"[ember-data] Import hasMany": {
18-
"prefix": "imhasMany",
19-
"body": "import { hasMany } from '@ember-data/model';",
20-
"description": "[ember-data] Import hasMany"
21-
},
22-
"[ember-data] Import Adapter": {
23-
"prefix": "imAdapter",
24-
"body": "import Adapter from '@ember-data/adapter';",
25-
"description": "[ember-data] Import Adapter"
26-
},
27-
"[ember-data] Import RESTAdapter": {
28-
"prefix": "imRESTAdapter",
29-
"body": "import RESTAdapter from '@ember-data/adapter/rest';",
30-
"description": "[ember-data] Import RESTAdapter"
31-
},
32-
"[ember-data] Import JSONAPIAdapter": {
33-
"prefix": "imJSONAPIAdapter",
34-
"body": "import JSONAPIAdapter from '@ember-data/adapter/json-api';",
35-
"description": "[ember-data] Import JSONAPIAdapter"
36-
},
37-
"[ember-data] Import BuildURLMixin": {
38-
"prefix": "imBuildURLMixin",
39-
"body": "import { BuildURLMixin } from '@ember-data/adapter';",
40-
"description": "[ember-data] Import BuildURLMixin"
41-
},
42-
"[ember-data] Import AdapterError": {
43-
"prefix": "imAdapterError",
44-
"body": "import AdapterError from '@ember-data/adapter/error';",
45-
"description": "[ember-data] Import AdapterError"
46-
},
47-
"[ember-data] Import InvalidError": {
48-
"prefix": "imInvalidError",
49-
"body": "import { InvalidError } from '@ember-data/adapter/error';",
50-
"description": "[ember-data] Import InvalidError"
51-
},
52-
"[ember-data] Import TimeoutError": {
53-
"prefix": "imTimeoutError",
54-
"body": "import { TimeoutError } from '@ember-data/adapter/error';",
55-
"description": "[ember-data] Import TimeoutError"
56-
},
57-
"[ember-data] Import AbortError": {
58-
"prefix": "imAbortError",
59-
"body": "import { AbortError } from '@ember-data/adapter/error';",
60-
"description": "[ember-data] Import AbortError"
61-
},
62-
"[ember-data] Import UnauthorizedError": {
63-
"prefix": "imUnauthorizedError",
64-
"body": "import { UnauthorizedError } from '@ember-data/adapter/error';",
65-
"description": "[ember-data] Import UnauthorizedError"
66-
},
67-
"[ember-data] Import ForbiddenError": {
68-
"prefix": "imForbiddenError",
69-
"body": "import { ForbiddenError } from '@ember-data/adapter/error';",
70-
"description": "[ember-data] Import ForbiddenError"
71-
},
72-
"[ember-data] Import NotFoundError": {
73-
"prefix": "imNotFoundError",
74-
"body": "import { NotFoundError } from '@ember-data/adapter/error';",
75-
"description": "[ember-data] Import NotFoundError"
76-
},
77-
"[ember-data] Import ConflictError": {
78-
"prefix": "imConflictError",
79-
"body": "import { ConflictError } from '@ember-data/adapter/error';",
80-
"description": "[ember-data] Import ConflictError"
81-
},
82-
"[ember-data] Import ServerError": {
83-
"prefix": "imServerError",
84-
"body": "import { ServerError } from '@ember-data/adapter/error';",
85-
"description": "[ember-data] Import ServerError"
86-
},
87-
"[ember-data] Import errorsHashToArray": {
88-
"prefix": "imerrorsHashToArray",
89-
"body": "import { errorsHashToArray } from '@ember-data/adapter/error';",
90-
"description": "[ember-data] Import errorsHashToArray"
91-
},
92-
"[ember-data] Import errorsArrayToHash": {
93-
"prefix": "imerrorsArrayToHash",
94-
"body": "import { errorsArrayToHash } from '@ember-data/adapter/error';",
95-
"description": "[ember-data] Import errorsArrayToHash"
96-
},
97-
"[ember-data] Import Serializer": {
98-
"prefix": "imSerializer",
99-
"body": "import Serializer from '@ember-data/serializer';",
100-
"description": "[ember-data] Import Serializer"
101-
},
102-
"[ember-data] Import JSONSerializer": {
103-
"prefix": "imJSONSerializer",
104-
"body": "import JSONSerializer from '@ember-data/serializer/json';",
105-
"description": "[ember-data] Import JSONSerializer"
106-
},
107-
"[ember-data] Import RESTSerializer": {
108-
"prefix": "imRESTSerializer",
109-
"body": "import RESTSerializer from '@ember-data/serializer/rest';",
110-
"description": "[ember-data] Import RESTSerializer"
111-
},
112-
"[ember-data] Import JSONAPISerializer": {
113-
"prefix": "imJSONAPISerializer",
114-
"body": "import JSONAPISerializer from '@ember-data/serializer/json-api';",
115-
"description": "[ember-data] Import JSONAPISerializer"
116-
},
117-
"[ember-data] Import EmbeddedRecordsMixin": {
118-
"prefix": "imEmbeddedRecordsMixin",
119-
"body": "import { EmbeddedRecordsMixin } from '@ember-data/serializer/rest';",
120-
"description": "[ember-data] Import EmbeddedRecordsMixin"
121-
},
122-
"[ember-data] Import Transform": {
123-
"prefix": "imTransform",
124-
"body": "import Transform from '@ember-data/serializer/transform';",
125-
"description": "[ember-data] Import Transform"
126-
},
127-
"[ember-data] Import Store": {
128-
"prefix": "imStore",
129-
"body": "import Store from '@ember-data/store';",
130-
"description": "[ember-data] Import Store"
131-
},
132-
"[ember-data] Import normalizeModelName": {
133-
"prefix": "imnormalizeModelName",
134-
"body": "import { normalizeModelName } from '@ember-data/store';",
135-
"description": "[ember-data] Import normalizeModelName"
136-
},
137-
"[ember-data] Import RecordData": {
138-
"prefix": "imRecordData",
139-
"body": "import RecordData from '@ember-data/record-data';",
140-
"description": "[ember-data] Import RecordData"
1+
const data = require("@ember-data/rfc395-data");
2+
3+
const customMapping = {};
4+
5+
function getImport(object) {
6+
if (object.replacement.export === "default") {
7+
const mapping = customMapping[object.replacement.module] || {};
8+
return mapping[object.localName] || object.localName;
9+
} else {
10+
const mapping = customMapping[object.replacement.module] || {};
11+
const customName = mapping[object.replacement.export];
12+
13+
if (customName) {
14+
return `{ ${object.replacement.export} as ${customName} }`;
15+
}
16+
17+
return `{ ${object.replacement.export} }`;
14118
}
142-
};
19+
}
20+
21+
function getDescriptor(object) {
22+
if (object.localName) return object.localName;
23+
24+
if (object.replacement.export === "default") {
25+
return object.export;
26+
}
27+
28+
return object.replacement.export;
29+
}
30+
31+
const imports = {};
32+
33+
data.forEach((object) => {
34+
imports[`[ember-data] ${getDescriptor(object)}`] = {
35+
prefix: `im${object.localName || object.replacement.export}`,
36+
body: `import ${getImport(object)} from '${object.replacement.module}';`,
37+
description: getDescriptor(object)
38+
};
39+
});
40+
41+
module.exports = imports;

0 commit comments

Comments
 (0)