5.8 KiB
5.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
Deprecated
Removed
Fixed
Security
[1.2.0]
Added
- docs: added complete Typedoc-style documentation for all
inject()
overloads
Includes parameter descriptions, usage examples, and detailed error annotations for each variant.
1.1.0
Added
- feat: exported
inject()
function from the public API viaindex.ts
The function is now available as part of the main module exports.
1.0.0
Added
- feat: Enable native ESM support using
"type": "module"
andmoduleResolution: "NodeNext"
in the compiler settings. - feat: All internal imports now explicitly include
.js
extensions for full Node.js ESM compatibility. - feat: Updated
tsconfig.json
to reflect changes for ESM builds (module: "NodeNext"
,target: "ES2020"
, etc.). - feat(cli): add
--without-extension
(-x
) flag to optionally omit file extensions in generated import paths - feat: introduce
inject()
function as a programmatic alternative to the@Inject
decorator
Supports optional initializers and constructor instantiation for resolved dependencies.
Designed for cases where decorators are not suitable or dynamic resolution is needed. - test: added comprehensive test suite for
inject()
function, covering resolution, initialization, error cases and instantiation behavior
Changed
- All source files using relative or internal imports were updated to use
.js
extensions to support Node.js ESM runtime resolution. - test: update Jest config for ts-jest ESM compatibility and .js import support
- renamed internal parameter
necessary
→isNecessary
for naming clarity
Removed
- Removed implicit support for CommonJS-style imports without file extensions.
Deprecated
- Support for CommonJS consumers using
require()
is no longer available. Useimport
with an ESM-compatible environment instead.
Fixed
Security
⚠️ Breaking Changes
- BREAKING CHANGE: This version migrates the entire codebase to native ES modules.
- Consumers must use Node.js in ESM mode or compatible bundlers.
- Import paths now include
.js
extensions. - Using
require()
(CommonJS) to load this library will no longer work. - All consuming projects must either:
- Use
"type": "module"
in theirpackage.json
, or - Use an ESM-aware bundler (e.g. Webpack, Vite, etc.)
- Use
0.4.0
Added
- feat: Export ImplementsStatic helper function
Deprecated
Removed
Fixed
Security
0.3.0
Added
- refactor: consolidate registration decorators Introduced Register decorator to handle class and instance registration in the DI container. Deprecated RegisterInstance in favor of Register, which now internally handles instance registration. Added support for marking dependencies as deprecated with a warning logged upon first resolution. Updated documentation with examples and notes on deprecation.
- tests: add mode parameter to RegisterInstanceDecorator Introduced a mode parameter to the test_RegisterInstanceDecorator function allowing 'instance' or 'standalone' modes. Updated test cases to utilize the new mode parameter when registering an instance. Disabled specific ESLint rule in Decorators.test.ts for deprecation warnings. Added an additional test call to test_RegisterInstanceDecorator with 'instance' mode.
- refactor: add region tags for overloads in Register.ts
0.2.0
Added
- Add pre release building to release workflow on dev/* branches an version changes.
- feat: Introduced a new CLI command
tsinjex-generate
to automate the generation of import statements for registered dependencies.
The command scans.ts
files for@Register
and@RegisterInstance
decorators and generates anauto-imports.ts
file.
This ensures that all registered dependencies are automatically included without requiring manual imports.
The CLI can be executed vianpx tsinjex-generate
or added as a script inpackage.json
for easier integration.
Deprecated
Removed
Fixed
Security
0.0.14
Added
- Added ChangeLog file and format it according to Keep a Changelog.
- Added reference to Semantic Versioning in the changelog file. (History will be updated on time).
- Version format is now
v0.0.0
instead of0.0.0
. Changes to this are also reflected in the workflos. - Add
Identifiers
andJest
Sections to theREADME.md
file. - feat: Add new Error
InitializationError
to reflect errors during initialization of a dependency. - feat: Add initialization error handling and refactor Inject.
- feat: After injecting a dependency, the lazzy loading getter will be replaced with the dependency itself.
- feat: remove the use of a private property to store the injected dependencies. Now the dependencies are stored in the property itself.
- test: Add tests for the new features.
Deprecated
- Deprecated the old version format
0.0.0
.