2.0.4 • Published 5 years ago
@lcf.vs/abstract v2.0.4
Abstract
A simple base abstract class to extend, with immutables & type forcing
Install
npm i @lcf.vs/abstract
Usage
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})
}
}
API
/**
* @param {Abstract=Abstract} constructor
* @param {Object=} immutables
* @param {...Object} requirements
*/
Abstract(constructor = Abstract, immutables = {}, ...requirements)
constructor
: The current abstract constructorimmutables
: The immutable propertiesrequirements
: The properties's constructors, to validate their types