UNPKG

marc21-punctuation

Version:

Библиотека для обработки формата MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США

53 lines (52 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Marc21Formatter = void 0; const formatter_1 = require("./formatter"); const rules_1 = require("./rules"); /** * Форматтер для MARC21, который применяет стандартные правила пунктуации * согласно стандартам Библиотеки Конгресса США */ class Marc21Formatter extends formatter_1.Formatter { /** * Конструктор с инициализацией стандартных правил пунктуации */ constructor() { super(); this.addRules(rules_1.standardRules); } /** * Форматирует MARC21 запись целиком * @param fields Массив полей MARC21 * @returns Объект с результатами форматирования для каждого поля */ formatRecord(fields) { const result = {}; fields.forEach(field => { // Игнорируем контрольные поля (001-009) if (!field.tag.startsWith('00')) { const formattedField = this.format(field); result[field.tag] = formattedField; } }); return result; } /** * Возвращает отформатированный текст для отображения пользователю * @param field Поле MARC21 * @returns Строка с примененными правилами пунктуации */ getDisplayText(field) { const formatted = this.format(field); return formatted.formattedText; } /** * Проверяет, есть ли правило для указанного тега * @param tag Тег поля MARC21 * @returns true, если правило существует */ hasRuleForTag(tag) { return rules_1.standardRules.some(rule => rule.tag === tag); } } exports.Marc21Formatter = Marc21Formatter;