@activejs/core
Version:
Pragmatic, Reactive State Management for JavaScript Apps
59 lines • 5.66 kB
JavaScript
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==