Angular: парсинг пользовательских декораторов машинописи - PullRequest
0 голосов
/ 22 октября 2018

Я хочу использовать декораторы Typescript, чтобы определить сопоставление параметров моего бэкэнд-сервиса / модели с параметрами внешнего интерфейса в моем проекте Angular.Я не могу изменить бэкэнд и не хочу использовать имена для моего кода веб-интерфейса.

Пример определения модели машинописного текста:

export class Person {
  @Param('NAME1')
  firstName: string;

  @Param('NAME2')
  lastName: string;
}

Данные, полученные из бэкэнда, выглядятвот так:

{
  "NAME1": "John",
  "NAME2": "Doe"
}

Теперь я хочу написать обработчик компилятора, который анализирует все эти @Param декораторы и генерирует файл JSON с сопоставлениями:

{
  "Person": {
    "NAME1": "firstName",
    "NAME2": "lastName"
  }
}

Позже мои сервисыбудет использовать этот файл сопоставления для анализа ответов бэкэнда.

В бэкэнд-мире (Java, PHP и т. д.) это очень типичное использование аннотаций, то есть аннотации используются, как и выше, для определениясопоставления между таблицами базы данных / веб-сервисами и классами сущностей.

Как мне добиться этого с помощью Angular?Моя цель состоит в том, чтобы отображаемый файл JSON автоматически генерировался при вызове компилятора.Могу ли я определить какой-то хук компилятора?Есть ли примеры или даже готовые решения (я могу представить, что есть другие с похожими требованиями)?


...