Я реализую проект машинописи с aws-ampify в монорепо. У monorepo есть веб-проект под: packages/web
и проект моделей, который включает операции и типы graphql в: packages/models
. После создания моей схемы graphql в ampify я генерирую операции и типы с помощью amplify codegen
до packages/models/src/graphql/
Пока все хорошо, в проекте Vue я могу импортировать операции и типы как import {listOrganizations, ListOrganizationsQuery} from "models";
, выполнившие запросы, получите результат. Когда пришло время использовать действие в компоненте, я снова импортирую типы из моделей и использую их.
Идея, которую я придумаю, заключается в том, что если есть способ импортировать типы из проекта моделей и включить все типы в веб-проекте в файл .d.ts
, чтобы пропустить импорт типов из репозитория моделей. Поэтому каждый раз, когда я генерирую операции и типы graphql, я хочу, чтобы веб-репо импортировало типы и объявляло глобально в веб-проекте возможность пропустить импорт типов.
Что я пробовал:
Создать файл api.d.ts
в packages/web/src
Импорт типов из packages/models/src/graphql/API.ts
Что я пытаюсь сделатьЗдесь можно импортировать и объявлять все типы из моделей по всему миру, но я застрял на этом этапе.
пакетов / моделей / моделей / src / graphql / API.ts
export type ListOrganizationsQuery = {
listOrganizations: {
__typename: "ModelOrganizationConnection",
items: Array< {
__typename: "Organization",
id: string,
name: string,
externalId: string | null,
status: OrganizationStatus,
logo: string,
} | null > | null,
nextToken: string | null,
} | null,
};
packages / web / src / api.d.ts
import "models/src/graphql/API.ts";
VSCode не распознает импортированные типы, и компилятор не компилируется, пока у меняделать это, вероятно, не правильно. Есть ли способ импортировать все типы и объявить глобально? Или есть какой-то другой лучший метод, который я должен применить вместо того, чтобы делать то, что я пробовал?