Class: E_RELATION_CACHE_KEY_DIVERGENCE
Thrown when a cached belongsTo relation's localKey differs from the related model's primaryKey. The relation cache keys a belongsTo lookup by the parent FK value (the related row's localKey) but tags the stored entry by the related row's primaryKey; when these diverge the lookup key and eviction tag describe different rows, so a cached entry could serve the wrong row. The cache fails loud here rather than risk returning incorrect data.
Extends
Exception
Constructors
Constructor
new E_RELATION_CACHE_KEY_DIVERGENCE(
relationName: string,
relatedModelName: string,
localKey: string,
primaryKey: string): E_RELATION_CACHE_KEY_DIVERGENCE;Parameters
| Parameter | Type |
|---|---|
relationName | string |
relatedModelName | string |
localKey | string |
primaryKey | string |
Returns
E_RELATION_CACHE_KEY_DIVERGENCE
Overrides
Exception.constructor;Properties
Accessors
[toStringTag]
Get Signature
get toStringTag: string;Returns
string
Inherited from
Exception.[toStringTag]Methods
toString()
toString(): string;Returns a string representation of an object.
Returns
string
Inherited from
Exception.toString;captureStackTrace()
static captureStackTrace(targetObject: object, constructorOpt?: Function): void;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
Exception.captureStackTrace;isError()
static isError(error: unknown): error is Error;Indicates whether the argument provided is a built-in Error instance or not.
Parameters
| Parameter | Type |
|---|---|
error | unknown |
Returns
error is Error
Inherited from
Exception.isError;prepareStackTrace()
static prepareStackTrace(err: Error, stackTraces: CallSite[]): any;Parameters
| Parameter | Type |
|---|---|
err | Error |
stackTraces | CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Exception.prepareStackTrace;