UNPKG

moysklad-helpers

Version:

Вспомогательные функции для работы с библиотекой moysklad

93 lines (92 loc) 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getHelpers = void 0; const types_1 = require("../types"); const getRefMetaType_1 = require("./getRefMetaType"); function getHelpers(ms) { function href(path) { if (path == null) return undefined; if ((0, types_1.isEntityRef)(path)) { return ms.buildUrl(path.meta.href); } else { return ms.buildUrl(path); } } function meta(path) { return { type: (0, getRefMetaType_1.getRefMetaType)(path), href: href(path) }; } const attr = (path, value) => { if ((0, getRefMetaType_1.getRefMetaType)(path) !== 'attributemetadata') { throw new Error('attr: Href не соответствует типу атрибута'); } return { meta: { type: 'attributemetadata', href: href(path) }, value }; }; const fileAttr = (path, file) => { if ((0, getRefMetaType_1.getRefMetaType)(path) !== 'attributemetadata') { throw new Error('attr: Href не соответствует типу атрибута'); } return { meta: { type: 'attributemetadata', href: href(path) }, file }; }; function ref(path) { return path != null ? { meta: meta(path) } : undefined; } function positionRef(...args) { const docHref = href(args[0]); return ref(`${docHref}/positions/${args[1]}`); } const refEqual = (entityRef1, entityRef2) => { return entityRef1 == null || entityRef2 == null ? false : href(entityRef1) === href(entityRef2); }; function copyFieldsRefs(srcEntity, fieldNames) { return fieldNames.reduce((res, fieldName) => { const curFieldVal = srcEntity[fieldName]; if ((0, types_1.isEntityRef)(curFieldVal)) { res[fieldName] = ref(curFieldVal); } else if (curFieldVal != null) { res[fieldName] = curFieldVal; } return res; }, {}); } function copyFields(srcEntity, fieldNames) { return fieldNames.reduce((res, fieldName) => { const curFieldVal = srcEntity[fieldName]; if (curFieldVal != null) { res[fieldName] = curFieldVal; } return res; }, {}); } return { href, attr, fileAttr, meta, ref, positionRef, refEqual, copyFields, copyFieldsRefs }; } exports.getHelpers = getHelpers;