Public helper packages with commonly used utilities / helpers.
functions to read information about the current branch either locally or inside Github actions.
Our recommended config for eslint. We provide two versions, one for usage in node projects and one for Angular.
Contains some custom es lint rules. Those are used in our recommended eslint config.
scripts to prepare and publish libs inside mono-repos with lerna
various utility functions, constants and helper types - usable in Node and Browsers
Add a .npmrc
file to the root of your project:
@shiftcode:registry=https://npm.pkg.github.com
npm i
npm run build
- start developing
When opening a PR lerna publishes a new prerelease version with the preId -prXX.{COUNT}
.
By creating this version lerna creates a commit with the updated versions in the package.json. It does not update the peerDependencies
versions.
After merging the PR back to the master a new release is published with the graduated version (eg. 1.0.1-pr55.7
-> 1.0.1
).
ensure your branch is named correctly by the convention
#XX-name
whereXX
is your github issue number.
If it happens that you already have another commit locally, before updating the branch with this build(release):..
commit:
use
rebase
instead ofmerge
We use lerna to manage the packages.
- For lerna to know the topological order of packages, we define the dependencies between the packages in each individual package as
devDependency
- For testing reasons we compile against the source code to run tests without prior compiling of the source, this requires
tsconfig.paths
definitions and alsomoduleNameMapper
injest.config.js
We support two runtimes: node
and latest browser versions
.
Node 20 (which is also supported by AWS Lambda) supports 97% of es2022
features
(no version supports 100%) and 100% of es2023
features.
The only es2022
feature that is currently not supported and needs a polyfill when using it is
RegExp Match Indices (shows up in flags) (see 2ality blog for insights).
Polyfill can be found here: https://www.npmjs.com/package/regexp-match-indices.
For modern browsers the latest fully supported version is es2023
(see can-i-use)
which therefore is the target for @shiftcode/utilities
package (see package README).