注册表
注册表包含所有您希望@dataplan/pg
了解的编解码器、资源和关系。
虽然手动编写注册表可以让您完全控制数据库的表示方式,但更常见的是自动生成它 - 这可以让您在瞬间获得完全类型安全的注册表。当然,您可以自动生成它的第一个版本,然后在需要时接管维护工作。
(待办事项:详细说明自动生成。)
makeRegistryBuilder()
我们建议您使用注册表构建器来构建注册表,这使您能够使用舒适的“构建器”语法并在整个过程中维护类型。
import { makeRegistryBuilder } from "@dataplan/pg";
注册表构建器具有以下主要方法
RegistryBuilder.addCodec(codec)
将编解码器添加到构建器中。
有关编解码器的更多详细信息,请参阅编解码器。
RegistryBuilder.addResource(resourceOptions)
将资源选项添加到注册表构建器中。请注意,注册表本身的构建会生成您在运行时使用的资源,因此您在这里只是传递资源选项。
有关资源的更多详细信息,请参阅资源。
RegistryBuilder.addRelation(codec, name, resourceOptions, details)
在codec
和由resourceOptions
表示的资源之间添加一个名为name
的关系。details
包含关系的细分
localAttributes
-codec
中在此关系中进行引用的属性remoteAttributes
- 由此关系引用的resourceOptions.codec
的属性isUnique
- 如果此关系最多可以返回一个结果,则为真,否则为假。在引用方始终为真。isReferencee
- 如果此关系是在由resourceOptions.codec
表示的表上定义的,而不是在由codec
表示的表上定义的,则为真
有关关系的更多详细信息,请参阅关系。
RegistryBuilder.getRegistryConfig()
返回注册表配置,用于馈送到 makeRegistry
。
makeRegistry(registryConfig)
通过构建 registryConfig
中的所有资源和关系来返回一个新的注册表。
PgRegistry
由 makeRegistry
生成的 PgRegistry 将具有三个属性
Registry.pgCodecs
注册表中所有编解码器的对象映射(键是编解码器的名称)。
Registry.pgResources
注册表中所有资源的对象映射(键是资源的名称)。
Registry.pgRelations
从编解码器名称到该编解码器的关系的对象映射,其中关系表示为从关系名称到关系详细信息的对象映射。
您很少需要直接使用它。