Unified the import paths of the 'Identifier' type across multiple files to ensure consistency. The 'Identifier' type is now imported from '../types/Identifier' instead of 'src/types/Identifier'. This change reduces ambiguity and aligns the import pattern throughout the codebase.
Updated the package version from 0.0.11 to 0.0.12 to reflect recent changes and improvements in the codebase. This helps ensure version clarity and proper dependency management.
Updated the package version from 0.0.11 to 0.0.12 to reflect recent changes and improvements in the codebase. This helps ensure version clarity and proper dependency management.
Updated the release workflow to prepare a clean release branch by copying necessary files to a temporary directory and then resetting the branch to avoid residue from previous commits. This ensures only the relevant files are included in the release, enhancing the integrity and clarity of the release branch.
Simplified the workflow by eliminating the creation and usage of a temporary branch for releasing. Changes are now directly committed and pushed to the release branch, streamlining the process and reducing complexity.
Introduced a temporary branch for release preparation steps before merging into the release branch. This isolates changes such as file removals and modifications until all updates are ready, improving workflow clarity and reducing risk of conflicts. After merging, the temp branch is deleted to keep the repository clean.
Reordered the Git checkout command to occur after removing the unwanted files. This ensures that the cleanup operations are performed on the correct branch and reflect in the release process accurately.
Reordered steps in the release workflow to checkout the release branch and remove unwanted files before staging changes. This change ensures that the files removed reflect the current state of the release branch, avoiding potential inconsistencies during the release process.
Updated the release workflow to also remove package-lock.json when creating a temporary branch. This ensures that any changes to dependencies are not carried over inadvertently during the release process.
Added step to delete .gitignore before staging new and modified files in the CreateRelease workflow. Ensures .gitignore does not interfere with the release processes and file staging operations.
Configured the GitHub Actions workflow to include the GITHUB_TOKEN environment variable during the release process. This ensures secure authentication when pushing changes to the release branch. Additionally, reordered the checkout and commit commands for better sequencing.
Removed unnecessary git stash operations during release branch checkout. This streamlines the workflow by only focusing on switching to the release branch and adding the required files, which reduces potential complications and speeds up the release preparation process.
Refined workflow to ensure smoother updates to the release branch. Added steps to stash and apply local changes to prevent conflicts. Provided specific commands to checkout and update the release branch correctly. This approach maintains the branch's integrity and ensures all modifications are properly committed and pushed.
Streamlined the branch checkout process by switching to `release --no-checkout` and added the push operation to the release branch. This improves the workflow efficiency and ensures the release branch is updated consistently.
Updated the CreateRelease workflow to replace deprecated "::set-output" commands with the newer "$GITHUB_OUTPUT" syntax. This ensures compatibility with the latest GitHub Actions practices and enhances readability of the workflow script.
Added conditional logic to skip unnecessary release steps if the version tag already exists or if the version hasn't changed. This optimization avoids redundant operations by ensuring release-related jobs are executed only when needed, thus enhancing workflow efficiency.
Updated the release workflow to exit with status 1 instead of 0 when a version tag already exists or the version hasn't changed. This adjustment ensures the workflow stops for these error conditions, preventing unintended behavior or false success indications. Added `continue-on-error: true` to allow subsequent steps despite these non-critical errors.
Added a check to ensure the version already exists as a tag before creating a new release. This prevents creating duplicate releases and refines the version comparison logic by changing the exit status to 0 when the version hasn't changed.
Increased coverage thresholds to 90% across all metrics. Added exclusions for `.spec.ts` and `.test.ts` files to the coverage configuration. Introduced new test files for `Decorators` and `Functions`, incorporating detailed unit tests for decorators and DI functionalities. Removed outdated and redundant test files, consolidating their functionality into the updated tests. Also added new npm script for jest watch mode. Marked helper and main index files to be ignored by the coverage.
Updated the lazy initialization logic to ensure the instance is created only once by moving the instance variable outside of the proxy handlers. This addresses potential redundant instance creation and improves efficiency and consistency in DI container operations.
Bumped version from 0.0.9 to 0.0.10. Added a meaningful description for the package to clarify its purpose as a dependency injection system for TypeScript, improving documentation.
- Moved `TSinjex` class to `classes` directory for better organization.
- Updated imports across the codebase to reflect the new location of `TSinjex`.
- Introduced `Identifier` type to standardize dependency identifiers.
- Enhanced JSDoc comments for improved clarity and consistency.
- Adjusted error messages for `DependencyResolutionError` to provide clearer information.
- Updated and expanded decorator and function types to use `Identifier` type.
Updated ESLint rules to turn off 'no-console' to allow console statements. Streamlined the GitHub Actions workflow to combine test coverage and TypeDoc generation into a single script for more efficient documentation deployment. Enhanced README with simplified test coverage badges. Added new npm scripts to automate documentation fixes, including a script to correct escaping issues in HTML files. Improved documentation generation, ensuring comprehensive and accurate project documentation.
Changed the coverage URL from an absolute web link to a relative file path to ensure compatibility with local file system references. This facilitates easier navigation and access to the coverage reports in different environments.
Modified the GitHub Actions DeployTypeDoc workflow to run `npm run test:coverage` instead of `npm run test:verbose`. This change switches from verbose test output to generating test coverage, aiming to improve code quality insights during deployment.
Configured Jest for improved test coverage reporting and threshold enforcement. Updated README with project time and test coverage badges. Added scripts to fix coverage report paths and generate badges. Updated dependencies to include necessary tools for coverage reporting. Bumped package version to 0.0.9.
Introduced a new GitHub Actions workflow to automate the deployment of documentation using TypeDoc and test coverage to GitHub Pages. The workflow triggers on pushes to the main branch or manually. Steps include checking out the repository, setting up Node.js, installing dependencies, running tests, generating TypeDoc documentation, and deploying the output to the gh-pages branch.
Upgraded the package version to 0.0.9. Introduced Typedoc for generating documentation with added script in package.json. Enhanced exception handling by introducing `DependencyResolutionError`. Refined TSinjex comments and README structure for better readability. Updated index file exports for better module organization.
Upgraded the project version to 0.0.8. Updated various dev dependencies, specifically @typescript-eslint packages and eslint-plugin-jsdoc, to their latest versions. Replaced @typescript-eslint/eslint-plugin with @stylistic/eslint-plugin to ensure compatibility and improved linting. These changes enhance code quality and tool efficiency.
Updated package version to 0.0.7 to reflect new changes. Added export statements for `InitDelegate` and `GenericConstructor` types, enhancing type availability for package users.
Renamed all instances of 'TSInjex' to 'TSinjex' for consistency across the codebase, including interfaces, classes, and test files. Updated the version in `package.json` from 0.0.5 to 0.0.6. Added Jest setup example to the `README.md` to guide developers on initial configuration for testing.
Added `src` folder and `tsconfig.json` to the release preparation to ensure all necessary files are included. Uncommented the deletion of the temporary branch to streamline the workflow. Set releases to be marked as prereleases automatically. Updated version in `package.json` to 0.0.5 and included a `files` field to specify which files to include in the package.
Changed the relative import path in `register.ts` for better module resolution and incremented the package version to 0.0.4 to reflect the updated changes.
### Details
Disabled the step for deleting the temporary branch in the release workflow by commenting out the relevant lines. This adjustment prevents potential issues caused by branch deletion during the release process and ensures the stability of the workflow until a more robust solution is implemented.
Added steps to set the Git user name and email in the release workflow. This ensures that commits made by the workflow are correctly attributed to GitHub Actions, preventing potential issues with commit authorship.
Updated the GitHub Actions CreateRelease workflow to use `git reset` instead of `git rm -rf`, ensuring the `.gitignore` file is removed. Simplifies the preparation of files for release and prevents the removal of unexpected files.
Switched `git reset --hard` to `git rm -rf .` followed by a target-specific `git reset` in the release workflow. This change ensures only the necessary files (README.md, package.json, LICENSE, dist/**) are retained for the temp release branch, improving the accuracy of release preparation.
Renamed functions files to follow consistent camelCase convention. Added a missing type export for ITSInjex interface in the main index file, enabling better TypeScript type support and ensuring interfaces are available for external modules.
Renamed `jest.config.js` to `jest.config.cjs` for compatibility with CommonJS modules. Updated `.eslintignore` to exclude `.cjs` files to prevent linting issues.
Simplified the npm scripts by removing the unnecessary "postinstall" script which was triggering the TypeScript build. This step was redundant since the build process is already handled separately.
Added the creation of a temporary branch to stage release files before tagging, ensuring a clean release environment. Adjusted the tag creation process and included steps to delete the temporary branch post-tagging. Updated `package.json` to version 0.0.3 and set module type for better compatibility.
Bumped the project version from 0.0.1 to 0.0.2 in the package-lock.json. Added `hasInstallScript` attribute to the main package metadata, indicating the presence of an installation script.
Upgraded package version from 0.0.1 to 0.0.2 to reflect new functionality. Added exports for `resolve` and `register` functions to extend the library capabilities.
Added a new "postinstall" script to `package.json` to automatically build TypeScript files using the `build:tsc` command after dependencies are installed. This ensures that the TypeScript code is compiled immediately following an `npm install`, improving the setup process consistency.