Skip to content

Commit eeff51c

Browse files
authored
Add type definitions (#72)
1 parent 7f33e81 commit eeff51c

File tree

5 files changed

+239
-1
lines changed

5 files changed

+239
-1
lines changed

README.md

+22
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,28 @@ export default class SomeComponent extends Component {
6060
For further documentation on this subject, view the [Engine Linking RFC](https://github.com/emberjs/rfcs/pull/122).
6161

6262

63+
## TypeScript
64+
------------------------------------------------------------------------------
65+
66+
The library ships types for TypeScript usage:
67+
68+
```ts
69+
import Service, { inject as service } from '@ember/service';
70+
import type EnginesRouterService from 'ember-engines-router-service/services/router';
71+
72+
type Transition = ReturnType<EnginesRouterService['transitionTo']> & { sequence: number };
73+
74+
export default class MyService extends Service {
75+
@service declare router: EnginesRouterService;
76+
77+
doSomeTranstion (): void {
78+
const transition = this.router.transitionToExternal('someRouter');
79+
transition.data.someKey = 'someValue';
80+
}
81+
}
82+
```
83+
84+
6385
## Contributing
6486
------------------------------------------------------------------------------
6587

addon/.eslintignore

+3
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@
2020
/.node_modules.ember-try/
2121
/bower.json.ember-try
2222
/package.json.ember-try
23+
24+
# type definitions
25+
*.d.ts

addon/package.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
},
1919
"files": [
2020
"addon-main.js",
21-
"dist"
21+
"dist",
22+
"types"
2223
],
2324
"scripts": {
2425
"build": "rollup --config",
@@ -36,6 +37,7 @@
3637
"@babel/plugin-proposal-decorators": "^7.17.8",
3738
"@embroider/addon-dev": "^1.2.0",
3839
"@rollup/plugin-babel": "^5.3.1",
40+
"@types/ember__routing": "^4.0.10",
3941
"eslint": "^8.11.0",
4042
"eslint-config-prettier": "^8.5.0",
4143
"eslint-plugin-ember": "^10.5.9",
@@ -74,5 +76,12 @@
7476
"./initializers/ember-engines-router-service.js": "./dist/_app_/initializers/ember-engines-router-service.js",
7577
"./services/engine-router-service.js": "./dist/_app_/services/engine-router-service.js"
7678
}
79+
},
80+
"typesVersions": {
81+
"*": {
82+
"*": [
83+
"types/*"
84+
]
85+
}
7786
}
7887
}

addon/types/services/router.d.ts

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type RouterService from '@ember/routing/router-service';
2+
3+
export default interface EnginesRouterService extends Omit<
4+
RouterService,
5+
"currentRoute" | "recognize" | "recognizeAndLoad"
6+
> {
7+
isActiveExternal: RouterService['isActive'];
8+
replaceWithExternal: RouterService['replaceWith'];
9+
transitionToExternal: RouterService['transitionTo'];
10+
urlForExternal: RouterService['urlFor'];
11+
}

yarn.lock

+193
Original file line numberDiff line numberDiff line change
@@ -1317,6 +1317,26 @@
13171317
ember-cli-version-checker "^3.1.3"
13181318
ember-compatibility-helpers "^1.1.2"
13191319

1320+
"@glimmer/component@^1.1.0":
1321+
version "1.1.2"
1322+
resolved "https://registry.yarnpkg.com/@glimmer/component/-/component-1.1.2.tgz#892ec0c9f0b6b3e41c112be502fde073cf24d17c"
1323+
integrity sha512-XyAsEEa4kWOPy+gIdMjJ8XlzA3qrGH55ZDv6nA16ibalCR17k74BI0CztxuRds+Rm6CtbUVgheCVlcCULuqD7A==
1324+
dependencies:
1325+
"@glimmer/di" "^0.1.9"
1326+
"@glimmer/env" "^0.1.7"
1327+
"@glimmer/util" "^0.44.0"
1328+
broccoli-file-creator "^2.1.1"
1329+
broccoli-merge-trees "^3.0.2"
1330+
ember-cli-babel "^7.7.3"
1331+
ember-cli-get-component-path-option "^1.0.0"
1332+
ember-cli-is-package-missing "^1.0.0"
1333+
ember-cli-normalize-entity-name "^1.0.0"
1334+
ember-cli-path-utils "^1.0.0"
1335+
ember-cli-string-utils "^1.1.0"
1336+
ember-cli-typescript "3.0.0"
1337+
ember-cli-version-checker "^3.1.3"
1338+
ember-compatibility-helpers "^1.1.2"
1339+
13201340
"@glimmer/di@^0.1.9":
13211341
version "0.1.11"
13221342
resolved "https://registry.yarnpkg.com/@glimmer/di/-/di-0.1.11.tgz#a6878c07a13a2c2c76fcde598a5c97637bfc4280"
@@ -1724,6 +1744,169 @@
17241744
dependencies:
17251745
"@types/ms" "*"
17261746

1747+
"@types/ember-resolver@*":
1748+
version "5.0.11"
1749+
resolved "https://registry.yarnpkg.com/@types/ember-resolver/-/ember-resolver-5.0.11.tgz#db931fb5c2d6bda4e29adea132fb48c7ed17aa62"
1750+
integrity sha512-2BL9d8kBdNUO9Je6KBF7Q34BSwbQG6vzCzTeSopt8FAmLDfaDU9xDDdyZobpfy9GR36mCSeG9b9wr4bgYh/MYw==
1751+
dependencies:
1752+
"@types/ember__object" "*"
1753+
1754+
"@types/ember@*":
1755+
version "4.0.1"
1756+
resolved "https://registry.yarnpkg.com/@types/ember/-/ember-4.0.1.tgz#5fe3dc8219b7e0391b2c97d8db945a9e0881badc"
1757+
integrity sha512-fYCZtkGq1UqD1rWjvdY4bVQpdZvxkHqVx/B6p2M0cUdyheLNjQgwXfx3o1UU0Bk99mls5Or4ZCnW7s1yliABiw==
1758+
dependencies:
1759+
"@types/ember__application" "*"
1760+
"@types/ember__array" "*"
1761+
"@types/ember__component" "*"
1762+
"@types/ember__controller" "*"
1763+
"@types/ember__debug" "*"
1764+
"@types/ember__engine" "*"
1765+
"@types/ember__error" "*"
1766+
"@types/ember__object" "*"
1767+
"@types/ember__polyfills" "*"
1768+
"@types/ember__routing" "*"
1769+
"@types/ember__runloop" "*"
1770+
"@types/ember__service" "*"
1771+
"@types/ember__string" "*"
1772+
"@types/ember__template" "*"
1773+
"@types/ember__test" "*"
1774+
"@types/ember__utils" "*"
1775+
"@types/htmlbars-inline-precompile" "*"
1776+
"@types/rsvp" "*"
1777+
1778+
"@types/ember__application@*":
1779+
version "4.0.1"
1780+
resolved "https://registry.yarnpkg.com/@types/ember__application/-/ember__application-4.0.1.tgz#1bdbd4bf4a995558c5e6297856ad705f181899cc"
1781+
integrity sha512-dKyiEHpZRENCRNyS9PQOnYjrcO4QsmeTU+csmiH8B3McYBCp1AKwlnjOd6eTs3O69WDcUq2mFk6BAQM49bAF7Q==
1782+
dependencies:
1783+
"@glimmer/component" "^1.1.0"
1784+
"@types/ember" "*"
1785+
"@types/ember-resolver" "*"
1786+
"@types/ember__application" "*"
1787+
"@types/ember__engine" "*"
1788+
"@types/ember__object" "*"
1789+
"@types/ember__owner" "*"
1790+
"@types/ember__routing" "*"
1791+
1792+
"@types/ember__array@*":
1793+
version "4.0.2"
1794+
resolved "https://registry.yarnpkg.com/@types/ember__array/-/ember__array-4.0.2.tgz#795b377f6cbb9830413227522680feed674aa126"
1795+
integrity sha512-d2eU8O5QtqDd/ZqMV3yzIbULh8wPx6UMvxwJ0ThnNgCIFcZLO98deM5w6m5aU6K48Xu1wWzjJBa0jktGSFWXJw==
1796+
dependencies:
1797+
"@types/ember" "*"
1798+
"@types/ember__array" "*"
1799+
"@types/ember__object" "*"
1800+
1801+
"@types/ember__component@*":
1802+
version "4.0.10"
1803+
resolved "https://registry.yarnpkg.com/@types/ember__component/-/ember__component-4.0.10.tgz#554d9d384c6441003f0bdfbb709dab7085007cdb"
1804+
integrity sha512-ggF6EoKp7o0FKmZ9UKUzsLXHfcho+mKFnHQfUL1k/sUjkHxSd33fIATYuNIGZARRn2JzhYYfRqkgRIRBsoEiaQ==
1805+
dependencies:
1806+
"@types/ember" "*"
1807+
"@types/ember__component" "*"
1808+
"@types/ember__object" "*"
1809+
1810+
"@types/ember__controller@*":
1811+
version "4.0.1"
1812+
resolved "https://registry.yarnpkg.com/@types/ember__controller/-/ember__controller-4.0.1.tgz#f181eafc669dfaa29df68746c62941af3b75588a"
1813+
integrity sha512-4hX+CjjX2KBpcOyEpcs1SSBmxYlavdAZqcyR23JUnBS+dGjlku15BQu6ZXFKIf84x7izNhC+TrYvAOeLE/Af3w==
1814+
dependencies:
1815+
"@types/ember__object" "*"
1816+
1817+
"@types/ember__debug@*":
1818+
version "4.0.1"
1819+
resolved "https://registry.yarnpkg.com/@types/ember__debug/-/ember__debug-4.0.1.tgz#1e4a8a1045484295dddc7bd4356d0b3014b0d509"
1820+
integrity sha512-qrKk6Ujh6oev7TSB0eB7AEmQWKCt5t84k/K3hDvJXUiLU3YueN0kyt7aPoIAkVjC111A9FqDugl9n60+N5yeEw==
1821+
dependencies:
1822+
"@types/ember-resolver" "*"
1823+
"@types/ember__debug" "*"
1824+
"@types/ember__object" "*"
1825+
1826+
"@types/ember__engine@*":
1827+
version "4.0.2"
1828+
resolved "https://registry.yarnpkg.com/@types/ember__engine/-/ember__engine-4.0.2.tgz#01a93c38dce6940a7199435c8ab200c965ba8b73"
1829+
integrity sha512-x9c8LtRpYwQnyUiUbGpF2+zrZiA0G3e0lPsprghllWEabnIyvN+GMdtnvt4DmpGQVeUz6JKVdoPAmENBUTTcyg==
1830+
dependencies:
1831+
"@types/ember-resolver" "*"
1832+
"@types/ember__engine" "*"
1833+
"@types/ember__object" "*"
1834+
"@types/ember__owner" "*"
1835+
1836+
"@types/ember__error@*":
1837+
version "4.0.0"
1838+
resolved "https://registry.yarnpkg.com/@types/ember__error/-/ember__error-4.0.0.tgz#c73037e65c1c3d7060b97f98135ba73c712972b1"
1839+
integrity sha512-1WVMR65/QTqPzMWafK2vKEwGafILxRxItbWJng6eEJyKDHRvvHFCl3XzJ4dQjdFcfOlozsn0mmEYCpjKoyzMqA==
1840+
1841+
"@types/ember__object@*":
1842+
version "4.0.4"
1843+
resolved "https://registry.yarnpkg.com/@types/ember__object/-/ember__object-4.0.4.tgz#646a4b56d1d8279d8b21cd8e8265886a569fb87d"
1844+
integrity sha512-RwiyzQXKTyFVfZvrYQYtZhfrYAXrNEvtO98vdlzak0MHaks/AkOSNxuTU4tjhfzto4dOcfr6mi8C5mN+yz7LFQ==
1845+
dependencies:
1846+
"@types/ember" "*"
1847+
"@types/ember__object" "*"
1848+
"@types/rsvp" "*"
1849+
1850+
"@types/ember__owner@*":
1851+
version "4.0.0"
1852+
resolved "https://registry.yarnpkg.com/@types/ember__owner/-/ember__owner-4.0.0.tgz#2058a8fbf9636774dc79430abd355b07538c51d7"
1853+
integrity sha512-7ZotJNCkZUvJpcGHYswQlQsHyRITQ3aNOoFPi86NFxmOXEIVAGVKPHB87w8ZlMmhssG2vitCuNzuQCeDwPaokQ==
1854+
1855+
"@types/ember__polyfills@*":
1856+
version "4.0.0"
1857+
resolved "https://registry.yarnpkg.com/@types/ember__polyfills/-/ember__polyfills-4.0.0.tgz#d83ae94ff2890ad47798315426d9916f39ff4ae6"
1858+
integrity sha512-Yk85J18y1Ys6agoIBLdJWu6ZkWe68oaC9JPyW7BhOINVNKm89PXrR/yxdOJ1/vN1Hj7ZZQKq+4X6fz3sxebavA==
1859+
1860+
"@types/ember__routing@*", "@types/ember__routing@^4.0.10":
1861+
version "4.0.10"
1862+
resolved "https://registry.yarnpkg.com/@types/ember__routing/-/ember__routing-4.0.10.tgz#dc8fb1a6024170a1fe7b7ad1a1c061ef73e09789"
1863+
integrity sha512-/1k6fqFIV3RZAU64pYXx3nVlHnpqorvQjyq5V4A//kTI/WRcfwCjShgH2jCLrwwpnWo6Pb/y8aOnxyg3ePGy2Q==
1864+
dependencies:
1865+
"@types/ember" "*"
1866+
"@types/ember__controller" "*"
1867+
"@types/ember__object" "*"
1868+
"@types/ember__routing" "*"
1869+
"@types/ember__service" "*"
1870+
1871+
"@types/ember__runloop@*":
1872+
version "4.0.1"
1873+
resolved "https://registry.yarnpkg.com/@types/ember__runloop/-/ember__runloop-4.0.1.tgz#7f6e45af7dbf1158655ef3ad852852b0bf87065f"
1874+
integrity sha512-3HrsavVrdgxUkYptQUv/e9RwJG02cV9WbnJxKSvwl9ZYpeX4JbuDVucjTWk5BAvJUVtbiQLPGzLEHZ6daoCbbg==
1875+
dependencies:
1876+
"@types/ember" "*"
1877+
"@types/ember__runloop" "*"
1878+
1879+
"@types/ember__service@*":
1880+
version "4.0.0"
1881+
resolved "https://registry.yarnpkg.com/@types/ember__service/-/ember__service-4.0.0.tgz#ae6164e3b5d927fe17513b49867b52dc0222490d"
1882+
integrity sha512-FbN2y6tRb6NIV+kmzQcxRAoB17vH7qHCfzcKlxsmt2EI7fboLTcdeKpZKPBEromRXg83fx67QX1b95WcwSGtaw==
1883+
dependencies:
1884+
"@types/ember__object" "*"
1885+
1886+
"@types/ember__string@*":
1887+
version "3.0.9"
1888+
resolved "https://registry.yarnpkg.com/@types/ember__string/-/ember__string-3.0.9.tgz#669188ccea5a61777a36bf88a05ba6875dc9b7d7"
1889+
integrity sha512-v9QwhhfTTgJH6PCviWlz3JgcraYdSWQoTg2XN5Z7bPgXMJYXczxB/N22L9FnuFgDYdN87yXdTJv6E9rw2YGEhw==
1890+
1891+
"@types/ember__template@*":
1892+
version "4.0.0"
1893+
resolved "https://registry.yarnpkg.com/@types/ember__template/-/ember__template-4.0.0.tgz#3423b6ddc3a6cf0b13a1e0fd5f1a84eec664a095"
1894+
integrity sha512-51bAEQecMKpDYRXMmVVfU7excrtxDJixRU7huUsAm4acBCqL2+TmMgTqZEkOQSNy6qnKUc2ktSzX28a9//C6pA==
1895+
1896+
"@types/ember__test@*":
1897+
version "4.0.0"
1898+
resolved "https://registry.yarnpkg.com/@types/ember__test/-/ember__test-4.0.0.tgz#1a7dcbe24fedfc34fa60547b03f130a14397c4b6"
1899+
integrity sha512-vI/qhZkexJLN25lp1UAfjJv4R6pPtrQlAmPDXkKd8PNjwRk3KANFVRzdghN7HWhXgQ+s91PbvxEnZ3eZiRPdcQ==
1900+
dependencies:
1901+
"@types/ember__application" "*"
1902+
1903+
"@types/ember__utils@*":
1904+
version "4.0.1"
1905+
resolved "https://registry.yarnpkg.com/@types/ember__utils/-/ember__utils-4.0.1.tgz#106a7a9652bacc44c735ed1ffd6d3651ac03fdce"
1906+
integrity sha512-FhXZ37uY1BNgt63XoPH++PkAsMnF7P5wjPRluXecbFpEFHXP6enFbx1F5vjyoPtFjLEl4R3ftLM5QbEWsuyF5g==
1907+
dependencies:
1908+
"@types/ember" "*"
1909+
17271910
"@types/eslint-scope@^3.7.0":
17281911
version "3.7.3"
17291912
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224"
@@ -1804,6 +1987,11 @@
18041987
"@types/minimatch" "*"
18051988
"@types/node" "*"
18061989

1990+
"@types/htmlbars-inline-precompile@*":
1991+
version "3.0.0"
1992+
resolved "https://registry.yarnpkg.com/@types/htmlbars-inline-precompile/-/htmlbars-inline-precompile-3.0.0.tgz#4d3f19eeb2af9f4605620e13a566dae3952a4f68"
1993+
integrity sha512-n1YwM/Q937KmS9W4Ytran71nzhhcT2FDQI00eRGBNUyeErLZspBdDBewEe1F8tcRlUdsCVo2AZBLJsRjEceTRg==
1994+
18071995
"@types/http-cache-semantics@*":
18081996
version "4.0.1"
18091997
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
@@ -1878,6 +2066,11 @@
18782066
"@types/glob" "*"
18792067
"@types/node" "*"
18802068

2069+
"@types/rsvp@*":
2070+
version "4.0.4"
2071+
resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32"
2072+
integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg==
2073+
18812074
"@types/serve-static@*":
18822075
version "1.13.10"
18832076
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"

0 commit comments

Comments
 (0)