UNPKG

marc21-punctuation

Version:

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

93 lines (92 loc) 2.42 kB
/** * Типы данных для работы с MARC21 */ /** * Интерфейс поля MARC21 */ export interface Marc21Field { /** * Тег поля (например, '245', '100', '700') */ tag: string; /** * Индикаторы поля (два символа) */ indicators?: [string, string]; /** * Подполя */ subfields?: Marc21Subfield[]; /** * Значение поля (для полей контрольной информации/фиксированных полей) */ value?: string; } /** * Интерфейс подполя MARC21 */ export interface Marc21Subfield { /** * Код подполя (один символ) */ code: string; /** * Значение подполя */ value: string; } /** * Форматированное подполе с примененными правилами пунктуации */ export interface FormattedSubfield extends Marc21Subfield { /** * Форматированное значение с пунктуацией */ formattedValue: string; /** * Префикс перед значением подполя */ prefix?: string; /** * Суффикс после значения подполя */ suffix?: string; } /** * Результат форматирования поля MARC21 */ export interface FormattingResult { /** * Исходное поле MARC21 */ field: Marc21Field; /** * Форматированный текст с примененными правилами пунктуации */ formattedText: string; /** * Форматированные подполя */ formattedSubfields?: FormattedSubfield[]; } /** * Правило пунктуации для MARC21 */ export interface PunctuationRule { /** * Тег поля, к которому применяется правило */ tag: string; /** * Опциональное условие для индикаторов */ indicators?: [string | null, string | null]; /** * Применяет правило пунктуации к подполям */ apply: (field: Marc21Field) => FormattedSubfield[]; /** * Описание правила */ description?: string; }