UNPKG

@activejs/core

Version:

Pragmatic, Reactive State Management for JavaScript Apps

59 lines 5.66 kB
import { Configuration } from './configuration'; import { UnitBase } from './abstract-unit-base'; import { makeNonEnumerable } from '../utils/funcs'; /** * BoolUnit is a reactive storage Unit that stores `boolean` value. * * It only accepts `boolean` data type as its value. * It ensures that at any point of time the value would always be `boolean`. * * Learn more about Units [here](https://docs.activejs.dev/fundamentals/units). \ * Learn more about BoolUnit [here](https://docs.activejs.dev/fundamentals/units/boolunit). * * Just like every other ActiveJS Unit: * - BoolUnit extends {@link UnitBase} * - Which further extends {@link Base} and `Observable` * * @category 1. Units */ export class BoolUnit extends UnitBase { /** * Current value of the Unit. * @default `false` (boolean false) * * @category Access Value */ value() { return this.rawValue(); } /** * @internal please do not use. */ defaultValue() { return false; } constructor(config) { super(Object.assign(Object.assign({}, Configuration.BOOL_UNIT), config)); makeNonEnumerable(this); } /** * Extends {@link UnitBase.wouldDispatch} and adds additional check for type boolean, * which cannot be bypassed even by using param `force`. * * @param value The value to be dispatched. * @param force Whether dispatch-checks should be bypassed or not. * @returns A boolean indicating whether the param `value` would pass the dispatch-checks if dispatched. * * @category Common Units */ wouldDispatch(value, force) { return this.isValidValue(value) && super.wouldDispatch(value, force); } /** * @internal please do not use. */ isValidValue(value) { return typeof value === 'boolean'; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbC11bml0LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL2FjdGl2ZWpzL2FjdGl2ZWpzL3BhY2thZ2VzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2Jvb2wtdW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxPQUFPLFFBQVMsU0FBUSxRQUFpQjtJQUM3Qzs7Ozs7T0FLRztJQUNILEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxZQUFZO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVksTUFBNEI7UUFDdEMsS0FBSyxpQ0FDQSxhQUFhLENBQUMsU0FBUyxHQUN2QixNQUFNLEVBQ1QsQ0FBQztRQUVILGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxhQUFhLENBQUMsS0FBYyxFQUFFLEtBQWU7UUFDM0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNPLFlBQVksQ0FBQyxLQUFVO1FBQy9CLE9BQU8sT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VW5pdENvbmZpZ30gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSAnLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7VW5pdEJhc2V9IGZyb20gJy4vYWJzdHJhY3QtdW5pdC1iYXNlJztcbmltcG9ydCB7bWFrZU5vbkVudW1lcmFibGV9IGZyb20gJy4uL3V0aWxzL2Z1bmNzJztcblxuLyoqXG4gKiBCb29sVW5pdCBpcyBhIHJlYWN0aXZlIHN0b3JhZ2UgVW5pdCB0aGF0IHN0b3JlcyBgYm9vbGVhbmAgdmFsdWUuXG4gKlxuICogSXQgb25seSBhY2NlcHRzIGBib29sZWFuYCBkYXRhIHR5cGUgYXMgaXRzIHZhbHVlLlxuICogSXQgZW5zdXJlcyB0aGF0IGF0IGFueSBwb2ludCBvZiB0aW1lIHRoZSB2YWx1ZSB3b3VsZCBhbHdheXMgYmUgYGJvb2xlYW5gLlxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgVW5pdHMgW2hlcmVdKGh0dHBzOi8vZG9jcy5hY3RpdmVqcy5kZXYvZnVuZGFtZW50YWxzL3VuaXRzKS4gXFxcbiAqIExlYXJuIG1vcmUgYWJvdXQgQm9vbFVuaXQgW2hlcmVdKGh0dHBzOi8vZG9jcy5hY3RpdmVqcy5kZXYvZnVuZGFtZW50YWxzL3VuaXRzL2Jvb2x1bml0KS5cbiAqXG4gKiBKdXN0IGxpa2UgZXZlcnkgb3RoZXIgQWN0aXZlSlMgVW5pdDpcbiAqIC0gQm9vbFVuaXQgZXh0ZW5kcyB7QGxpbmsgVW5pdEJhc2V9XG4gKiAtIFdoaWNoIGZ1cnRoZXIgZXh0ZW5kcyB7QGxpbmsgQmFzZX0gYW5kIGBPYnNlcnZhYmxlYFxuICpcbiAqIEBjYXRlZ29yeSAxLiBVbml0c1xuICovXG5leHBvcnQgY2xhc3MgQm9vbFVuaXQgZXh0ZW5kcyBVbml0QmFzZTxib29sZWFuPiB7XG4gIC8qKlxuICAgKiBDdXJyZW50IHZhbHVlIG9mIHRoZSBVbml0LlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgIChib29sZWFuIGZhbHNlKVxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQWNjZXNzIFZhbHVlXG4gICAqL1xuICB2YWx1ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbCBwbGVhc2UgZG8gbm90IHVzZS5cbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogVW5pdENvbmZpZzxib29sZWFuPikge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLkNvbmZpZ3VyYXRpb24uQk9PTF9VTklULFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuXG4gICAgbWFrZU5vbkVudW1lcmFibGUodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogRXh0ZW5kcyB7QGxpbmsgVW5pdEJhc2Uud291bGREaXNwYXRjaH0gYW5kIGFkZHMgYWRkaXRpb25hbCBjaGVjayBmb3IgdHlwZSBib29sZWFuLFxuICAgKiB3aGljaCBjYW5ub3QgYmUgYnlwYXNzZWQgZXZlbiBieSB1c2luZyBwYXJhbSBgZm9yY2VgLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIGRpc3BhdGNoZWQuXG4gICAqIEBwYXJhbSBmb3JjZSBXaGV0aGVyIGRpc3BhdGNoLWNoZWNrcyBzaG91bGQgYmUgYnlwYXNzZWQgb3Igbm90LlxuICAgKiBAcmV0dXJucyBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBwYXJhbSBgdmFsdWVgIHdvdWxkIHBhc3MgdGhlIGRpc3BhdGNoLWNoZWNrcyBpZiBkaXNwYXRjaGVkLlxuICAgKlxuICAgKiBAY2F0ZWdvcnkgQ29tbW9uIFVuaXRzXG4gICAqL1xuICB3b3VsZERpc3BhdGNoKHZhbHVlOiBib29sZWFuLCBmb3JjZT86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkVmFsdWUodmFsdWUpICYmIHN1cGVyLndvdWxkRGlzcGF0Y2godmFsdWUsIGZvcmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWwgcGxlYXNlIGRvIG5vdCB1c2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZFZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbic7XG4gIH1cbn1cbiJdfQ==