ms-archetype-core
v1.0.0
Published
The ms-archetype-core module administrates global key dependencies as Babel, EsLint and Jest via CLI commands through clap.
Downloads
25
Readme
Archetype Core
The ms-archetype-core module administrates global key dependencies as Babel, EsLint and Jest via CLI commands through clap.
Installation
Install in your project via yarn
yarn install -g xclap-cli
yarn install ms-archetype-core
Usage
xClap
To gain access to the predefined build tasks, please create a clap.js file in your project root and register predefined tasks to clap (see example).
require("ms-archetype-core")();
To get an overview of predefined tasks, type clap into your cli.
clap
For more information on xClap.
Babel
The archetype-core administrates a set of babel configurations as well as their associated babel modules.
The following clap tasks are exported:
Build-Module Task
Transpiles a javascript module with babel. See more: clap build-module --help.
clap build-module --help
Build-Lib
Transpiles server and client code base with babel for isomorphic usage. See more: clap build-lib --help.
clap build-lib --help
Linter
The archetype-core contains following linting tasks and configurations:
eslint
There are multiple eslint configs for different groups of code
- eslintrc-client: Contains configurations for web-code
- eslintrc-server: Contains configurations for node js modules
Create a .eslintrc file in your project root, which extends its configuration based on the mentioned configs.
{
extends: './node_modules/ms-archetype-core/config/eslint/.eslintrc-client'
}
You can use a .eslintignore file to ignore specific files. The patterns in your .eslintignore file must match .gitignore syntax.
Command line for clap task
Executes linter for all js files ending with .js.
clap lint-js
Command line for single files
npx eslint src/scripts/*.js
Tests
The archetype-core contains test tasks like 'test-jest'. All tests can be written in ES6.
The webchannel-archetype comes with jest.js (spies, stubs & mocks).
Jest
Example test for a react component:
import { daysBetweenInTotal, addWeeks, changeDateFormat } from './date';
describe('Util - Date', () => {
describe('daysBetweenInTotal', () => {
it('should return the number of days between to dates', async () => {
const today = new Date();
const tomorrow = new Date();
tomorrow.setDate(today.getDate() + 1);
const days = daysBetweenInTotal(today, tomorrow);
expect(days).toEqual(1);
});
});
});
Command line for clap task
All test files ending with .spec.js will be executed by mocha.
clap test-jest
Execute single test
clap test-jest -t='{path/to/test}'