diff --git a/packages/core/actions/src/actions/move.ts b/packages/core/actions/src/actions/move.ts index 9081b298c1..d94625bcd5 100644 --- a/packages/core/actions/src/actions/move.ts +++ b/packages/core/actions/src/actions/move.ts @@ -7,14 +7,23 @@ * For more information, please refer to: https://www.nocobase.com/agreement. */ -import { Model, Op } from 'sequelize'; +import { BelongsToManyRepository, Collection, HasManyRepository, TargetKey, Model, Op } from '@nocobase/database'; +import { Context } from '@nocobase/actions'; -import { BelongsToManyRepository, Collection, HasManyRepository, SortField, TargetKey } from '@nocobase/database'; -import { Context } from '..'; -import { getRepositoryFromParams } from '../utils'; +import { SortField } from './sort-field'; export async function move(ctx: Context, next) { - const repository = ctx.databaseRepository || getRepositoryFromParams(ctx); + const repository = ctx.getCurrentRepository(); + + if (repository.move) { + ctx.body = await repository.move(ctx.action.params); + return next(); + } + + if (repository.database) { + return ctx.throw(new Error(`Repository can not handle action move for ${ctx.action.resourceName}`)); + } + const { sourceId, targetId, targetScope, sticky, method } = ctx.action.params; let sortField = ctx.action.params.sortField; diff --git a/packages/core/client/src/collection-manager/interfaces/index.ts b/packages/core/client/src/collection-manager/interfaces/index.ts index 6778d83413..7d45ec1b20 100644 --- a/packages/core/client/src/collection-manager/interfaces/index.ts +++ b/packages/core/client/src/collection-manager/interfaces/index.ts @@ -42,7 +42,6 @@ export * from './time'; export * from './updatedAt'; export * from './updatedBy'; export * from './url'; -export * from './sort'; export * from './uuid'; export * from './nanoid'; export * from './unixTimestamp'; diff --git a/packages/core/data-source-manager/src/default-actions/move.ts b/packages/core/data-source-manager/src/default-actions/move.ts deleted file mode 100644 index f8695abd70..0000000000 --- a/packages/core/data-source-manager/src/default-actions/move.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This file is part of the NocoBase (R) project. - * Copyright (c) 2020-2024 NocoBase Co., Ltd. - * Authors: NocoBase Team. - * - * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. - * For more information, please refer to: https://www.nocobase.com/agreement. - */ - -import { Context } from '@nocobase/actions'; - -export function createMoveAction(databaseMoveAction) { - return async function move(ctx: Context, next) { - const repository = ctx.getCurrentRepository(); - - if (repository.move) { - ctx.body = await repository.move(ctx.action.params); - await next(); - return; - } - - if (repository.database) { - ctx.databaseRepository = repository; - return databaseMoveAction(ctx, next); - } - - throw new Error(`Repository can not handle action move for ${ctx.action.resourceName}`); - }; -} diff --git a/packages/core/data-source-manager/src/load-default-actions.ts b/packages/core/data-source-manager/src/load-default-actions.ts index a2d07dc1af..10b8b0aeec 100644 --- a/packages/core/data-source-manager/src/load-default-actions.ts +++ b/packages/core/data-source-manager/src/load-default-actions.ts @@ -8,9 +8,7 @@ */ import { list } from './default-actions/list'; -import { createMoveAction } from './default-actions/move'; import { proxyToRepository } from './default-actions/proxy-to-repository'; -import globalActions from '@nocobase/actions'; type Actions = { [key: string]: { params: Array | ((ctx: any) => Array); method: string } }; @@ -81,6 +79,5 @@ export function loadDefaultActions() { return carry; }, {}), list, - move: createMoveAction(globalActions.move), }; } diff --git a/packages/core/database/package.json b/packages/core/database/package.json index 0216c205b4..a3bd760c5e 100644 --- a/packages/core/database/package.json +++ b/packages/core/database/package.json @@ -6,7 +6,6 @@ "types": "./lib/index.d.ts", "license": "AGPL-3.0", "dependencies": { - "@nocobase/lock-manager": "1.4.0-alpha", "@nocobase/logger": "1.4.0-alpha", "@nocobase/utils": "1.4.0-alpha", "chalk": "^4.1.1", diff --git a/packages/core/database/src/mock-database.ts b/packages/core/database/src/mock-database.ts index cd2fe0230a..7b7a0c1dc3 100644 --- a/packages/core/database/src/mock-database.ts +++ b/packages/core/database/src/mock-database.ts @@ -9,7 +9,6 @@ /* istanbul ignore file -- @preserve */ import { merge } from '@nocobase/utils'; -import { LockManager } from '@nocobase/lock-manager'; import { customAlphabet } from 'nanoid'; import fetch from 'node-fetch'; import path from 'path'; diff --git a/packages/core/server/package.json b/packages/core/server/package.json index 36a84bbd43..710a8aae83 100644 --- a/packages/core/server/package.json +++ b/packages/core/server/package.json @@ -27,7 +27,6 @@ "@types/ini": "^1.3.31", "@types/koa-send": "^4.1.3", "@types/multer": "^1.4.5", - "async-mutex": "^0.5.0", "axios": "^0.26.1", "chalk": "^4.1.1", "commander": "^9.2.0", diff --git a/packages/core/server/src/application.ts b/packages/core/server/src/application.ts index 97e470117c..6e99688f4c 100644 --- a/packages/core/server/src/application.ts +++ b/packages/core/server/src/application.ts @@ -63,7 +63,6 @@ import { Plugin } from './plugin'; import { InstallOptions, PluginManager } from './plugin-manager'; import { createPubSubManager, PubSubManager, PubSubManagerOptions } from './pub-sub-manager'; import { SyncMessageManager } from './sync-message-manager'; -import { LockManager, LockManagerOptions } from './lock-manager'; export type PluginType = string | typeof Plugin; export type PluginConfiguration = PluginType | [PluginType, any]; @@ -534,10 +533,6 @@ export class Application exten await this.telemetry.shutdown(); } - if (this.lockManager) { - await this.lockManager.close(); - } - this.closeLogger(); const oldDb = this.db; diff --git a/packages/core/server/src/index.ts b/packages/core/server/src/index.ts index a78e1dfc59..e993b28c56 100644 --- a/packages/core/server/src/index.ts +++ b/packages/core/server/src/index.ts @@ -18,5 +18,4 @@ export * from './plugin-manager'; export * from './pub-sub-manager'; export * from './gateway'; export * from './app-supervisor'; -export * from './lock-manager'; export const OFFICIAL_PLUGIN_PREFIX = '@nocobase/plugin-'; diff --git a/packages/plugins/@nocobase/plugin-action-import/src/server/actions/import-xlsx.ts b/packages/plugins/@nocobase/plugin-action-import/src/server/actions/import-xlsx.ts index 2a3ab234b9..09ad0e110d 100644 --- a/packages/plugins/@nocobase/plugin-action-import/src/server/actions/import-xlsx.ts +++ b/packages/plugins/@nocobase/plugin-action-import/src/server/actions/import-xlsx.ts @@ -62,8 +62,8 @@ async function importXlsxAction(ctx: Context, next: Next) { export async function importXlsx(ctx: Context, next: Next) { if (mutex.isLocked()) { throw new Error( - ctx.t(`another export action is running, please try again later.`, { - ns: 'action-export', + ctx.t(`another import action is running, please try again later.`, { + ns: 'action-import', }), ); } diff --git a/packages/plugins/@nocobase/plugin-field-sort/package.json b/packages/plugins/@nocobase/plugin-field-sort/package.json index e14c3e93dc..78bde7f07a 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/package.json +++ b/packages/plugins/@nocobase/plugin-field-sort/package.json @@ -4,8 +4,13 @@ "main": "dist/server/index.js", "dependencies": {}, "peerDependencies": { + "@nocobase/actions": "1.x", "@nocobase/client": "1.x", + "@nocobase/database": "1.x", + "@nocobase/lock-manager": "1.x", "@nocobase/server": "1.x", - "@nocobase/test": "1.x" + "@nocobase/test": "1.x", + "lodash": "4.17.21", + "sequelize": "^6.26.0" } } diff --git a/packages/plugins/@nocobase/plugin-field-sort/src/server/index.ts b/packages/plugins/@nocobase/plugin-field-sort/src/server/index.ts index be989de7c3..bde422fb27 100644 --- a/packages/plugins/@nocobase/plugin-field-sort/src/server/index.ts +++ b/packages/plugins/@nocobase/plugin-field-sort/src/server/index.ts @@ -8,3 +8,4 @@ */ export { default } from './plugin'; +export { move } from './action';