Skip to content

Latest commit

 

History

History
112 lines (86 loc) · 7.37 KB

CONTRIBUTING.md

File metadata and controls

112 lines (86 loc) · 7.37 KB

Contributing

Contributions are not currently being accepted.

The license for this library is AGPL-3.0-only and exceptions may be sold for commercial and other private use. A CLA is also not currently defined.

When these issues are resolved and more formalized contributions will then be accepted with the appropriate caveats.

Getting Started

  • Clone the repository
git clone --depth=1 ...
  • Install dependencies
cd <project_name>
npm install
  • Build
npm run build

Project Structure

Name Description
.github Settings for the github repository including workflow definitions
.vscode Settings for VS Code
coverage Code coverage output from Jest
dist Contains the compiled output of the build
node_modules node package dependencies
src Contains the source code that will be compiled to the dist dir
.editorconfig Config settings for EditorConfig IDE code style checking
.eslintrc.json Linting configuration
.gitignore Specifies files untracked by version control
.npmrc npm config settings
CONTRIBUTING.md The file you are currently reading
jest.config.js Jest unit testing configuration
LICENSE AGPL-3.0-only
package-lock.json Autogenerated meta-manifest of package.json
package.json Node Package configuration settings with related build scripts
README.md A high level overview of the library
tsconfig.json Config settings for compiling TypeScript code
webpack.config.json Config settings for the webpack bundler

Build and Test

To build and test this library locally you will need the following:

Npm Script Description
build Performs a full build of the library including type generation and linting. Outputs to the dist folder
build-nofix Perfoms the sames steps as build except that lint-nofix will be executed.
clean deletes the dist folder
clean-full deletes the dist, node_modules, and .cache folders
debug Starts debugger
lint Performs linting and type checking of the library
lint-nofix Performs linting but will not autofix problems.
test Executes unit tests
type-check Performs type checking

Dependencies

Dependencies are managed through package.json.

The runtime dependencies are as follows:

Package Description License
@final-hill/decorator-contracts Code Contracts for ECMAScript classes AGPL-3.0-only
@final-hill/multi-key-map Trie data structure AGPL-3.0-only

The development dependencies are as follows:

Package Description License
@types/jest Type definitions for ts-jest support MIT
@types/node Type definitions for node. (used for build) MIT
@typescript-eslint/eslint-plugin Type definitions for ESLint MIT
@typescript-eslint/parser Type definitions for ESLint parser BSD-2-Clause
eslint ECMAScript linting library MIT
eslint-plugin-header ESLint extension for linting file headers MIT
eslint-plugin-import ESLint extension for linting imports MIT
jest JavaScript Unit testing library MIT
jest-junit Jest extension for JUnit reporting Apache-2.0
rimraf Cross platform lib for deleting files/folders ISC
ts-jest TypeScript support for jest MIT
ts-loader TypeScript loader for Webpack MIT
typescript TypeScript compiler Apache-2.0
webpack Module bundler MIT
webpack-cli Command line library for WebPack MIT

If you're using Windows and a newer version of NodeJS then you may additionally need to run the following command due to a transitive dependency on node-gyp:

npm install -g windows-build-tools