@dwijbavisi/genetic-pathway v0.4.0
genetic-pathway 0.4.0
š Subject-observer pattern using Proxy traps
Table of Contents
Installation
This project is published on npm at @dwijbavisi/genetic-pathway
# Install via npm
npm i @dwijbavisi/genetic-pathway// Import in your project
import { tokens, Genome } from '@dwijbavisi/genetic-pathway';Usage
Below is the minimal example of how to use this library.
// Import in your project
import { Genome } from '@dwijbavisi/genetic-pathway';
// Host can be any eventTarget object
const host = document.createElement('div');
// All events will be dispatched on this host
const genome = new Genome(host);
// Use the genome to handle proxy traps
const gene = new Proxy({
name: {
first: 'Taciturn',
last: 'Coder'
}
}, genome);
// Add event listeners to the host
host.addEventListener(':/name/first', (e) => {
console.log('Property: :/name/first changed');
console.log(e);
});
host.addEventListener(':/name/last', (e) => {
console.log('Property: :/name/last changed');
console.log(e);
});
// Change the values of the properties
gene.name.first = 'Dwij'; // Expected output: 'Property: :/name/first changed'
gene.name.last = 'Bavisi'; // Expected output: 'Property: :/name/last changed'Documentation
See docs for more information.
Generating Documentation
This project uses JSDoc to generate documentation.
Use the following command to generate the documentation.
npm run build-docs
# OR
jsdoc -c jsdoc.config.json -d docs/Type Definitions
This project uses TypeScript to generate type definitions.
Use the following command to generate the type definitions.
npm run build-types
# OR
npx tscTesting
Install the dependencies using the following command.
npm iCode Style
This project uses eslint to implement code style checks.
Use the following command to run the linter.
npm run linter
# OR
eslint index.js tokens.js src/**/*.jsUnit Tests
This project uses Jest framework for unit testing.
And jest-environment-jsdom is used as a mock for browser environment.
Use the following command to run the tests.
npm test
# OR
cross-env NODE_OPTIONS=--experimental-vm-modules npx jestCode Coverage
The code coverage is generated using Jest and is stored in the
./spec/coverage directory.