marc21-punctuation
Version:
Библиотека для обработки формата MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США
53 lines (52 loc) • 2.08 kB
JavaScript
;
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;