Compare commits
2 Commits
feature/re
...
feature/es
Author | SHA1 | Date | |
---|---|---|---|
b6ce0ec52d | |||
319f364daf |
2
.github/config.conf
vendored
2
.github/config.conf
vendored
@@ -1,2 +0,0 @@
|
|||||||
[branch_validation]
|
|
||||||
valid_prefixes = feature/,fix/,refactoring/,testing/,dependabot/,gh-pages
|
|
23
.github/workflows/ValidateBranchName.yml
vendored
23
.github/workflows/ValidateBranchName.yml
vendored
@@ -4,7 +4,6 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
workflow_dispatch: # Allows manual execution of the workflow.
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-branch-name-on-pull-request:
|
validate-branch-name-on-pull-request:
|
||||||
@@ -14,27 +13,11 @@ jobs:
|
|||||||
- name: Check out repository
|
- name: Check out repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Read Config File
|
|
||||||
id: config
|
|
||||||
run: |
|
|
||||||
VALID_PREFIXES=$(grep 'valid_prefixes' .github/config.conf | cut -d '=' -f2 | tr -d ' ')
|
|
||||||
echo "VALID_PREFIXES=$VALID_PREFIXES" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Validate Branch Name on Pull Request
|
- name: Validate Branch Name on Pull Request
|
||||||
run: |
|
run: |
|
||||||
BRANCH_NAME=${{ github.head_ref }}
|
BRANCH_NAME=${GITHUB_HEAD_REF}
|
||||||
VALID_PREFIXES_ARRAY=(${VALID_PREFIXES//,/ })
|
if [[ ! "$BRANCH_NAME" =~ ^(feature\/|fix\/|refactoring\/|testing\/|dependabot\/|gh-pages) ]]; then
|
||||||
VALID=false
|
|
||||||
|
|
||||||
for PREFIX in "${VALID_PREFIXES_ARRAY[@]}"; do
|
|
||||||
if [[ "$BRANCH_NAME" =~ ^$PREFIX ]]; then
|
|
||||||
VALID=true
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$VALID" = false ]; then
|
|
||||||
echo "Invalid branch name: $BRANCH_NAME"
|
echo "Invalid branch name: $BRANCH_NAME"
|
||||||
echo "Branch name must start with one of the following prefixes: $VALID_PREFIXES"
|
echo "Branch name must start with 'feature/', 'fix/', 'refactoring/', 'testing/', dependabot/" or "gh-pages"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- feat: Add a full description of `Identifiers` as JSDoc comment.
|
||||||
|
This establishes the definition of what an `Identifiers` is.
|
||||||
|
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
|
@@ -1,11 +1,35 @@
|
|||||||
/**
|
/**
|
||||||
* The dependency identifier.
|
* ## The dependency identifier
|
||||||
* You can use any string as identifier.
|
*
|
||||||
* To create order, it is also possible to
|
* You can use any string or Symbol as identifier. The identifier is used to
|
||||||
* provide these with a separator: `GroupA.ClassZ`.
|
* register a class in the TSinjex DI (Dependency Injection) container.
|
||||||
* The convection for naming is as follows:
|
* See **Hierarchical identifiers** for more information on `.` in identifiers.
|
||||||
* The name should generally correspond to the interface that is relevant.
|
*
|
||||||
* I.e. a class `ClassA` that implements the interface `IClassA` and is
|
* ### Hierarchical identifiers
|
||||||
* registered as a dependent class is registered under the interface name `IClassA`.
|
* To create hierarchical identifiers, you can use a dot `.` as a separator.
|
||||||
|
* E.g. `Parent.Child` or `Parent.Child.Grandchild`.
|
||||||
|
*
|
||||||
|
* ### Merge functionality
|
||||||
|
* You can merge multiple dependencies into one by resolving them with
|
||||||
|
* a identifier that is a prefix of the actual identifiers.
|
||||||
|
* E.g. `Parent` resolves `Parent.*` and returns a mixin of all children.
|
||||||
|
* Merging will only work, if the main identifier is not registered.
|
||||||
|
* Grandchildren are not included in the mixin but you can use something like
|
||||||
|
* `Parent.Child.Grandchild` to merge all direct children of Grandchild,
|
||||||
|
* e.g. `Parent.Child.Grandchild.*`.
|
||||||
|
* If you don't want to allow merging, you must register the dependencies
|
||||||
|
* with the full identifier. E.g. `Parent` or `Parent.Child.Grandchild`.
|
||||||
|
*
|
||||||
|
* ### Naming convention
|
||||||
|
* The name of a dependency should generally correspond to the interface that is implemented.
|
||||||
|
* E.g. a class `ClassA` that implements the interface `IClassA` and is registered
|
||||||
|
* as a dependent class is registered under the interface name `IClassA`.
|
||||||
|
*
|
||||||
|
* The mixin parts of the class are registered under the interface name `IClassA.*`.
|
||||||
|
* E.g. `IClassA.IClassZ`, `IClassA.IClassY`, etc.
|
||||||
|
*
|
||||||
|
* #### Static/Constructor Identifier naming
|
||||||
|
* The identifier for a static or constructor dependency should be the same as the class name
|
||||||
|
* postfixed with `_`. E.g. `IClassA_` for the the static or constructor interface of class `IClassA`.
|
||||||
*/
|
*/
|
||||||
export type Identifier = string | symbol;
|
export type Identifier = string | symbol;
|
||||||
|
Reference in New Issue
Block a user