@anvilco/ 类型
类型脚本类型 安维尔 OpenAPI spec and GraphQL schema. [永久失效連結] OpenAPI spec and GraphQL schema. 内部使用 @anvilco/browser 财务报告和审定财务报表 @anvilco/react。 。 。 .
Anvil SDK 类型脚本的唯一位置:
- 资源数字 :
paths, (中文(简体) ),components财务报告和审定财务报表operations,从 OpenAPI 光谱中生成,加上填入-PDF 请求类型(FillPdfPayload, (中文(简体) ),FillPdfData, (中文(简体) ),FillPdfOptions) (中文(简体) ). - 爱奇数字 :
CreateEtchPacketArgs, 创建EtchPacket突变与 GraphQL 计划调用的参数JSON键入 :signers(单位:千美元)EtchSigner, (中文(简体) ),signaturePageOptions(单位:千美元)EtchSignaturePageOptions和finishPageOptions(单位:千美元)EtchFinishPageOptions) (中文(简体) ). OpenAPI spec发布其形状. - 图QL页:1
GraphQL命名空间, 由 schema 生成. - SDK自己的类型数字 :
AnvilOptions, (中文(简体) ),GraphQLResponse, (中文(简体) ),RESTResponse, (中文(简体) ),ResponseError, (中文(简体) ),ResponseErrorField, (中文(简体) ),RuntimeError财务报告和审定财务报表Abortable。 。 。 .
import type { GraphQL } from '@anvilco/types'
type Packet = GraphQL.Type<'EtchPacket'> // any type in the schema, by name
type WeldFile = GraphQL.Type<'WeldFile'> // input types too: nullable fields are optional
type Args = GraphQL.MutationArgs<'createEtchPacket'> // the arguments of any mutation
type PacketArgs = GraphQL.QueryArgs<'etchPacket'> // …or query
对象类型将整个对象描述为计划定义的对象. 一个查询只返回它选择的字段,所以对于您获取的数据,使用查询结果的类型.
自定义平面由 GraphQL.Scalars数字 : Date 是一个 ISO 8601 string, (中文(简体) ), JSON 实值 unknown,以及 Upload 实值 Blob | { data: string; mimetype: string; filename: string } | { url: string; filename?: string }。 。 。 .
图QL 操作
运行查询和变异,使用 @anvilco/core。 。 graphql 文档按此方案键入.
这些类型的规格也来源于与软件包一起的船舶,用于构建工具:GraphQL schema at @anvilco/types/schema.graphql 和 OpenAPI 显示 @anvilco/types/openapi.json其他Anvil API客户(蟒蛇 - 安维尔, (中文(简体) ), 点网-安维尔)从它们中生成出它们的类型,因此每个客户端都描述了相同的API. 导入 @anvilco/types 从不在运行时装入它们.
重新生成
类型在每次Anvil生产部署后从生产中再生(.github/workflows/sync-api-types.yml),当它们改变时打开了公关. 用手再生:
- 瑞丝:
yarn workspace @anvilco/types generate:rest刷新点schema/openapi.json从生产和重建src/rest.ts从它. - 图QL :
ANVIL_API_KEY_PROD_BASE64=... yarn workspace @anvilco/types fetch:schema刷新点schema/anvil-schema.graphql从生产,然后yarn workspace @anvilco/types generate:graphql重建src/graphql/generated/从它。 第二步不需要网络接入或密钥,这是CI检查的内容.