@lcf.vs/abstract

2.0.4 • Public • Published

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 constructor
  • immutables: The immutable properties
  • requirements: The properties's constructors, to validate their types

License

MIT

Package Sidebar

Install

npm i @lcf.vs/abstract

Weekly Downloads

2

Version

2.0.4

License

MIT

Unpacked Size

3.4 kB

Total Files

3

Last publish

Collaborators

  • lcf.vs