UNPKG

chrono-forge

Version:

A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont

78 lines (77 loc) 3.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setState = exports.clearEntities = exports.deleteNormalizedEntities = exports.updateNormalizedEntities = exports.deleteEntities = exports.deleteEntity = exports.updateEntitiesPartial = exports.updateEntities = exports.updateEntityPartial = exports.updateEntity = exports.actionNames = exports.SET_STATE = exports.DELETE_ENTITIES = exports.UPDATE_ENTITIES_PARTIAL = exports.UPDATE_ENTITIES = void 0; exports.getSchema = getSchema; const entities_1 = require("./entities"); const normalizr_1 = require("normalizr"); const SchemaManager_1 = require("../store/SchemaManager"); exports.UPDATE_ENTITIES = 'entities.upsertEntities'; exports.UPDATE_ENTITIES_PARTIAL = 'entities.partialUpdates'; exports.DELETE_ENTITIES = 'entities.deleteEntities'; exports.SET_STATE = 'entities.setState'; exports.actionNames = { UPDATE_ENTITIES: exports.UPDATE_ENTITIES, UPDATE_ENTITIES_PARTIAL: exports.UPDATE_ENTITIES_PARTIAL, DELETE_ENTITIES: exports.DELETE_ENTITIES, SET_STATE: exports.SET_STATE }; const updateEntity = (entity, entityName) => (0, exports.updateEntities)([entity], entityName); exports.updateEntity = updateEntity; const updateEntityPartial = (entity, entityName, strategy = '$merge') => (0, exports.updateEntitiesPartial)([entity], entityName, strategy); exports.updateEntityPartial = updateEntityPartial; const updateEntities = (entities, entityName) => (0, exports.updateNormalizedEntities)((0, normalizr_1.normalize)(Array.isArray(entities) ? entities : [entities], [getSchema(entityName)]).entities); exports.updateEntities = updateEntities; const updateEntitiesPartial = (entities, entityName, strategy = '$merge') => ({ type: exports.UPDATE_ENTITIES_PARTIAL, entities: (0, normalizr_1.normalize)(Array.isArray(entities) ? entities : [entities], [getSchema(entityName)]) .entities, strategy }); exports.updateEntitiesPartial = updateEntitiesPartial; const deleteEntity = (entity, entityName) => (0, exports.deleteEntities)([entity], entityName); exports.deleteEntity = deleteEntity; const deleteEntities = (entities, entityName) => (0, exports.deleteNormalizedEntities)((0, normalizr_1.normalize)(entities, [getSchema(entityName)]).entities); exports.deleteEntities = deleteEntities; const updateNormalizedEntities = (entities, strategy = '$merge') => ({ type: exports.UPDATE_ENTITIES, entities, strategy }); exports.updateNormalizedEntities = updateNormalizedEntities; const deleteNormalizedEntities = (entities) => ({ type: exports.DELETE_ENTITIES, entities }); exports.deleteNormalizedEntities = deleteNormalizedEntities; const clearEntities = (entities = { ...entities_1.defaultState }) => ({ type: exports.SET_STATE, entities }); exports.clearEntities = clearEntities; const setState = (entities = {}) => ({ type: exports.SET_STATE, entities }); exports.setState = setState; function getSchema(entityName) { const schemas = SchemaManager_1.SchemaManager.getInstance().getSchemas(); const schema = schemas[entityName]; if (!schema) { throw new Error(`Schema for ${entityName} not found.`); } return schema; } exports.default = { actionNames: exports.actionNames, getSchema, setState: exports.setState, updateEntity: exports.updateEntity, updateEntities: exports.updateEntities, deleteEntity: exports.deleteEntity, deleteEntities: exports.deleteEntities, clearEntities: exports.clearEntities, updateEntityPartial: exports.updateEntityPartial, updateEntitiesPartial: exports.updateEntitiesPartial, updateNormalizedEntities: exports.updateNormalizedEntities, deleteNormalizedEntities: exports.deleteNormalizedEntities };