immutable-js
Version:
Immutable types in JavaScript
59 lines (47 loc) • 1.85 kB
JavaScript
/**
* Copyright (c) 2015, Jan Biasi.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
export var IS_ITERABLE_FLAG = '@@__IMMUTABLE_ITERABLE__@@';
export var IS_KEYED_FLAG = '@@__IMMUTABLE_KEYED__@@';
export var IS_INDEXED_FLAG = '@@__IMMUTABLE_INDEXED__@@';
export var IS_ORDERED_FLAG = '@@__IMMUTABLE_ORDERED__@@';
export var IS_SEQUENCE_FLAG = '@@__IMMUTABLE_SEQUENCE__@@';
export var IS_STACK_FLAG = '@@__IMMUTABLE_STACK__@@';
export var IS_MAP_FLAG = '@@__IMMUTABLE_MAP__@@';
export var IS_LIST_FLAG = '@@__IMMUTABLE_LIST__@@';
export var CACHE_FLAG = '@@__CACHE__@@';
export function isIterable(maybeIterable) {
return !!(maybeIterable && maybeIterable[IS_ITERABLE_FLAG]);
}
export function isKeyed(maybeKeyed) {
return !!(maybeKeyed && maybeKeyed[IS_KEYED_FLAG]);
}
export function isIndexed(maybeIndexed) {
return !!(maybeIndexed && maybeIndexed[IS_INDEXED_FLAG]);
}
export function isAssociative(maybeAssociative) {
return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);
}
export function isOrdered(maybeOrdered) {
return !!(maybeOrdered && maybeOrdered[IS_ORDERED_FLAG]);
}
export function isSequence(maybeSequence) {
return !!(maybeSequence && maybeSequence[IS_SEQUENCE_FLAG]);
}
export function isStack(maybeStack) {
return !!(maybeStack && maybeStack[IS_STACK_FLAG]);
}
export function isMap(maybeMap) {
return !!(maybeMap && maybeMap[IS_MAP_FLAG]);
}
export function isList(maybeList) {
return !!(maybeList && maybeList[IS_LIST_FLAG]);
}
export function hasCache(maybeHasCache) {
return !!(maybeHasCache && maybeHasCache[CACHE_FLAG] && maybeHasCache._cache)
}