WorkspaceFlushError
Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:127
flush() 因部分草稿无法结构化克隆而失败。
Remarks
RWS-FRESH-02:workspace 草稿存的是「用户正在编辑的实体」,字段类型由业务定义,
插件对它没有约束力 —— 函数 / DOM 节点 / Proxy / class 实例都会让 structuredClone 抛错。
这类失败不影响同批其他草稿:克隆预检发生在事务之外,坏记录进不了事务,
其余草稿照常落盘。但调用方必须知道是哪一条,否则唯一的补救手段
RxDBPluginWorkspace.discard 无从下手 —— 旧实现只 reject 出一个不带 key 的
DataCloneError,调用方除了清空整个工作区别无办法。
处置方式二选一:把 cacheIds 对应实体上的字段改成可克隆的值后重试,
或对这些 cacheId 调用 discard() 丢弃该草稿。
Extends
Error
Constructors
Constructor
new WorkspaceFlushError(cacheIds, cause): WorkspaceFlushError;
Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:135
Parameters
| Parameter | Type | Description |
|---|---|---|
cacheIds | readonly `${string}:${string}:${string}-${string}-${string}-${string}-${string}`[] | 未能落盘的草稿主键 |
cause | unknown | 首个结构化克隆失败原因 |
Returns
WorkspaceFlushError
Overrides
Error.constructor
Properties
cacheIds
readonly cacheIds: readonly `${string}:${string}:${string}-${string}-${string}-${string}-${string}`[];
Defined in: packages/rxdb-plugin-workspace/src/RxDBPluginWorkspace.ts:129
未能落盘的草稿 —— 同批其余草稿已成功写入。
cause?
optional cause?: unknown;
Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es2022.error.d.ts:24
Inherited from
Error.cause
message
message: string;
Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1075
Inherited from
Error.message
name
name: string;
Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1074
Inherited from
Error.name
stack?
optional stack?: string;
Defined in: node_modules/.pnpm/typescript@6.0.3_patch_hash=ef3c2292deb88eb14130359d5acc1febc0226af46b7b945db6c7250c6cb4efbb/node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
Error.stack
stackTraceLimit
static stackTraceLimit: number;
Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:67
The Error.stackTraceLimit property specifies the number of stack frames
collected by a stack trace (whether generated by new Error().stack or
Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes
will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Error.stackTraceLimit
Methods
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void;
Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:51
Creates a .stack property on targetObject, which when accessed returns
a string representing the location in the code at which
Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`
The first line of the trace will be prefixed with
${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames
above constructorOpt, including constructorOpt, will be omitted from the
generated stack trace.
The constructorOpt argument is useful for hiding implementation
details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();
Parameters
| Parameter | Type |
|---|---|
targetObject | object |
constructorOpt? | Function |
Returns
void
Inherited from
Error.captureStackTrace
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;
Defined in: node_modules/.pnpm/@types+node@26.6.3/node_modules/@types/node/globals.d.ts:55
Parameters
| Parameter | Type |
|---|---|
err | Error |
stackTraces | CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTrace