Skip to content

MauroDataMapper/mdm-resources

Repository files navigation

mdm-resources

JavaScript wrapper around the endpoints exposed by mdm-core

Build status

Branch Build Status
main Build Status
develop Build Status

Installation

Install to your project via npm:

npm install --save @maurodatamapper/mdm-resources

Development

Requirements

Please use nvm to manage the required node dependencies, and then run npm i -g npm@8.3.0 to update to v8 of npm

Setup

  1. Clone the mdm-resources repo
  2. Install nvm environment
  3. Install all dependencies
# Clone repo
$ git clone git@github.com:MauroDataMapper/mdm-resources.git

# Install the NVM environment
# This will use the `.nvmrc` file to install the node versions we need and update to the latest version of npm
$ nvm install --latest-npm

# Install the code dependencies
$ npm install

Building

Run this command to build:

npm run build

This will compile the TypeScript code three times, to support:

  1. ES5 syntax
  2. ES6 syntax
  3. ES2015 syntax (preferred)

Definition *.d.ts files and source maps will also be included.

All output will be compiled to the root level lib folder, with sub-folders per JavaScript syntax style.

Compile and watch

Run this command to compile and continuously watch for code changes:

npm start

If you have a downstream project that is linked to your local mdm-resources via npm link, any changes made will be reflected in the client application.

Documentation

Run this command to auto-generate API documentation for all classes in `mdm-resources:

npm run docs

# Or, to update docs when doc comments are being written...
npm run docs-watch

Submitting Pull Requests

Before submitting a PR to this repo, please run this command locally:

npm run pr-checks

This will run through a set of steps that the Jenkins CI build will also check, so it is worth ensuring there are no errors beforehand.

Steps that will be checked are:

  1. License headers should be present - if not, run the npm run license-check add command to fix.
  2. Linting of code