Package Exports
- ember-codemod-remove-inject-as-service
- ember-codemod-remove-inject-as-service/dist/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ember-codemod-remove-inject-as-service) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ember-codemod-remove-inject-as-service
Codemod to remove inject as service1
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
injectwithservice1 - Replace
!withdeclarein TS files2 - Remove
privateandreadonlykeywords 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
@serviceanddeclareon the same line whenever possible.- Find:
@service(\(.*\))?[\n\s]+declare - Replace:
@service$1 declare
- Find:
Run
lint:js:fix(i.e. autofix fromeslintandprettier).
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-addonOptional: Specify the project root
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 v20 or above
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.