marc21-punctuation
Version:
Библиотека для обработки формата MARC21 и применения правил пунктуации согласно стандартам Библиотеки Конгресса США
93 lines (92 loc) • 2.42 kB
TypeScript
/**
* Типы данных для работы с 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;
}