refactor(core): Move isObjectLiteral to @n8n/backend-common (#15414)

This commit is contained in:
Iván Ovejero
2025-05-15 12:31:58 +02:00
committed by GitHub
parent eecaea15f7
commit 226f1c73ce
15 changed files with 28 additions and 23 deletions

View File

@@ -6,3 +6,5 @@ const { NODE_ENV } = process.env;
export const inTest = NODE_ENV === 'test'; export const inTest = NODE_ENV === 'test';
export const inProduction = NODE_ENV === 'production'; export const inProduction = NODE_ENV === 'production';
export const inDevelopment = !NODE_ENV || NODE_ENV === 'development'; export const inDevelopment = !NODE_ENV || NODE_ENV === 'development';
export { isObjectLiteral } from './utils/is-object-literal';

View File

@@ -21,6 +21,7 @@
"dist/**/*" "dist/**/*"
], ],
"dependencies": { "dependencies": {
"@n8n/backend-common": "workspace:^",
"@n8n/config": "workspace:^", "@n8n/config": "workspace:^",
"@n8n/constants": "workspace:^", "@n8n/constants": "workspace:^",
"@n8n/di": "workspace:^", "@n8n/di": "workspace:^",

View File

@@ -1,4 +1,4 @@
import { isObjectLiteral } from 'n8n-core'; import { isObjectLiteral } from '@n8n/backend-common';
import type { IDataObject, INodeExecutionData } from 'n8n-workflow'; import type { IDataObject, INodeExecutionData } from 'n8n-workflow';
import type { MigrationContext, IrreversibleMigration } from '../migration-types'; import type { MigrationContext, IrreversibleMigration } from '../migration-types';

View File

@@ -1,6 +1,6 @@
import { isObjectLiteral } from '@n8n/backend-common';
import { plainToInstance, instanceToPlain } from 'class-transformer'; import { plainToInstance, instanceToPlain } from 'class-transformer';
import { validate } from 'class-validator'; import { validate } from 'class-validator';
import { isObjectLiteral } from 'n8n-core';
import { jsonParse, UnexpectedError } from 'n8n-workflow'; import { jsonParse, UnexpectedError } from 'n8n-workflow';
export class BaseFilter { export class BaseFilter {

View File

@@ -1,8 +1,9 @@
import { isObjectLiteral } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config'; import { GlobalConfig } from '@n8n/config';
import { ExecutionRepository } from '@n8n/db'; import { ExecutionRepository } from '@n8n/db';
import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators'; import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators';
import { Container, Service } from '@n8n/di'; import { Container, Service } from '@n8n/di';
import { ErrorReporter, InstanceSettings, isObjectLiteral, Logger } from 'n8n-core'; import { ErrorReporter, InstanceSettings, Logger } from 'n8n-core';
import { import {
BINARY_ENCODING, BINARY_ENCODING,
sleep, sleep,

View File

@@ -3,6 +3,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-return */ /* eslint-disable @typescript-eslint/no-unsafe-return */
/* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-unsafe-call */
import { isObjectLiteral } from '@n8n/backend-common';
import type { User } from '@n8n/db'; import type { User } from '@n8n/db';
import { Service } from '@n8n/di'; import { Service } from '@n8n/di';
import get from 'lodash/get'; import get from 'lodash/get';
@@ -12,7 +13,6 @@ import {
ExecuteContext, ExecuteContext,
Logger, Logger,
RoutingNode, RoutingNode,
isObjectLiteral,
} from 'n8n-core'; } from 'n8n-core';
import type { import type {
ICredentialsDecrypted, ICredentialsDecrypted,

View File

@@ -1,4 +1,4 @@
import { isObjectLiteral } from 'n8n-core'; import { isObjectLiteral } from '@n8n/backend-common';
import { NodeOperationError } from 'n8n-workflow'; import { NodeOperationError } from 'n8n-workflow';
import type { Workflow } from 'n8n-workflow'; import type { Workflow } from 'n8n-workflow';

View File

@@ -1,3 +1,4 @@
import { isObjectLiteral } from '@n8n/backend-common';
import { Container } from '@n8n/di'; import { Container } from '@n8n/di';
import type { ICredentialDataDecryptedObject, ICredentialsEncrypted } from 'n8n-workflow'; import type { ICredentialDataDecryptedObject, ICredentialsEncrypted } from 'n8n-workflow';
import { ApplicationError, ICredentials, jsonParse } from 'n8n-workflow'; import { ApplicationError, ICredentials, jsonParse } from 'n8n-workflow';
@@ -5,7 +6,6 @@ import * as a from 'node:assert';
import { CREDENTIAL_ERRORS } from '@/constants'; import { CREDENTIAL_ERRORS } from '@/constants';
import { Cipher } from '@/encryption/cipher'; import { Cipher } from '@/encryption/cipher';
import { isObjectLiteral } from '@/utils';
export class CredentialDataError extends ApplicationError { export class CredentialDataError extends ApplicationError {
constructor({ name, type, id }: Credentials<object>, message: string, cause?: unknown) { constructor({ name, type, id }: Credentials<object>, message: string, cause?: unknown) {

View File

@@ -1,4 +1,4 @@
import { inDevelopment, inProduction } from '@n8n/backend-common'; import { inDevelopment, inProduction, isObjectLiteral } from '@n8n/backend-common';
import type { LogScope } from '@n8n/config'; import type { LogScope } from '@n8n/config';
import { GlobalConfig, InstanceSettingsConfig } from '@n8n/config'; import { GlobalConfig, InstanceSettingsConfig } from '@n8n/config';
import { Service } from '@n8n/di'; import { Service } from '@n8n/di';
@@ -15,8 +15,6 @@ import path, { basename } from 'node:path';
import pc from 'picocolors'; import pc from 'picocolors';
import winston from 'winston'; import winston from 'winston';
import { isObjectLiteral } from '@/utils/is-object-literal';
const noOp = () => {}; const noOp = () => {};
@Service() @Service()

View File

@@ -1,2 +1 @@
export * from './serialized-buffer'; export * from './serialized-buffer';
export { isObjectLiteral } from './is-object-literal';

View File

@@ -1,4 +1,4 @@
import { isObjectLiteral } from './is-object-literal'; import { isObjectLiteral } from '@n8n/backend-common';
/** A nodejs Buffer gone through JSON.stringify */ /** A nodejs Buffer gone through JSON.stringify */
export type SerializedBuffer = { export type SerializedBuffer = {

View File

@@ -20,6 +20,7 @@
"references": [ "references": [
{ "path": "../workflow/tsconfig.build.json" }, { "path": "../workflow/tsconfig.build.json" },
{ "path": "../@n8n/decorators/tsconfig.build.json" }, { "path": "../@n8n/decorators/tsconfig.build.json" },
{ "path": "../@n8n/backend-common/tsconfig.build.json" },
{ "path": "../@n8n/config/tsconfig.build.json" }, { "path": "../@n8n/config/tsconfig.build.json" },
{ "path": "../@n8n/di/tsconfig.build.json" }, { "path": "../@n8n/di/tsconfig.build.json" },
{ "path": "../@n8n/client-oauth2/tsconfig.build.json" } { "path": "../@n8n/client-oauth2/tsconfig.build.json" }

27
pnpm-lock.yaml generated
View File

@@ -484,6 +484,9 @@ importers:
packages/@n8n/db: packages/@n8n/db:
dependencies: dependencies:
'@n8n/backend-common':
specifier: workspace:^
version: link:../backend-common
'@n8n/config': '@n8n/config':
specifier: workspace:^ specifier: workspace:^
version: link:../config version: link:../config
@@ -726,7 +729,7 @@ importers:
version: 4.3.0 version: 4.3.0
'@getzep/zep-cloud': '@getzep/zep-cloud':
specifier: 1.0.12 specifier: 1.0.12
version: 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(b4eb53fe8b825d6e8edd96cc3d942586)) version: 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(7f2a4b9c5436679ca8b0df05212b4905))
'@getzep/zep-js': '@getzep/zep-js':
specifier: 0.9.0 specifier: 0.9.0
version: 0.9.0 version: 0.9.0
@@ -753,7 +756,7 @@ importers:
version: 0.3.2(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) version: 0.3.2(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)
'@langchain/community': '@langchain/community':
specifier: 'catalog:' specifier: 'catalog:'
version: 0.3.24(67fb36bad0bcdd2b0df3579415b33a93) version: 0.3.24(0b620065402de60ffbc4ade3af2d8197)
'@langchain/core': '@langchain/core':
specifier: 'catalog:' specifier: 'catalog:'
version: 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) version: 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
@@ -855,7 +858,7 @@ importers:
version: 23.0.1 version: 23.0.1
langchain: langchain:
specifier: 0.3.11 specifier: 0.3.11
version: 0.3.11(b4eb53fe8b825d6e8edd96cc3d942586) version: 0.3.11(7f2a4b9c5436679ca8b0df05212b4905)
lodash: lodash:
specifier: 'catalog:' specifier: 'catalog:'
version: 4.17.21 version: 4.17.21
@@ -16468,7 +16471,7 @@ snapshots:
'@gar/promisify@1.1.3': '@gar/promisify@1.1.3':
optional: true optional: true
'@getzep/zep-cloud@1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(b4eb53fe8b825d6e8edd96cc3d942586))': '@getzep/zep-cloud@1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(7f2a4b9c5436679ca8b0df05212b4905))':
dependencies: dependencies:
form-data: 4.0.0 form-data: 4.0.0
node-fetch: 2.7.0(encoding@0.1.13) node-fetch: 2.7.0(encoding@0.1.13)
@@ -16477,7 +16480,7 @@ snapshots:
zod: 3.24.1 zod: 3.24.1
optionalDependencies: optionalDependencies:
'@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
langchain: 0.3.11(b4eb53fe8b825d6e8edd96cc3d942586) langchain: 0.3.11(7f2a4b9c5436679ca8b0df05212b4905)
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
@@ -16989,7 +16992,7 @@ snapshots:
- aws-crt - aws-crt
- encoding - encoding
'@langchain/community@0.3.24(67fb36bad0bcdd2b0df3579415b33a93)': '@langchain/community@0.3.24(0b620065402de60ffbc4ade3af2d8197)':
dependencies: dependencies:
'@browserbasehq/stagehand': 1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.4.5)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))(zod@3.24.1) '@browserbasehq/stagehand': 1.9.0(@playwright/test@1.49.1)(deepmerge@4.3.1)(dotenv@16.4.5)(encoding@0.1.13)(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))(zod@3.24.1)
'@ibm-cloud/watsonx-ai': 1.1.2 '@ibm-cloud/watsonx-ai': 1.1.2
@@ -17000,7 +17003,7 @@ snapshots:
flat: 5.0.2 flat: 5.0.2
ibm-cloud-sdk-core: 5.3.2 ibm-cloud-sdk-core: 5.3.2
js-yaml: 4.1.0 js-yaml: 4.1.0
langchain: 0.3.11(b4eb53fe8b825d6e8edd96cc3d942586) langchain: 0.3.11(7f2a4b9c5436679ca8b0df05212b4905)
langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) langsmith: 0.2.15(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
openai: 4.78.1(encoding@0.1.13)(zod@3.24.1) openai: 4.78.1(encoding@0.1.13)(zod@3.24.1)
uuid: 10.0.0 uuid: 10.0.0
@@ -17015,7 +17018,7 @@ snapshots:
'@aws-sdk/credential-provider-node': 3.808.0 '@aws-sdk/credential-provider-node': 3.808.0
'@azure/storage-blob': 12.26.0 '@azure/storage-blob': 12.26.0
'@browserbasehq/sdk': 2.0.0(encoding@0.1.13) '@browserbasehq/sdk': 2.0.0(encoding@0.1.13)
'@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(b4eb53fe8b825d6e8edd96cc3d942586)) '@getzep/zep-cloud': 1.0.12(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)(langchain@0.3.11(7f2a4b9c5436679ca8b0df05212b4905))
'@getzep/zep-js': 0.9.0 '@getzep/zep-js': 0.9.0
'@google-ai/generativelanguage': 2.6.0(encoding@0.1.13) '@google-ai/generativelanguage': 2.6.0(encoding@0.1.13)
'@google-cloud/storage': 7.12.1(encoding@0.1.13) '@google-cloud/storage': 7.12.1(encoding@0.1.13)
@@ -23202,7 +23205,7 @@ snapshots:
'@types/debug': 4.1.12 '@types/debug': 4.1.12
'@types/node': 18.16.16 '@types/node': 18.16.16
'@types/tough-cookie': 4.0.2 '@types/tough-cookie': 4.0.2
axios: 1.8.3(debug@4.4.0) axios: 1.8.3
camelcase: 6.3.0 camelcase: 6.3.0
debug: 4.4.0(supports-color@8.1.1) debug: 4.4.0(supports-color@8.1.1)
dotenv: 16.4.5 dotenv: 16.4.5
@@ -23212,7 +23215,7 @@ snapshots:
isstream: 0.1.2 isstream: 0.1.2
jsonwebtoken: 9.0.2 jsonwebtoken: 9.0.2
mime-types: 2.1.35 mime-types: 2.1.35
retry-axios: 2.6.0(axios@1.8.3) retry-axios: 2.6.0(axios@1.8.3(debug@4.4.0))
tough-cookie: 4.1.3 tough-cookie: 4.1.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -24206,7 +24209,7 @@ snapshots:
kuler@2.0.0: {} kuler@2.0.0: {}
langchain@0.3.11(b4eb53fe8b825d6e8edd96cc3d942586): langchain@0.3.11(7f2a4b9c5436679ca8b0df05212b4905):
dependencies: dependencies:
'@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)) '@langchain/core': 0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1))
'@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13) '@langchain/openai': 0.3.17(@langchain/core@0.3.30(openai@4.78.1(encoding@0.1.13)(zod@3.24.1)))(encoding@0.1.13)
@@ -26583,7 +26586,7 @@ snapshots:
onetime: 5.1.2 onetime: 5.1.2
signal-exit: 3.0.7 signal-exit: 3.0.7
retry-axios@2.6.0(axios@1.8.3): retry-axios@2.6.0(axios@1.8.3(debug@4.4.0)):
dependencies: dependencies:
axios: 1.8.3 axios: 1.8.3