ember-codemod-remove-inject-as-service
v1.1.3
Published
Codemod to remove `inject as service`
Downloads
11
Readme
ember-codemod-remove-inject-as-service
Codemod to remove inject as service
1
1. @ember/service
provides service
since Ember 4.1. inject
, which became an alias to service
, is planned to be deprecated in v6.
Features
The codemod helps you standardize how you inject services:
- Replace
inject
withservice
1 - Replace
!
withdeclare
in TS files2 - Remove
private
andreadonly
keywords in TS files2
It preserves your code whenever possible.
1. Replaces inject as ...
and service as ...
, too.
2. Matches the style shown in the Ember Guides.
Usage
Step 1. Quickly migrate.
cd <path/to/your/project>
npx ember-codemod-remove-inject-as-service <arguments>
Step 2. Fix formatting issues.
Optional: Do a find-and-replace-all in TS files, if you want to place
@service
anddeclare
on the same line whenever possible.- Find:
@service(\(.*\))?[\n\s]+declare
- Replace:
@service$1 declare
- Find:
Run
lint:js:fix
(i.e. autofix fromeslint
andprettier
).
Arguments
You must pass --type
to indicate what type of project you have.
npx ember-codemod-remove-inject-as-service --type app
npx ember-codemod-remove-inject-as-service --type v1-addon
npx ember-codemod-remove-inject-as-service --type v2-addon
Pass --root
to run the codemod somewhere else (i.e. not in the current directory).
npx ember-codemod-remove-inject-as-service --root <path/to/your/project>
Limitations
The codemod is designed to cover typical cases. It is not designed to cover one-off cases.
To better meet your needs, consider cloning the repo and running the codemod locally.
cd <path/to/cloned/repo>
# Compile TypeScript
pnpm build
# Run codemod
./dist/bin/ember-codemod-remove-inject-as-service.js --root <path/to/your/project>
Compatibility
- Node.js v18 or above
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.