跳至主要内容

注册表

注册表包含所有您希望@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

从编解码器名称到该编解码器的关系的对象映射,其中关系表示为从关系名称到关系详细信息的对象映射。

您很少需要直接使用它。