Skip to content

vitaliibendyk/sc-commons-public

 
 

Repository files navigation

sc-commons-public

Public helper packages with commonly used utilities / helpers.

@shiftcode/branch-utilities
functions to read information about the current branch either locally or inside Github actions.

@shiftcode/publish-helper
scripts to prepare and publish libs inside mono-repos with lerna

@shiftcode/utilities
various utility functions, constants and helper types - usable in Node and Browsers

Usage

Add a .npmrc file to the root of your project:

@shiftcode:registry=https://npm.pkg.github.com

Quick Start

  • yarn
  • yarn build
  • start developing

Versioning

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 where XX is your github issue number.

Hint

If it happens that you already have another commit locally, before updating the branch with this build(release):.. commit:

use rebase instead of merge

Anatomy of the repo

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 also moduleNameMapper in jest.config.js

ES Version

We support two runtimes: node and latest browser versions.

Node^18

Node^18 (which is also supported by AWS Lambda) supports 97% of es2022 features 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.

Browser

For modern browsers the latest fully supported version is es2021 (see can-i-use)) which therefore is the target for @shiftcode/utilities package.

About

public helper package with commonly used utils

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 89.2%
  • JavaScript 10.6%
  • Shell 0.2%