UNPKG

@bookbox/core

Version:

Bookbox — e-book format

34 lines (33 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getElementsByKeys = exports.getStore = void 0; function getStore({ builder, schema, externalBuilder, getBuild, }) { const result = { dataByKeys: {}, elementsByKeys: getElementsByKeys(schema), }; for (const [key, elem] of Object.entries(result.elementsByKeys)) { // FIXME: поздние ключи могут использовать более ранние, но не наоборот result.dataByKeys[key] = builder({ schema: [elem], store: result, externalBuilder, build: getBuild(result), }); } return result; } exports.getStore = getStore; function getElementsByKeys(schema) { let result = {}; for (const item of schema) { if (typeof item === 'string') { continue; } result[item.props.key] = item; const childrenRecord = getElementsByKeys(item.children); result = Object.assign(Object.assign({}, result), childrenRecord); } return result; } exports.getElementsByKeys = getElementsByKeys;