localOnlyCollectionOptions

函数: localOnlyCollectionOptions()

ts
function localOnlyCollectionOptions<TExplicit, TSchema, TFallback, TKey>(config): object
function localOnlyCollectionOptions<TExplicit, TSchema, TFallback, TKey>(config): object

定义于: packages/db/src/local-only.ts:137

为标准的 Collection 创建本地独占集合选项

这是一个内存中的集合,不与外部源同步,但使用一个回送同步配置,该配置会立即将所有乐观更改“同步”到集合中,使其永久化。非常适合不需要持久性或外部同步的本地独占数据。

类型参数

TExplicit = 未知

集合中项目的显式类型(最高优先级)

TSchema 继承自 StandardSchemaV1<unknown, unknown> = never

用于验证和类型推断的模式类型(第二优先级)

TFallback 继承自 Record<string, unknown> = Record<string, unknown>

如果没有提供显式类型或模式类型,则回退类型

TKey 继承自 string | number = string | number

getKey 返回的键的类型

参数

config

LocalOnlyCollectionConfig<TExplicit, TSchema, TFallback, TKey>

本地独占集合的配置选项

Returns (返回)

object

带有实用程序的集合选项(目前为空,但遵循模式)

gcTime

ts
gcTime: number = 0;
gcTime: number = 0;

getKey()

ts
getKey: (item) => TKey;
getKey: (item) => TKey;

参数

item

ResolveType<TExplicit, TSchema, TFallback>

Returns (返回)

TKey

id?

ts
optional id: string;
optional id: string;

标准集合配置属性

onDelete()

ts
onDelete: (params) => Promise<any> = wrappedOnDelete;
onDelete: (params) => Promise<any> = wrappedOnDelete;

onDelete 处理程序的包装器,该处理程序还会立即确认事务

参数

params

DeleteMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>, TKey, LocalOnlyCollectionUtils>

Returns (返回)

Promise<any>

onInsert()

ts
onInsert: (params) => Promise<any> = wrappedOnInsert;
onInsert: (params) => Promise<any> = wrappedOnInsert;

创建包装器处理程序,该处理程序首先调用用户处理程序,然后确认事务 包装用户 的 onInsert 处理程序,使其立即确认事务

参数

params

InsertMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>, TKey, LocalOnlyCollectionUtils>

Returns (返回)

Promise<any>

onUpdate()

ts
onUpdate: (params) => Promise<any> = wrappedOnUpdate;
onUpdate: (params) => Promise<any> = wrappedOnUpdate;

onUpdate 处理程序的包装器,该处理程序还会立即确认事务

参数

params

UpdateMutationFnParams<ResolveType<TExplicit, TSchema, TFallback>, TKey, LocalOnlyCollectionUtils>

Returns (返回)

Promise<any>

schema?

ts
optional schema: TSchema;
optional schema: TSchema;

startSync

ts
startSync: boolean = true;
startSync: boolean = true;

sync

ts
sync: SyncConfig<ResolveType<TExplicit, TSchema, TFallback>, TKey> = syncResult.sync;
sync: SyncConfig<ResolveType<TExplicit, TSchema, TFallback>, TKey> = syncResult.sync;

utils

ts
utils: LocalOnlyCollectionUtils;
utils: LocalOnlyCollectionUtils;

示例

ts
// Basic local-only collection
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
  })
)
// Basic local-only collection
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
  })
)
ts
// Local-only collection with initial data
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
    initialData: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
    ],
  })
)
// Local-only collection with initial data
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
    initialData: [
      { id: 1, name: 'Item 1' },
      { id: 2, name: 'Item 2' },
    ],
  })
)
ts
// Local-only collection with mutation handlers
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
    onInsert: async ({ transaction }) => {
      console.log('Item inserted:', transaction.mutations[0].modified)
      // Custom logic after insert
    },
  })
)
// Local-only collection with mutation handlers
const collection = createCollection(
  localOnlyCollectionOptions({
    getKey: (item) => item.id,
    onInsert: async ({ transaction }) => {
      console.log('Item inserted:', transaction.mutations[0].modified)
      // Custom logic after insert
    },
  })
)
我们的合作伙伴
Code Rabbit
Electric
Prisma
订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。

订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。