1.0.3 • Published 3 years ago
@dizmo/functions-experimental v1.0.3
@dizmo/functions-experimental
A decorator to designate class methods (and properties) as experimental: It takes an optional message (or function) and returns the original method, where an [EXPERIMENTAL] Class.method: message text is printed at most once upon invoking the experimental method (using console.warn).
Usage
Installation
npm install @dizmo/functions-experimental --saveRequire
import { experimental } from '@dizmo/functions-experimental';
import { original } from '@dizmo/functions-experimental';Example(s)
class MyClass {
@experimental
method1() { ... }
@experimental('message')
method2() { ... }
@experimental((self, key) => 'message')
method3() { ... }
}..where self instanceof MyClass and key === 'method3'.
const instance = new MyClass();
original(instance.method).bind(instance)();..where bind(instance) is required!
class MyClass {
@experimental
static method1() { ... }
@experimental('message')
static method2() { ... }
@experimental((self, key) => 'message')
static method3() { ... }
}..where self === MyClass and key === 'method3'.
original(MyClass.method).bind(MyClass)();..where bind(MyClass) is required!
Development
Clean
npm run cleanBuild
npm run buildwithout linting and cleaning:
npm run -- build --no-lint --no-cleanwith UMD bundling (incl. minimization):
npm run -- build --prepackwith UMD bundling (excl. minimization):
npm run -- build --prepack --no-minifyLint
npm run lintwith auto-fixing:
npm run -- lint --fixTest
npm run testwithout linting, cleaning and (re-)building:
npm run -- test --no-lint --no-clean --no-buildCover
npm run coverwithout linting, cleaning and (re-)building:
npm run -- cover --no-lint --no-clean --no-buildDocumentation
npm run docsPublication
npm publishinitially (if public):
npm publish --access=publicCopyright
© 2021 dizmo AG, Switzerland