PermissionDeniedError
Defined in: packages/rxdb/src/entity/entity-permissions.ts:109
公开写入口拒绝了只许系统写的操作
Remarks
判定是快速失败,不是防御边界:适配器 / 执行器层不判定,见 EntityPermissionOptions。
violations 是清单而不是单项:单条入口恰一项;EntityManager.mutations() 的整批预检
收齐整批违规后一次抛出,调用方一次就能看到要拆掉哪些写,而不是改一条撞一条。
被拒时本次调用一条都没写出去。
Example
try {
await rxdb.entityManager.saveMany(entities);
} catch (error) {
if (error instanceof PermissionDeniedError) {
console.warn(error.violations.map(v => `${v.entity}.${v.operation}`));
} else {
throw error;
}
}
Extends
Constructors
Constructor
new PermissionDeniedError(violations): PermissionDeniedError;
Defined in: packages/rxdb/src/entity/entity-permissions.ts:110
Parameters
| Parameter | Type | Description |
|---|---|---|
violations | readonly PermissionViolation[] | 本次调用的全部违规,按 create / update / delete 排序,同一实体同一操作只出现一次 |
Returns
PermissionDeniedError
Overrides
Properties
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
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
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
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
violations
readonly violations: readonly PermissionViolation[];
Defined in: packages/rxdb/src/entity/entity-permissions.ts:112
本次调用的全部违规,按 create / update / delete 排序,同一实体同一操作只出现一次
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
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
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