Skip to content

Commit

Permalink
Merge pull request #74 from emberjs/types
Browse files Browse the repository at this point in the history
Introduce type definitions for render modifiers
  • Loading branch information
chriskrycho committed Jun 1, 2023
2 parents 9d248fd + cd2a02d commit fe1de32
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@
/package.json.ember-try
/package-lock.json.ember-try
/yarn.lock.ember-try

# types
/types/
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,23 @@ Usage:
</Root>
```

## Glint usage
If you are using [Glint](https://typed-ember.gitbook.io/glint/) and `environment-ember-loose`, you can add all the modifiers to your app at once by adding

```ts
import type RenderModifiersRegistry from '@ember/render-modifiers/template-registry';
```
to your app's e.g. `types/glint.d.ts` file, and making sure your registry extends from RenderModifiersRegistry:

```ts
declare module '@glint/environment-ember-loose/registry' {
export default interface Registry
extends RenderModifiersRegistry {
// ...
}
}
```

## Contributing

See the [Contributing](CONTRIBUTING.md) guide for details.
Expand Down
16 changes: 15 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"@embroider/util": "^1.0.0",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"@glint/template": "^1.0.2",
"babel-eslint": "^10.1.0",
"ember-auto-import": "^2.2.4",
"ember-cli": "~4.1.0",
Expand Down Expand Up @@ -71,7 +72,13 @@
"webpack": "^5.65.0"
},
"peerDependencies": {
"ember-source": "^3.8 || ^4.0.0 || ^5.0.0"
"ember-source": "^3.8 || ^4.0.0 || ^5.0.0",
"@glint/template": "^1.0.2"
},
"peerDependenciesMeta": {
"@glint/template": {
"optional": true
}
},
"engines": {
"node": "12.* || 14.* || >= 16"
Expand Down Expand Up @@ -99,5 +106,12 @@
"github": {
"release": true
}
},
"typesVersions": {
"*": {
"*": [
"types/*"
]
}
}
}
10 changes: 10 additions & 0 deletions types/-private.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { ModifierLike } from '@glint/template';

export type RenderModifier<El extends Element, Args extends Array<any>> = InstanceType<
ModifierLike<{
Element: El;
Args: {
Positional: [callback: (element: El, args: Args) => unknown, ...callbackArgs: Args];
};
}>
>;
8 changes: 8 additions & 0 deletions types/modifiers/did-insert.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { RenderModifier } from '../-private';

declare const didInsert: abstract new <
El extends Element,
Args extends Array<any>
>() => RenderModifier<El, Args>;

export default didInsert;
8 changes: 8 additions & 0 deletions types/modifiers/did-update.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { RenderModifier } from '../-private';

declare const didUpdate: abstract new <
El extends Element,
Args extends Array<any>
>() => RenderModifier<El, Args>;

export default didUpdate;
8 changes: 8 additions & 0 deletions types/modifiers/will-destroy.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { RenderModifier } from '../-private';

declare const willDestroy: abstract new <
El extends Element,
Args extends Array<any>
>() => RenderModifier<El, Args>;

export default willDestroy;
9 changes: 9 additions & 0 deletions types/template-registry.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import type didInsert from './modifiers/did-insert';
import type didUpdate from './modifiers/did-update';
import type willDestroy from './modifiers/will-destroy';

export default interface RenderModifiersRegistry {
'did-insert': typeof didInsert;
'did-update': typeof didUpdate;
'will-destroy': typeof willDestroy;
}
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1494,6 +1494,11 @@
"@glimmer/interfaces" "^0.42.2"
"@glimmer/util" "^0.42.2"

"@glint/template@^1.0.2":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@glint/template/-/template-1.0.2.tgz#dcb96f048df52e7d0e78cf194fa07b3c42f15278"
integrity sha512-kFWfJrS7XM0NjC5YSN0CWA9FiN0mhUvWVlQ2O7YRz/uhrO8+TVYNLst0WKELRbfCXbdI7wyYQkazNgz6FoL9CA==

"@handlebars/parser@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-1.1.0.tgz#d6dbc7574774b238114582410e8fee0dc3532bdf"
Expand Down

0 comments on commit fe1de32

Please sign in to comment.