diff --git a/docs/en-US/api/database/index.md b/docs/en-US/api/database/index.md index 2e0cbbdb0..931f68ed8 100644 --- a/docs/en-US/api/database/index.md +++ b/docs/en-US/api/database/index.md @@ -705,22 +705,22 @@ export default defineCollection({ ### `extendCollection()` -扩展已在内存中的表结构配置内容,主要用于 `import()` 方法导入的文件内容。该方法是 `@nocobase/database` 包导出的顶级方法,不通过 db 实例调用。也可以使用 `extend` 别名。 +Extent the configuration content of a data table that is already in memory, mainly for the content of files imported by the `import()` method. This is the top-level package export method of `@nocobase/database`, and is not called through db instance. The `extend` alias can also be used. -**签名** +**Signature** * `extendCollection(collectionOptions: CollectionOptions, mergeOptions?: MergeOptions): ExtendedCollectionOptions` -**参数** +**Parameter** -| 参数名 | 类型 | 默认值 | 描述 | +| Name | Type | Default | Description | | --- | --- | --- | --- | -| `collectionOptions` | `CollectionOptions` | - | 与所有 `db.collection()` 的参数相同 | -| `mergeOptions?` | `MergeOptions` | - | npm 包 [deepmerge](https://npmjs.com/package/deepmerge) 的参数 | +| `collectionOptions` | `CollectionOptions` | - | All the same with `db.collection()` | +| `mergeOptions?` | `MergeOptions` | - | [deepmerge](https://npmjs.com/package/deepmerge) options of npm package | -**示例** +**Example** -原始 books 表定义(books.ts): +Original definition of the table books (books.ts): ```ts export default { @@ -731,12 +731,12 @@ export default { } ``` -扩展 books 表定义(books.extend.ts): +Extend the definition of the table books (books.extend.ts): ```ts import { extend } from '@nocobase/database'; -// 再次扩展 +// Extend again export default extend({ name: 'books', fields: [ @@ -745,25 +745,25 @@ export default extend({ }); ``` -以上两个文件如在调用 `import()` 时导入,通过 `extend()` 再次扩展以后,books 表将拥有 `title` 和 `price` 两个字段。 +If the above two files are imported when calling `import()`, after being extended again by `extend()`, the table books will have `title` and `price` two fields. -此方法在扩展已有插件已定义的表结构时非常有用。 +This method is espeically useful when extending the table structure that is already defined by existing plugin. -## 内置事件 +## Built-in Events -数据库会在相应的生命周期触发以下对应的事件,通过 `on()` 方法订阅后进行特定的处理可满足一些业务需要。 +The following events will be triggered in the corresponding life cycle of database, subscribe by the `on()` method and perform specific processing to meet some business needs. ### `'beforeSync'` / `'afterSync'` -当新的表结构配置(字段、索引等)被同步到数据库前后触发,通常在执行 `collection.sync()`(内部调用)时会触发,一般用于一些特殊的字段扩展的逻辑处理。 +Events triggered before or after a new table structure configuration (fields, indexes, etc.) is synchronized to the database. This is usually triggered when executing `collection.sync()` (internal call) for the logical processing of the extension of some special fields. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeSync` | 'beforeSync' | `${string}.afterSync` | 'afterSync', listener: SyncListener): this ``` -**类型** +**Type** ```ts import type { SyncOptions, HookReturn } from 'sequelize/types'; @@ -771,7 +771,7 @@ import type { SyncOptions, HookReturn } from 'sequelize/types'; type SyncListener = (options?: SyncOptions) => HookReturn; ``` -**示例** +**Example** ```ts const users = db.collection({ @@ -794,15 +794,15 @@ await users.sync(); ### `'beforeValidate'` / `'afterValidate'` -创建或更新数据前会有基于 collection 定义的规则对数据的验证过程,在验证前后会触发对应事件。当调用 `repository.create()` 或 `repository.update()` 时会触发。 +Before creating or updating data, there is a validation againist the data based on the rules defined by the collection, and the corresponding events are triggered before and after the validation. This is triggered when `repository.create()` or `repository.update()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeValidate` | 'beforeValidate' | `${string}.afterValidate` | 'afterValidate', listener: ValidateListener): this ``` -**类型** +**Type** ```ts import type { ValidationOptions } from 'sequelize/types/lib/instance-validator'; @@ -812,7 +812,7 @@ import type { Model } from '@nocobase/database'; type ValidateListener = (model: Model, options?: ValidationOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.collection({ @@ -863,15 +863,15 @@ await repository.update({ ### `'beforeCreate'` / `'afterCreate'` -创建一条数据前后会触发对应事件,当调用 `repository.create()` 时会触发。 +Events triggered before or after creating one piece of data. This is triggered when `repository.create()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeCreate` | 'beforeCreate' | `${string}.afterCreate` | 'afterCreate', listener: CreateListener): this ``` -**类型** +**Type** ```ts import type { CreateOptions, HookReturn } from 'sequelize/types'; @@ -880,7 +880,7 @@ import type { Model } from '@nocobase/database'; export type CreateListener = (model: Model, options?: CreateOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('beforeCreate', async (model, options) => { @@ -898,15 +898,15 @@ db.on('books.afterCreate', async (model, options) => { ### `'beforeUpdate'` / `'afterUpdate'` -更新一条数据前后会触发对应事件,当调用 `repository.update()` 时会触发。 +Events triggered before or after updating one piece of data. This is triggered when `repository.update()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeUpdate` | 'beforeUpdate' | `${string}.afterUpdate` | 'afterUpdate', listener: UpdateListener): this ``` -**类型** +**Type** ```ts import type { UpdateOptions, HookReturn } from 'sequelize/types'; @@ -915,7 +915,7 @@ import type { Model } from '@nocobase/database'; export type UpdateListener = (model: Model, options?: UpdateOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('beforeUpdate', async (model, options) => { @@ -929,15 +929,15 @@ db.on('books.afterUpdate', async (model, options) => { ### `'beforeSave'` / `'afterSave'` -创建或更新一条数据前后会触发对应事件,当调用 `repository.create()` 或 `repository.update()` 时会触发。 +Events triggered before or after creating or updating one piece of data. This is triggered when `repository.create()` or `repository.update()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeSave` | 'beforeSave' | `${string}.afterSave` | 'afterSave', listener: SaveListener): this ``` -**类型** +**Type** ```ts import type { SaveOptions, HookReturn } from 'sequelize/types'; @@ -946,7 +946,7 @@ import type { Model } from '@nocobase/database'; export type SaveListener = (model: Model, options?: SaveOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('beforeSave', async (model, options) => { @@ -960,15 +960,15 @@ db.on('books.afterSave', async (model, options) => { ### `'beforeDestroy'` / `'afterDestroy'` -删除一条数据前后会触发对应事件,当调用 `repository.destroy()` 时会触发。 +Events triggered before or after deleting one piece of data. This is triggered when `repository.destroy()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.beforeDestroy` | 'beforeDestroy' | `${string}.afterDestroy` | 'afterDestroy', listener: DestroyListener): this ``` -**类型** +**Type** ```ts import type { DestroyOptions, HookReturn } from 'sequelize/types'; @@ -977,7 +977,7 @@ import type { Model } from '@nocobase/database'; export type DestroyListener = (model: Model, options?: DestroyOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('beforeDestroy', async (model, options) => { @@ -991,15 +991,15 @@ db.on('books.afterDestroy', async (model, options) => { ### `'afterCreateWithAssociations'` -创建一条携带层级关系数据的数据之后会触发对应事件,当调用 `repository.create()` 时会触发。 +Events triggered after creating one piece of data that carries hierarchical data. This is triggered when `repository.create()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.afterCreateWithAssociations` | 'afterCreateWithAssociations', listener: CreateWithAssociationsListener): this ``` -**类型** +**Type** ```ts import type { CreateOptions, HookReturn } from 'sequelize/types'; @@ -1008,7 +1008,7 @@ import type { Model } from '@nocobase/database'; export type CreateWithAssociationsListener = (model: Model, options?: CreateOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('afterCreateWithAssociations', async (model, options) => { @@ -1022,15 +1022,15 @@ db.on('books.afterCreateWithAssociations', async (model, options) => { ### `'afterUpdateWithAssociations'` -更新一条携带层级关系数据的数据之后会触发对应事件,当调用 `repository.update()` 时会触发。 +Events triggered after updating one piece of data that carries hierarchical data. This is triggered when `repository.update()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.afterUpdateWithAssociations` | 'afterUpdateWithAssociations', listener: CreateWithAssociationsListener): this ``` -**类型** +**Type** ```ts import type { UpdateOptions, HookReturn } from 'sequelize/types'; @@ -1039,7 +1039,7 @@ import type { Model } from '@nocobase/database'; export type UpdateWithAssociationsListener = (model: Model, options?: UpdateOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('afterUpdateWithAssociations', async (model, options) => { @@ -1053,15 +1053,15 @@ db.on('books.afterUpdateWithAssociations', async (model, options) => { ### `'afterSaveWithAssociations'` -创建或更新一条携带层级关系数据的数据之后会触发对应事件,当调用 `repository.create()` 或 `repository.update()` 时会触发。 +Events triggered after creating or updating one piece of data that carries hierarchical data. This is triggered when `repository.create()` or `repository.update()` is called. -**签名** +**Signature** ```ts on(eventName: `${string}.afterSaveWithAssociations` | 'afterSaveWithAssociations', listener: SaveWithAssociationsListener): this ``` -**类型** +**Type** ```ts import type { SaveOptions, HookReturn } from 'sequelize/types'; @@ -1070,7 +1070,7 @@ import type { Model } from '@nocobase/database'; export type SaveWithAssociationsListener = (model: Model, options?: SaveOptions) => HookReturn; ``` -**示例** +**Example** ```ts db.on('afterSaveWithAssociations', async (model, options) => { @@ -1084,17 +1084,17 @@ db.on('books.afterSaveWithAssociations', async (model, options) => { ### `'beforeDefineCollection'` -当定义一个数据表之前触发,如调用 `db.collection()` 时。 +Events triggered before defining a data table, such as when `db.collection()` is called. -注:该事件是同步事件。 +Note: This is a synchronous event. -**签名** +**Signature** ```ts on(eventName: 'beforeDefineCollection', listener: BeforeDefineCollectionListener): this ``` -**类型** +**Type** ```ts import type { CollectionOptions } from '@nocobase/database'; @@ -1102,7 +1102,7 @@ import type { CollectionOptions } from '@nocobase/database'; export type BeforeDefineCollectionListener = (options: CollectionOptions) => void; ``` -**示例** +**Example** ```ts db.on('beforeDefineCollection', (options) => { @@ -1112,17 +1112,17 @@ db.on('beforeDefineCollection', (options) => { ### `'afterDefineCollection'` -当定义一个数据表之后触发,如调用 `db.collection()` 时。 +Events triggered after defining a data table, such as when `db.collection()` is called. -注:该事件是同步事件。 +Note: This is a synchronous event. -**签名** +**Signature** ```ts on(eventName: 'afterDefineCollection', listener: AfterDefineCollectionListener): this ``` -**类型** +**Type** ```ts import type { Collection } from '@nocobase/database'; @@ -1130,7 +1130,7 @@ import type { Collection } from '@nocobase/database'; export type AfterDefineCollectionListener = (options: Collection) => void; ``` -**示例** +**Example** ```ts db.on('afterDefineCollection', (collection) => { @@ -1140,17 +1140,17 @@ db.on('afterDefineCollection', (collection) => { ### `'beforeRemoveCollection'` / `'afterRemoveCollection'` -当从内存中移除一个数据表前后触发,如调用 `db.removeCollection()` 时。 +Events triggered before or after removing a data table from memory, such as when `db.removeCollection()` is called. -注:该事件是同步事件。 +Note: This is a synchronous event. -**签名** +**Signature** ```ts on(eventName: 'beforeRemoveCollection' | 'afterRemoveCollection', listener: RemoveCollectionListener): this ``` -**类型** +**Type** ```ts import type { Collection } from '@nocobase/database'; @@ -1158,7 +1158,7 @@ import type { Collection } from '@nocobase/database'; export type RemoveCollectionListener = (options: Collection) => void; ``` -**示例** +**Example** ```ts db.on('beforeRemoveCollection', (collection) => {