https://github.com/patricklx/ember-template-helper-imports
https://github.com/patricklx/ember-template-helper-imports
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/patricklx/ember-template-helper-imports
- Owner: patricklx
- License: mit
- Created: 2019-08-07T08:56:16.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T01:07:46.000Z (over 3 years ago)
- Last Synced: 2025-08-23T10:38:42.343Z (10 months ago)
- Language: JavaScript
- Size: 1.46 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
README
ember-template-helper-import
==============================================================================
forked from https://github.com/crashco/ember-template-component-import and changed to allow helper imports
This is to be used alongside https://github.com/crashco/ember-template-component-import
This addon allows you to use import-style syntax to create local bindings to
a helper within a template file.
* More concise helpers invocation while making it explicit where it comes from
* No hyphens needed!
* Relative imports!
* Currently only tested with simple helpers
Installation
------------------------------------------------------------------------------
```
ember install ember-template-helper-import
```
Usage
------------------------------------------------------------------------------
Use the same kind of import syntax you are familiar with from Javascript:
```hbs
{{import myHelper from 'ui/helper'}}
{{myHelper 'a'}}
{{import helper as ashelper from "ui/helpers" }}
{{import a as ahelper from "ui/helpers" }}
{{import "* as helpers" from "u/helpersi" }}
{{import "a, b" from "ui/helpers" }}
{{import "a as x, b as y" from "ui/helpers" }}
{{import "a as z, helper" from "ui/helpers" }}
```
The helper is looked up from the given string using a direct lookup
pattern. I set the `resolveHelper` in the resolver.
All this addon does is taking that `{{import ...}}` statement
and replacing all helper invocations with `{{ember-template-helper-import/helpers/invoke-helper 'myHelper' ...}}`.
Our helper then looks up the actual helper and calls `compute` with the other arguments
Motivation
------------------------------------------------------------------------------
[ember-template-component-import](https://github.com/crashco/ember-template-component-import)
already gives us import for components, but I really miss the helper imports.
So I went ahead and added this functionality :)
But what about Module Unification?
------------------------------------------------------------------------------
Once Module Unification lands fully, this addon will be largely obsolete. MU
provides all these benefits and more.
So on the one hand, your templates will start to look _something kinda like_
MU a little sooner, which is nice.
But be warned - any official tooling to codemod templates into a new MU world
likely won't support this addon. So weigh the pros and cons carefully before
widely adopting this addon.
License
------------------------------------------------------------------------------
This project is licensed under the [MIT License](LICENSE.md).