Записувачі
Записники призначені для систематизації та керування описом бізнес-схеми, роблячи процес структурованим та
декларативним. Кожен записник функціонально представляє собою функцію, яка повертає переданий їй опис без будь-яких
змін. Цей підхід у поєднанні з типізацією TypeScript дозволяє забезпечити консистентність опису бізнес-схеми та
проводити перевірки структури даних під час розробки.
Архітектура
Записувачі - це окремі функції, які без змін повертають ті ж дані, які в них передаються. Їх функціонал включає в себе високорівневу типізацію для опису документа, оскільки головна їхній мета - це встановлення та контроль виконання правил опису бізнес-схеми.
Перелік записувачів
На даний момент X-Fiber підтримує наступний перелік записувачів:
| Назва | Модуль | Опис |
|---|---|---|
setService | Записувач сервісу | Керує створенням сервісу, з опис інформації про сервіс, його документацією та переліком прикладних областей, які до нього входять. |
setPointer | Записувач прикладної області | Керує створенням прикладної області, з опис інформації про область, її документацією та переліком зареєстрованих документів, які до неї входять. |
setRouter | Записувач маршрутизатора | Керує створенням м аршрутизатора, який складається з переліку кінцевих маршрутів, кожний з яких включає деталі маршруту та обробник цього маршруту. |
setEmitter | Записувач емітера подій | Керує створенням емітера подій, який складається з переліку подій, кожна з яких включає деталі подій та обробник цієї події. |
setMongoModel | Записувач моделі MongoDB | Керує створенням опису моделі MongoDB. |
setMongoRepository | Записувач репозиторію MongoDB | Керує створенням переліку методів по роботі з колекією MongoDB. |
setTypeormSchema | Записувач TypeORM схеми | Керує створенням опису схеми TypeORM. |
setTypeormRepository | Записувач репозиторію TypeORM | Керує створенням переліку методів по роботі з таблицею SQL бази даних. |
setValidator | Записувач валідатора | Керує створенням переліку методів валідації. |
setDictionary | Записувач словника | Керує створенням словників перекладу. |
setHelper | Записувач помічника | Керує створенням переліку допоміжних методів. |
Уніфікований вигляд записувача виглядає наступним чином:
export type ExtendedRecordObject = Record<string, ExtendedRecordObject | string>;
export type DictionaryStructure<
L extends string,
D extends ExtendedRecordObject
> = {
language: L;
dictionary: D;
};
export const setDictionary = <L extends string, D extends ExtendedRecordObject>(
language: L,
dictionary: D
): DictionaryStructure<L, D> => {
return {language, dictionary};
};
де:
ExtendedRecordObject- обʼєкт з довільною кількістю вкладеностей, або кінцевим строковим значенням.DictionaryStructure- структура словника перекладу, яка буде зареєстрована в бізнес-схемі при завантажені схеми.setDictionary- функція записувач словника перекладуlanguage- мова перекладуdictionary- словник перекладу