Skip to content

Commit 59c0b4f

Browse files
committed
Smarter compiler
1 parent e7a68ce commit 59c0b4f

File tree

12 files changed

+165
-151
lines changed

12 files changed

+165
-151
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ task(function *() {
192192
```
193193

194194
## Contribution
195-
Did I miss your favorite addon or snippet? It's super easy to contribute!
195+
Is this package missing your favorite addon or snippet? It's super easy to contribute!
196196

197-
1. Create a new folder in `src/javascript/addons` for JS or `src/handlebars/addons` for HBS with you addon name, eg. `my-addon`
197+
1. Create a new folder in `src/javascript` for JS or `src/handlebars` for HBS with you addon name, eg. `my-addon`
198198
2. Create files like `cheats.js`, `imports.js` or `skeletons.js`
199199
3. Fill in the files with following structure:
200200
```js

compile.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,21 @@ const glob = require("glob");
44
const path = require("path");
55
const fs = require("fs-extra");
66

7+
const pathRegexp = /.\/src\/(?<language>.+)\/(?<module>.+)\//;
8+
79
function generateLanguageFile(language) {
810
const data = [];
911

1012
glob.sync(`./src/${language}/**/*.js`).forEach(function(file) {
11-
data.push(require(path.resolve(file)));
13+
const fileContent = require(path.resolve(file));
14+
const transformedContent = {};
15+
const { module } = file.match(pathRegexp).groups;
16+
17+
Object.keys(fileContent).forEach((key) => {
18+
transformedContent[`[${module}] ${key}`] = fileContent[key];
19+
});
20+
21+
data.push(transformedContent);
1222
});
1323

1424
fs.outputJsonSync(`dist/${language}.json`, Object.assign({}, ...data), { spaces: 2 });

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717
},
1818
"keywords": [
1919
"ember",
20+
"ember.js",
21+
"snippet",
2022
"snippets",
23+
"ember snippets",
24+
"javascript",
2125
"vscode"
2226
],
2327
"categories": [

src/javascript/addons/ember-concurrency/cheats.js renamed to src/javascript/ember-concurrency/cheats.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
module.exports = {
2-
"[ember-concurrency] didCancel(error)": {
2+
"didCancel(error)": {
33
"prefix": "didCancel",
44
"body": "didCancel(${1:error})",
55
"description": "Returns true if the object passed to it is a TaskCancelation error."
66
},
7-
"[ember-concurrency] task(...)": {
7+
"task(...)": {
88
"prefix": "task",
99
"body": "task(function *() {\n// yield\n})",
1010
"description": "A Task is a cancelable, restartable, asynchronous operation that is driven by a generator function."
1111
},
12-
"[ember-concurrency] taskGroup()": {
12+
"taskGroup()": {
1313
"prefix": "taskGroup",
1414
"body": "taskGroup()",
1515
"description": "Task Group provide a means for applying task modifiers to groups of tasks."
1616
},
17-
"[ember-concurrency] timeout(ms)": {
17+
"timeout(ms)": {
1818
"prefix": "timeout",
1919
"body": "yield timeout(${1:0});",
2020
"description": "Yielding timeout(ms) will pause a task for the duration of time passed in, in milliseconds."
2121
},
22-
"[ember-concurrency] waitForEvent(eventName)": {
22+
"waitForEvent(eventName)": {
2323
"prefix": "waitForEvent",
2424
"body": "yield waitForEvent(${1:eventName});",
2525
"description": "Use waitForEvent to pause the task until an event is fired."
2626
},
27-
"[ember-concurrency] waitForProperty(propertyName)": {
27+
"waitForProperty(propertyName)": {
2828
"prefix": "waitForProperty",
2929
"body": "yield waitForProperty(${1:propertyName});",
3030
"description": "Use waitForProperty to pause the task until a property on an object changes to some expected value."
3131
},
32-
"[ember-concurrency] waitForQueue(queueName)": {
32+
"waitForQueue(queueName)": {
3333
"prefix": "waitForQueue",
3434
"body": "yield waitForQueue(${1:queueName});",
3535
"description": "Use waitForQueue to pause the task until a certain run loop queue is reached."

src/javascript/addons/ember-concurrency/imports.js renamed to src/javascript/ember-concurrency/imports.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,35 @@
11
module.exports = {
2-
"[ember-concurrency] didCancel": {
2+
"didCancel": {
33
"prefix": "imdidCancel",
44
"body": "import { didCancel } from 'ember-concurrency';",
55
"description": "Returns true if the object passed to it is a TaskCancelation error."
66
},
7-
"[ember-concurrency] task": {
7+
"task": {
88
"prefix": "imtask",
99
"body": "import { task } from 'ember-concurrency';",
1010
"description": "A Task is a cancelable, restartable, asynchronous operation that is driven by a generator function."
1111
},
12-
"[ember-concurrency] taskGroup": {
12+
"taskGroup": {
1313
"prefix": "imtaskGroup",
1414
"body": "import { taskGroup } from 'ember-concurrency';",
1515
"description": "Task Group provide a means for applying task modifiers to groups of tasks."
1616
},
17-
"[ember-concurrency] timeout": {
17+
"timeout": {
1818
"prefix": "imtimeout",
1919
"body": "import { timeout } from 'ember-concurrency';",
2020
"description": "Yielding timeout(ms) will pause a task for the duration of time passed in, in milliseconds."
2121
},
22-
"[ember-concurrency] waitForEvent": {
22+
"waitForEvent": {
2323
"prefix": "imwaitForEvent",
2424
"body": "import { waitForEvent } from 'ember-concurrency';",
2525
"description": "Use waitForEvent to pause the task until an event is fired."
2626
},
27-
"[ember-concurrency] waitForProperty": {
27+
"waitForProperty": {
2828
"prefix": "imwaitForProperty",
2929
"body": "import { waitForProperty } from 'ember-concurrency';",
3030
"description": "Use waitForProperty to pause the task until a property on an object changes to some expected value."
3131
},
32-
"[ember-concurrency] waitForQueue": {
32+
"waitForQueue": {
3333
"prefix": "imwaitForQueue",
3434
"body": "import { waitForQueue } from 'ember-concurrency';",
3535
"description": "Use waitForQueue to pause the task until a certain run loop queue is reached."
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
module.exports = {
2-
"[ember-data] findAll(...)": {
2+
"findAll(...)": {
33
"prefix": "findAll",
44
"body": "this.store.findAll('${1:model}');",
5-
"description": "[ember-data] findAll(...)"
5+
"description": "findAll(...)"
66
},
7-
"[ember-data] findRecord(...)": {
7+
"findRecord(...)": {
88
"prefix": "findRecord",
99
"body": "this.store.findRecord('${1:model}', params.${1:model}_id);",
10-
"description": "[ember-data] findRecord(...)"
10+
"description": "findRecord(...)"
1111
},
12-
"[ember-data] peekAll(...)": {
12+
"peekAll(...)": {
1313
"prefix": "peekAll",
1414
"body": "this.store.peekAll('${1:model}');",
15-
"description": "[ember-data] peekAll(...)"
15+
"description": "peekAll(...)"
1616
},
17-
"[ember-data] peekRecord(...)": {
17+
"peekRecord(...)": {
1818
"prefix": "peekRecord",
1919
"body": "this.store.peekRecord('${1:model}', params.${1:model}_id);",
20-
"description": "[ember-data] peekRecord(...)"
20+
"description": "peekRecord(...)"
2121
},
22-
"[ember-data] query(...)": {
22+
"query(...)": {
2323
"prefix": "queryAll",
2424
"body": "this.store.query('${1:model}', { ${2:queryKey}: ${3:queryValue}});",
25-
"description": "[ember-data] query(...)"
25+
"description": "query(...)"
2626
},
27-
"[ember-data] queryRecord(...)": {
27+
"queryRecord(...)": {
2828
"prefix": "queryRecord",
2929
"body": "this.store.queryRecord('${1:model}', { ${2:queryKey}: ${3:queryValue}});",
30-
"description": "[ember-data] queryRecord(...)"
30+
"description": "queryRecord(...)"
3131
},
3232
};

src/javascript/addons/ember-data/skeletons.js renamed to src/javascript/ember-data/skeletons.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,80 @@
11
module.exports = {
2-
"[ember-data] Model Skeleton": {
2+
"Model Skeleton": {
33
"prefix": "model",
44
"body": "import Model from '@ember-data/model';\n\nexport default Model.extend({\n\t${1:// body}\n});",
55
"description": "Model Skeleton"
66
},
7-
"[ember-data] ES6 Model Skeleton": {
7+
"ES6 Model Skeleton": {
88
"prefix": "model",
99
"body": "import classic from 'ember-classic-decorator';\nimport Model from '@ember-data/model';\n\n@classic\nclass ${1}Model extends Model {\n\t${2}\n}\n\nexport default ${1}Model;",
1010
"description": "ES6 Model Skeleton"
1111
},
12-
"[ember-data] Adapter Skeleton": {
12+
"Adapter Skeleton": {
1313
"prefix": "adapter",
1414
"body": "import Adapter from '@ember-data/adapter';\n\nexport default Adapter.extend({\n\t${1:// body}\n});",
1515
"description": "Adapter Skeleton"
1616
},
17-
"[ember-data] ES6 Adapter Skeleton": {
17+
"ES6 Adapter Skeleton": {
1818
"prefix": "adapter",
1919
"body": "import classic from 'ember-classic-decorator';\nimport Adapter from '@ember-data/adapter';\n\n@classic\nclass ${1}Adapter extends Adapter {\n\t${2}\n}\n\nexport default ${1}Adapter;",
2020
"description": "ES6 Adapter Skeleton"
2121
},
22-
"[ember-data] REST Adapter Skeleton": {
22+
"REST Adapter Skeleton": {
2323
"prefix": "restAdapter",
2424
"body": "import RESTAdapter from '@ember-data/adapter/rest';\n\nexport default RESTAdapter.extend({\n\t${1:// body}\n});",
2525
"description": "REST Adapter Skeleton"
2626
},
27-
"[ember-data] ES6 REST Adapter Skeleton": {
27+
"ES6 REST Adapter Skeleton": {
2828
"prefix": "restAdapter",
2929
"body": "import classic from 'ember-classic-decorator';\nimport RESTAdapter from '@ember-data/adapter/rest';\n\n@classic\nclass ${1}RESTAdapter extends RESTAdapter {\n\t${2}\n}\n\nexport default ${1}RESTAdapter;",
3030
"description": "ES6 REST Adapter Skeleton"
3131
},
32-
"[ember-data] JSON API Adapter Skeleton": {
32+
"JSON API Adapter Skeleton": {
3333
"prefix": "jsonapiAdapter",
3434
"body": "import JSONAPIAdapter from '@ember-data/adapter/json-api';\n\nexport default JSONAPIAdapter.extend({\n\t${1:// body}\n});",
3535
"description": "JSON API Adapter Skeleton"
3636
},
37-
"[ember-data] ES6 JSON API Adapter Skeleton": {
37+
"ES6 JSON API Adapter Skeleton": {
3838
"prefix": "jsonapiAdapter",
3939
"body": "import classic from 'ember-classic-decorator';\nimport JSONAPIAdapter from '@ember-data/adapter/json-api';\n\n@classic\nclass ${1}JSONAPIAdapter extends JSONAPIAdapter {\n\t${2}\n}\n\nexport default ${1}JSONAPIAdapter;",
4040
"description": "ES6 JSON API Adapter Skeleton"
4141
},
42-
"[ember-data] Serializer Skeleton": {
42+
"Serializer Skeleton": {
4343
"prefix": "serializer",
4444
"body": "import Serializer from '@ember-data/serializer';\n\nexport default Serializer.extend({\n\t${1:// body}\n});",
4545
"description": "Serializer Skeleton"
4646
},
47-
"[ember-data] ES6 Serializer Skeleton": {
47+
"ES6 Serializer Skeleton": {
4848
"prefix": "serializer",
4949
"body": "import classic from 'ember-classic-decorator';\nimport Serializer from '@ember-data/serializer';\n\n@classic\nclass ${1}Serializer extends Serializer {\n\t${2}\n}\n\nexport default ${1}Serializer;",
5050
"description": "ES6 Serializer Skeleton"
5151
},
52-
"[ember-data] REST Serializer Skeleton": {
52+
"REST Serializer Skeleton": {
5353
"prefix": "restSerializer",
5454
"body": "import RESTSerializer from '@ember-data/serializer/rest';\n\nexport default RESTSerializer.extend({\n\t${1:// body}\n});",
5555
"description": "REST Serializer Skeleton"
5656
},
57-
"[ember-data] ES6 REST Serializer Skeleton": {
57+
"ES6 REST Serializer Skeleton": {
5858
"prefix": "restSerializer",
5959
"body": "import classic from 'ember-classic-decorator';\nimport RESTSerializer from '@ember-data/serializer/rest';\n\n@classic\nclass ${1}RESTSerializer extends RESTSerializer {\n\t${2}\n}\n\nexport default ${1}RESTSerializer;",
6060
"description": "ES6 REST Serializer Skeleton"
6161
},
62-
"[ember-data] JSON API Serializer Skeleton": {
62+
"JSON API Serializer Skeleton": {
6363
"prefix": "jsonapiSerializer",
6464
"body": "import JSONAPISerializer from '@ember-data/serializer/json-api';\n\nexport default JSONAPISerializer.extend({\n\t${1:// body}\n});",
6565
"description": "JSON API Serializer Skeleton"
6666
},
67-
"[ember-data] ES6 JSON API Serializer Skeleton": {
67+
"ES6 JSON API Serializer Skeleton": {
6868
"prefix": "jsonapiSerializer",
6969
"body": "import classic from 'ember-classic-decorator';\nimport JSONAPISerializer from '@ember-data/serializer/json-api';\n\n@classic\nclass ${1}JSONAPISerializer extends JSONAPISerializer {\n\t${2}\n}\n\nexport default ${1}JSONAPISerializer;",
7070
"description": "ES6 JSON API Serializer Skeleton"
7171
},
72-
"[ember-data] Transform Serializer Skeleton": {
72+
"Transform Serializer Skeleton": {
7373
"prefix": "transform",
7474
"body": "import Transform from '@ember-data/serializer/transform';\n\nexport default Transform.extend({\n\t${1:// body}\n});",
7575
"description": "Transform Serializer Skeleton"
7676
},
77-
"[ember-data] ES6 Transform Serializer Skeleton": {
77+
"ES6 Transform Serializer Skeleton": {
7878
"prefix": "transform",
7979
"body": "import classic from 'ember-classic-decorator';\nimport Transform from '@ember-data/serializer/transform';\n\n@classic\nclass ${1}Transform extends Transform {\n\t${2}\n}\n\nexport default ${1}Transform;",
8080
"description": "ES6 Transform Serializer Skeleton"

0 commit comments

Comments
 (0)