Перейти до основного вмісту

Записувачі

інформація

Записники призначені для систематизації та керування описом бізнес-схеми, роблячи процес структурованим та декларативним. Кожен записник функціонально представляє собою функцію, яка повертає переданий їй опис без будь-яких змін. Цей підхід у поєднанні з типізацією TypeScript дозволяє забезпечити консистентність опису бізнес-схеми та проводити перевірки структури даних під час розробки.

Архітектура

Записувачі - це окремі функції, які без змін повертають ті ж дані, які в них передаються. Їх функціонал включає в себе високорівневу типізацію для опису документа, оскільки головна їхній мета - це встановлення та контроль виконання правил опису бізнес-схеми.

setters-arch.svg

Перелік записувачів

На даний момент 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 - словник перекладу