Skip to content

Commit 931f537

Browse files
committed
Introduce local typings for ember-cli
1 parent c368ae5 commit 931f537

File tree

4 files changed

+218
-12
lines changed

4 files changed

+218
-12
lines changed

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
},
5454
"devDependencies": {
5555
"@ember/optional-features": "^0.6.3",
56+
"@types/console-ui": "^2.2.0",
57+
"@types/core-object": "^3.0.0",
5658
"@types/ember": "2.8.13",
5759
"@types/ember-qunit": "^3.0.1",
5860
"@types/node": "^9.6.5",
@@ -94,8 +96,8 @@
9496
"rimraf": "^2.6.2",
9597
"testdouble": "^3.5.0",
9698
"ts-node": "^7.0.1",
97-
"typescript": "^2.7.2",
98-
"typescript-eslint-parser": "^15.0.0"
99+
"typescript": "^3.1.1",
100+
"typescript-eslint-parser": "^19.0.2"
99101
},
100102
"resolutions": {
101103
"@types/ember": "2.8.13"

ts/tsconfig.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
"noImplicitThis": true,
1111
"strictNullChecks": true,
1212
"strictPropertyInitialization": true,
13-
"outDir": "../js"
13+
"outDir": "../js",
14+
"typeRoots": ["../node_modules/@types", "types"],
15+
"esModuleInterop": true
1416
}
1517
}

ts/types/ember-cli/index.d.ts

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
declare module 'ember-cli/lib/broccoli/ember-app' {
2+
import CoreObject from 'core-object';
3+
4+
export default class EmberApp extends CoreObject {
5+
options?: Record<string, unknown>;
6+
}
7+
}
8+
9+
declare module 'ember-cli/lib/models/addon' {
10+
import CoreObject, { ExtendOptions } from 'core-object';
11+
import UI from 'console-ui';
12+
import Project from 'ember-cli/lib/models/project';
13+
import Command from 'ember-cli/lib/models/command';
14+
import EmberApp from 'ember-cli/lib/broccoli/ember-app';
15+
16+
export default class Addon extends CoreObject {
17+
name: string;
18+
root: string;
19+
app?: EmberApp;
20+
parent: Addon | Project;
21+
project: Project;
22+
addons: Addon[];
23+
ui: UI;
24+
options?: Record<string, unknown>;
25+
pkg: {
26+
name: string;
27+
version: string;
28+
dependencies?: Record<string, string>;
29+
devDependencies?: Record<string, string>;
30+
};
31+
32+
blueprintsPath(): string;
33+
included(includer: EmberApp | Project): void;
34+
includedCommands(): Record<string, typeof Command | ExtendOptions<Command>> | void;
35+
shouldIncludeChildAddon(addon: Addon): boolean;
36+
isDevelopingAddon(): boolean;
37+
}
38+
}
39+
40+
declare module 'ember-cli/lib/models/command' {
41+
import CoreObject from 'core-object';
42+
import Project from 'ember-cli/lib/models/project';
43+
44+
export default class Command extends CoreObject {}
45+
}
46+
47+
declare module 'ember-cli/lib/models/project' {
48+
import CoreObject from 'core-object';
49+
import UI from 'console-ui';
50+
import Addon from 'ember-cli/lib/models/addon';
51+
52+
export default class Project extends CoreObject {
53+
ui: UI;
54+
root: string;
55+
addons: Addon[];
56+
57+
name(): string;
58+
isEmberCLIAddon(): boolean;
59+
require(module: string): unknown;
60+
}
61+
}

yarn.lock

Lines changed: 150 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,18 @@
4343
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
4444
integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==
4545

46+
"@types/console-ui@^2.2.0":
47+
version "2.2.0"
48+
resolved "https://registry.yarnpkg.com/@types/console-ui/-/console-ui-2.2.0.tgz#8d73211b6131291c89b72bc27e2a986b49e9b5c5"
49+
integrity sha512-AfEHvsPMDnbn2QTa7/qMYCdA2Zqt+wS9MGJZ0vKagX7tiaZOLv1AL1h/0W+cl7WSqV/P1ZQnut1h2TMmgsxj3g==
50+
dependencies:
51+
"@types/inquirer" "*"
52+
53+
"@types/core-object@^3.0.0":
54+
version "3.0.0"
55+
resolved "https://registry.yarnpkg.com/@types/core-object/-/core-object-3.0.0.tgz#3c7a9ff732dd5a66a09860c4a134751d7abd11a2"
56+
integrity sha512-SYM//l00O/LXbT0GqTaonlYQubkXDWyfOEpzEehiedtF+wEJCliP4G05/2tM+bulFNgqnBG4uRRe8k/HGQUA3A==
57+
4658
"@types/ember-qunit@^3.0.1":
4759
version "3.0.2"
4860
resolved "https://registry.yarnpkg.com/@types/ember-qunit/-/ember-qunit-3.0.2.tgz#83e5df08eec860071de3c8faa2cc0f06494bf4d6"
@@ -80,11 +92,24 @@
8092
resolved "https://registry.yarnpkg.com/@types/htmlbars-inline-precompile/-/htmlbars-inline-precompile-1.0.0.tgz#4c283da1a7e303b269de3c6aa953acc8d8736949"
8193
integrity sha512-J7+MkDbUl/Sb57OuniuvVr4HLlHV2ub2y31HmD9QiepLEMj0zGIv4hbyOfGHTKWCcU0r7lxcDdHdLyUjpuL21w==
8294

95+
"@types/inquirer@*":
96+
version "0.0.43"
97+
resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-0.0.43.tgz#1eb0bbb4648e6cc568bd396c1e989f620ad01273"
98+
integrity sha512-xgyfKZVMFqE8aIKy1xfFVsX2MxyXUNgjgmbF6dRbR3sL+ZM5K4ka/9L4mmTwX8eTeVYtduyXu0gUVwVJa1HbNw==
99+
dependencies:
100+
"@types/rx" "*"
101+
"@types/through" "*"
102+
83103
"@types/jquery@*":
84104
version "3.3.1"
85105
resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.3.1.tgz#55758d44d422756d6329cbf54e6d41931d7ba28f"
86106
integrity sha512-N3h+rzN518yl2xKrW0o6KKdNmWZ+OwG6SoM5TBEQFF0tTv5wXPEsoOuYQ2Kt3/89XbcSZUJLdjiT/2c3BR/ApQ==
87107

108+
"@types/node@*":
109+
version "10.12.0"
110+
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235"
111+
integrity sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ==
112+
88113
"@types/node@^9.6.5":
89114
version "9.6.7"
90115
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.7.tgz#5f3816d1db2155edcde1b2e3aa5d0e5c520cb564"
@@ -100,6 +125,114 @@
100125
resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.1.tgz#82956bc8d0a8151ec3b7e9cae64fd06808a1c714"
101126
integrity sha512-eYg/Voyrfw7QSryAUF4CVrYLHENWPinzCODgbbcD/7GLOa7xWK7O2avFq1zB5XJSO/Pfq45V3vDplpZ2NM0iIg==
102127

128+
"@types/rx-core-binding@*":
129+
version "4.0.4"
130+
resolved "https://registry.yarnpkg.com/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz#d969d32f15a62b89e2862c17b3ee78fe329818d3"
131+
integrity sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ==
132+
dependencies:
133+
"@types/rx-core" "*"
134+
135+
"@types/rx-core@*":
136+
version "4.0.3"
137+
resolved "https://registry.yarnpkg.com/@types/rx-core/-/rx-core-4.0.3.tgz#0b3354b1238cedbe2b74f6326f139dbc7a591d60"
138+
integrity sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA=
139+
140+
"@types/rx-lite-aggregates@*":
141+
version "4.0.3"
142+
resolved "https://registry.yarnpkg.com/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz#6efb2b7f3d5f07183a1cb2bd4b1371d7073384c2"
143+
integrity sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg==
144+
dependencies:
145+
"@types/rx-lite" "*"
146+
147+
"@types/rx-lite-async@*":
148+
version "4.0.2"
149+
resolved "https://registry.yarnpkg.com/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz#27fbf0caeff029f41e2d2aae638b05e91ceb600c"
150+
integrity sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw==
151+
dependencies:
152+
"@types/rx-lite" "*"
153+
154+
"@types/rx-lite-backpressure@*":
155+
version "4.0.3"
156+
resolved "https://registry.yarnpkg.com/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz#05abb19bdf87cc740196c355e5d0b37bb50b5d56"
157+
integrity sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA==
158+
dependencies:
159+
"@types/rx-lite" "*"
160+
161+
"@types/rx-lite-coincidence@*":
162+
version "4.0.3"
163+
resolved "https://registry.yarnpkg.com/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz#80bd69acc4054a15cdc1638e2dc8843498cd85c0"
164+
integrity sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ==
165+
dependencies:
166+
"@types/rx-lite" "*"
167+
168+
"@types/rx-lite-experimental@*":
169+
version "4.0.1"
170+
resolved "https://registry.yarnpkg.com/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz#c532f5cbdf3f2c15da16ded8930d1b2984023cbd"
171+
integrity sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0=
172+
dependencies:
173+
"@types/rx-lite" "*"
174+
175+
"@types/rx-lite-joinpatterns@*":
176+
version "4.0.1"
177+
resolved "https://registry.yarnpkg.com/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz#f70fe370518a8432f29158cc92ffb56b4e4afc3e"
178+
integrity sha1-9w/jcFGKhDLykVjMkv+1a05K/D4=
179+
dependencies:
180+
"@types/rx-lite" "*"
181+
182+
"@types/rx-lite-testing@*":
183+
version "4.0.1"
184+
resolved "https://registry.yarnpkg.com/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz#21b19d11f4dfd6ffef5a9d1648e9c8879bfe21e9"
185+
integrity sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek=
186+
dependencies:
187+
"@types/rx-lite-virtualtime" "*"
188+
189+
"@types/rx-lite-time@*":
190+
version "4.0.3"
191+
resolved "https://registry.yarnpkg.com/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz#0eda65474570237598f3448b845d2696f2dbb1c4"
192+
integrity sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw==
193+
dependencies:
194+
"@types/rx-lite" "*"
195+
196+
"@types/rx-lite-virtualtime@*":
197+
version "4.0.3"
198+
resolved "https://registry.yarnpkg.com/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz#4b30cacd0fe2e53af29f04f7438584c7d3959537"
199+
integrity sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg==
200+
dependencies:
201+
"@types/rx-lite" "*"
202+
203+
"@types/rx-lite@*":
204+
version "4.0.6"
205+
resolved "https://registry.yarnpkg.com/@types/rx-lite/-/rx-lite-4.0.6.tgz#3c02921c4244074234f26b772241bcc20c18c253"
206+
integrity sha512-oYiDrFIcor9zDm0VDUca1UbROiMYBxMLMaM6qzz4ADAfOmA9r1dYEcAFH+2fsPI5BCCjPvV9pWC3X3flbrvs7w==
207+
dependencies:
208+
"@types/rx-core" "*"
209+
"@types/rx-core-binding" "*"
210+
211+
"@types/rx@*":
212+
version "4.1.1"
213+
resolved "https://registry.yarnpkg.com/@types/rx/-/rx-4.1.1.tgz#598fc94a56baed975f194574e0f572fd8e627a48"
214+
integrity sha1-WY/JSla67ZdfGUV04PVy/Y5iekg=
215+
dependencies:
216+
"@types/rx-core" "*"
217+
"@types/rx-core-binding" "*"
218+
"@types/rx-lite" "*"
219+
"@types/rx-lite-aggregates" "*"
220+
"@types/rx-lite-async" "*"
221+
"@types/rx-lite-backpressure" "*"
222+
"@types/rx-lite-coincidence" "*"
223+
"@types/rx-lite-experimental" "*"
224+
"@types/rx-lite-joinpatterns" "*"
225+
"@types/rx-lite-testing" "*"
226+
"@types/rx-lite-time" "*"
227+
"@types/rx-lite-virtualtime" "*"
228+
229+
"@types/through@*":
230+
version "0.0.29"
231+
resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93"
232+
integrity sha512-9a7C5VHh+1BKblaYiq+7Tfc+EOmjMdZaD1MYtkQjSoxgB69tBjW98ry6SKsi4zEIWztLOMRuL87A3bdT/Fc/4w==
233+
dependencies:
234+
"@types/node" "*"
235+
103236
abbrev@1:
104237
version "1.1.1"
105238
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@@ -3878,7 +4011,7 @@ eslint-visitor-keys@^1.0.0:
38784011
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
38794012
integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
38804013

3881-
eslint@^4.0.0, eslint@^4.17.0:
4014+
eslint@4.19.1, eslint@^4.0.0, eslint@^4.17.0:
38824015
version "4.19.1"
38834016
resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
38844017
integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==
@@ -9289,18 +9422,26 @@ typedarray@^0.0.6:
92899422
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
92909423
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
92919424

9292-
typescript-eslint-parser@^15.0.0:
9293-
version "15.0.1"
9294-
resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-15.0.1.tgz#fb18bfd255821c5c1dcb98be826f7e4fac63480c"
9295-
integrity sha512-HqwfNJ+/gDBzvxkfSbvxBwSFhRq82oXNpeKOogYR2Bwezik8GqY+rIDI1g7w91ZmwiXFDtpEIphL5BimgRRA6g==
9425+
typescript-eslint-parser@^19.0.2:
9426+
version "19.0.2"
9427+
resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-19.0.2.tgz#3df184b5290469598375e93842cd0a42d8b7745d"
9428+
integrity sha512-ZwbgliYgAjbeV+l7Ul8awcJlkzNeOLM2NiYgj1djOYl2WU0lRLIpr1HPmvBzqj9pK/Sf5Kn50ap9MAXCCDW5qA==
9429+
dependencies:
9430+
eslint "4.19.1"
9431+
typescript-estree "1.0.0"
9432+
9433+
9434+
version "1.0.0"
9435+
resolved "https://registry.yarnpkg.com/typescript-estree/-/typescript-estree-1.0.0.tgz#6266f31108d2f12594cb996d0e16d938e3cb83cd"
9436+
integrity sha512-KTsKik/vCxgkRImEuE6LFcAImffc9HJ0vPURPlFSy80w5QdjQUpkjHvG0GR5fY36SlWhwxdB2HxICaCP3lqe0A==
92969437
dependencies:
92979438
lodash.unescape "4.0.1"
92989439
semver "5.5.0"
92999440

9300-
typescript@^2.7.2:
9301-
version "2.8.1"
9302-
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624"
9303-
integrity sha512-Ao/f6d/4EPLq0YwzsQz8iXflezpTkQzqAyenTiw4kCUGr1uPiFLC3+fZ+gMZz6eeI/qdRUqvC+HxIJzUAzEFdg==
9441+
typescript@^3.1.1:
9442+
version "3.1.3"
9443+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.3.tgz#01b70247a6d3c2467f70c45795ef5ea18ce191d5"
9444+
integrity sha512-+81MUSyX+BaSo+u2RbozuQk/UWx6hfG0a5gHu4ANEM4sU96XbuIyAB+rWBW1u70c6a5QuZfuYICn3s2UjuHUpA==
93049445

93059446
uc.micro@^1.0.1, uc.micro@^1.0.5:
93069447
version "1.0.5"

0 commit comments

Comments
 (0)