mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
refactor(core): Move ApplicationError to @n8n/errors (#17667)
This commit is contained in:
@@ -21,6 +21,10 @@
|
||||
"dist/**/*"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@n8n/typescript-config": "workspace:*"
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
"@sentry/node": "catalog:"
|
||||
},
|
||||
"dependencies": {
|
||||
"callsites": "catalog:"
|
||||
}
|
||||
}
|
||||
|
||||
36
packages/@n8n/errors/src/application.error.ts
Normal file
36
packages/@n8n/errors/src/application.error.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import type { Event } from '@sentry/node';
|
||||
import callsites from 'callsites';
|
||||
|
||||
import type { ErrorLevel, ReportingOptions } from './types';
|
||||
|
||||
/**
|
||||
* @deprecated Use `UserError`, `OperationalError` or `UnexpectedError` instead.
|
||||
*/
|
||||
export class ApplicationError extends Error {
|
||||
level: ErrorLevel;
|
||||
|
||||
readonly tags: NonNullable<Event['tags']>;
|
||||
|
||||
readonly extra?: Event['extra'];
|
||||
|
||||
readonly packageName?: string;
|
||||
|
||||
constructor(
|
||||
message: string,
|
||||
{ level, tags = {}, extra, ...rest }: ErrorOptions & ReportingOptions = {},
|
||||
) {
|
||||
super(message, rest);
|
||||
this.level = level ?? 'error';
|
||||
this.tags = tags;
|
||||
this.extra = extra;
|
||||
|
||||
try {
|
||||
const filePath = callsites()[2].getFileName() ?? '';
|
||||
// eslint-disable-next-line no-useless-escape
|
||||
const match = /packages\/([^\/]+)\//.exec(filePath)?.[1];
|
||||
|
||||
if (match) this.tags.packageName = match;
|
||||
// eslint-disable-next-line no-empty
|
||||
} catch {}
|
||||
}
|
||||
}
|
||||
@@ -1 +1,2 @@
|
||||
export {};
|
||||
export { ApplicationError } from './application.error';
|
||||
export * from './types';
|
||||
|
||||
16
packages/@n8n/errors/src/types.ts
Normal file
16
packages/@n8n/errors/src/types.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import type { Event } from '@sentry/node';
|
||||
|
||||
export type ErrorLevel = 'fatal' | 'error' | 'warning' | 'info';
|
||||
|
||||
export type ErrorTags = NonNullable<Event['tags']>;
|
||||
|
||||
export type ReportingOptions = {
|
||||
/** Whether the error should be reported to Sentry */
|
||||
shouldReport?: boolean;
|
||||
/** Whether the error log should be logged (default to true) */
|
||||
shouldBeLogged?: boolean;
|
||||
level?: ErrorLevel;
|
||||
tags?: ErrorTags;
|
||||
extra?: Event['extra'];
|
||||
executionId?: string;
|
||||
};
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
|
||||
export class ChatTriggerAuthorizationError extends ApplicationError {
|
||||
constructor(
|
||||
|
||||
@@ -157,9 +157,9 @@
|
||||
"@types/sanitize-html": "^2.11.0",
|
||||
"@types/temp": "^0.9.1",
|
||||
"fast-glob": "catalog:",
|
||||
"jest-mock-extended": "^3.0.4",
|
||||
"n8n-core": "workspace:*",
|
||||
"tsup": "catalog:",
|
||||
"jest-mock-extended": "^3.0.4"
|
||||
"tsup": "catalog:"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sso-oidc": "3.808.0",
|
||||
@@ -190,6 +190,7 @@
|
||||
"@modelcontextprotocol/sdk": "1.12.0",
|
||||
"@mozilla/readability": "0.6.0",
|
||||
"@n8n/client-oauth2": "workspace:*",
|
||||
"@n8n/errors": "workspace:^",
|
||||
"@n8n/json-schema-to-zod": "workspace:*",
|
||||
"@n8n/typeorm": "0.3.20-12",
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
"dependencies": {
|
||||
"@n8n/config": "workspace:*",
|
||||
"@n8n/di": "workspace:*",
|
||||
"@n8n/errors": "workspace:^",
|
||||
"@sentry/node": "catalog:",
|
||||
"acorn": "8.14.0",
|
||||
"acorn-walk": "8.3.4",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
import { createServer } from 'node:http';
|
||||
|
||||
export class HealthCheckServer {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
|
||||
import { ExecutionError } from '@/js-task-runner/errors/execution-error';
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
|
||||
export class TaskCancelledError extends ApplicationError {
|
||||
constructor(reason: string) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
|
||||
export class TimeoutError extends ApplicationError {
|
||||
description: string;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
|
||||
/**
|
||||
* Error that indicates that a specific function is not available in the
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ApplicationError } from 'n8n-workflow';
|
||||
import { ApplicationError } from '@n8n/errors';
|
||||
import { isBuiltin } from 'node:module';
|
||||
|
||||
import { ExecutionError } from './errors/execution-error';
|
||||
|
||||
Reference in New Issue
Block a user