UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

32 lines (31 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Registry = void 0; const index_js_1 = require("../../../table/index.js"); class Registry extends index_js_1.TableAction { constructor(table, _entities = [], accessPatterns = {}, { entities = registryEntities(_entities), query = registryQueries(accessPatterns) } = {}) { super(table, _entities); this.entities = entities; this.accessPatterns = accessPatterns; this.query = query; } registerEntities(...nextEntities) { return new Registry(this.table, nextEntities, this.accessPatterns, { entities: registryEntities(nextEntities), query: this.query }); } registerAccessPatterns(nextAccessPatterns) { return new Registry(this.table, this[index_js_1.$entities], nextAccessPatterns, { entities: this.entities, query: registryQueries(nextAccessPatterns) }); } build(Action) { return new Action(this.table, this[index_js_1.$entities]); } } exports.Registry = Registry; Registry.actionName = 'registry'; const registryQueries = (accessPatterns) => Object.fromEntries(Object.entries(accessPatterns).map(([key, ap]) => [ key, input => ap.query(input) ])); const registryEntities = (entities) => Object.fromEntries(entities.map((entity) => [entity.entityName, entity]));