@modern-js-reduck/store
Version:
The meta-framework suite designed from scratch for frontend-focused modern web development.
57 lines (56 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for (var name in all)
Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
StateType: () => StateType,
initializerSymbol: () => initializerSymbol,
getModelInitializer: () => getModelInitializer,
isModel: () => isModel,
getComputedDepModels: () => getComputedDepModels,
getStateType: () => getStateType
});
const initializerSymbol = Symbol.for("__reduck_model_initializer__");
const getModelInitializer = (_model) => _model[initializerSymbol];
const isModel = (_model) => _model && Boolean(getModelInitializer(_model));
const getComputedDepModels = (computed) => {
const depModels = [];
const computedArr = Array.isArray(computed) ? computed : [
computed
];
computedArr.forEach((_computed) => {
computed && Object.keys(computed).forEach((key) => {
const selector = computed[key];
if (Array.isArray(selector)) {
selector.forEach((s) => {
if (!depModels.includes(s) && isModel(s)) {
depModels.push(s);
}
});
}
});
});
return depModels;
};
var StateType;
(function(StateType2) {
StateType2["Primitive"] = "primitive";
StateType2["Array"] = "array";
StateType2["Object"] = "object";
})(StateType || (StateType = {}));
const getStateType = (value) => {
if (Array.isArray(value)) {
return StateType.Array;
} else if (typeof value === "object" && value != "undefined") {
return StateType.Object;
} else {
return StateType.Primitive;
}
};