UNPKG

@lcf.vs/abstract

Version:

A simple base abstract class, in JavaScript, to extend with immutables & type forcing

54 lines (41 loc) 1.31 kB
# <a name="reference">Abstract</a> A simple base abstract class to extend, with immutables & type forcing ## <a name="install">Install</a> `npm i @lcf.vs/abstract` ## <a name="usage">Usage</a> ```js import Abstract from '@lcf.vs/abstract' class AbstractApplication extends Abstract { constructor ( constructor = AbstractApplication, {router, renderer, server, ...rest}, ...requirements ) { super(constructor, {renderer, router, server, ...rest}, ...[ ...requirements, { renderer: Object, router: Object, server: Object }]) } } class Application extends AbstractApplication { constructor (router, renderer, server, rest = {}) { super(AbstractApplication, {router, renderer, server, ...rest}) } } ``` ## <a name="api">API</a> ```js /** * @param {Abstract=Abstract} constructor * @param {Object=} immutables * @param {...Object} requirements */ Abstract(constructor = Abstract, immutables = {}, ...requirements) ``` * `constructor`: The current abstract constructor * `immutables`: The immutable properties * `requirements`: The properties's constructors, to validate their types ## <a name="license">License</a> [MIT](https://github.com/Lcfvs/content-handler/blob/master/licence.md)