From d79143e3ed0905b80dbb9e776c3c9f6ec21166a2 Mon Sep 17 00:00:00 2001 From: SemmyWong <67748948+semmywong@users.noreply.github.com> Date: Thu, 9 Feb 2023 17:04:32 +0800 Subject: [PATCH] fix: node.js 17+, add openssl-legacy-provider (#1434) * fix: node upgrade 17+, add openssl-legacy-provider * fix: node upgrade 17+, add openssl-legacy-provider * fix: param NODE_OPTIONS_OPENSSL_LEGACY_PROVIDER change to NODE_OPTIONS --- .env.example | 3 +++ packages/core/database/src/database.ts | 2 +- packages/plugins/import/src/server/actions/importXlsx.ts | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 40d6f63b47..52fdb02c5f 100644 --- a/.env.example +++ b/.env.example @@ -77,3 +77,6 @@ INIT_ALI_SMS_VERIFY_CODE_SIGN= # use any string name (no space) DEFAULT_SMS_VERIFY_CODE_PROVIDER= + +# in nodejs 17+ that SSL v3 causes some ecosystem libraries to become incompatible. Configuring this option can prevent upgrading SSL V3 +# NODE_OPTIONS=--openssl-legacy-provider diff --git a/packages/core/database/src/database.ts b/packages/core/database/src/database.ts index 5637660568..8aa902c1de 100644 --- a/packages/core/database/src/database.ts +++ b/packages/core/database/src/database.ts @@ -534,7 +534,7 @@ export class Database extends EventEmitter implements AsyncEmitter { return this.sequelize.getDialect() === 'sqlite' && lodash.get(this.options, 'storage') == ':memory:'; } - async auth(options: QueryOptions & { retry?: number } = {}) { + async auth(options: Omit & { retry?: number | Pick } = {}) { const { retry = 10, ...others } = options; const delay = (ms) => new Promise((yea) => setTimeout(yea, ms)); let count = 1; diff --git a/packages/plugins/import/src/server/actions/importXlsx.ts b/packages/plugins/import/src/server/actions/importXlsx.ts index f74fe85bd9..a1290925a0 100644 --- a/packages/plugins/import/src/server/actions/importXlsx.ts +++ b/packages/plugins/import/src/server/actions/importXlsx.ts @@ -7,7 +7,7 @@ import { transform } from '../utils'; const IMPORT_LIMIT_COUNT = 10000; export async function importXlsx(ctx: Context, next: Next) { - let { columns } = ctx.request.body; + let { columns } = ctx.request.body as any; const { ['file']: file } = ctx; const { resourceName, resourceOf } = ctx.action; if (typeof columns === 'string') {