@nocobase/actions 0.20.0-alpha.9 → 0.21.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Model } from 'sequelize';
2
- import { Context } from '..';
3
2
  import { Collection, SortField, TargetKey } from '@nocobase/database';
3
+ import { Context } from '..';
4
4
  export declare function move(ctx: Context, next: any): Promise<void>;
5
5
  interface MoveOptions {
6
6
  insertAfter?: boolean;
@@ -27,22 +27,15 @@ var import_database = require("@nocobase/database");
27
27
  var import_utils = require("../utils");
28
28
  async function move(ctx, next) {
29
29
  const repository = ctx.databaseRepository || (0, import_utils.getRepositoryFromParams)(ctx);
30
- const { sourceId, targetId, sortField, targetScope, sticky, method } = ctx.action.params;
30
+ const { sourceId, targetId, targetScope, sticky, method } = ctx.action.params;
31
+ let sortField = ctx.action.params.sortField;
31
32
  if (repository instanceof import_database.BelongsToManyRepository) {
32
33
  throw new Error("Sorting association as 'belongs-to-many' type is not supported.");
33
34
  }
34
- if (repository instanceof import_database.HasManyRepository) {
35
- const hasManyField = repository.sourceCollection.getField(repository.associationName);
36
- if (!hasManyField.options.sortable) {
37
- throw new Error(
38
- `association ${hasManyField.options.name} in ${repository.sourceCollection.name} is not sortable`
39
- );
40
- }
35
+ if (repository instanceof import_database.HasManyRepository && !sortField) {
36
+ sortField = `${repository.association.foreignKey}Sort`;
41
37
  }
42
- const sortAbleCollection = new SortAbleCollection(
43
- repository instanceof import_database.Repository ? repository.collection : repository.targetCollection,
44
- repository instanceof import_database.Repository ? sortField : `${repository.association.foreignKey}Sort`
45
- );
38
+ const sortAbleCollection = new SortAbleCollection(repository.collection, sortField);
46
39
  if (sourceId && targetId) {
47
40
  await sortAbleCollection.move(sourceId, targetId, {
48
41
  insertAfter: method === "insertAfter"
package/lib/index.d.ts CHANGED
@@ -14,5 +14,8 @@ export interface Context extends Koa.Context {
14
14
  app: any;
15
15
  [key: string]: any;
16
16
  }
17
+ /**
18
+ * @internal
19
+ */
17
20
  export declare function registerActions(api: any): void;
18
21
  export default actions;
package/lib/utils.d.ts CHANGED
@@ -4,5 +4,5 @@ export declare function pageArgsToLimitArgs(page: number, pageSize: number): {
4
4
  offset: number;
5
5
  limit: number;
6
6
  };
7
- export declare function getRepositoryFromParams(ctx: Context): MultipleRelationRepository | Repository<any, any>;
7
+ export declare function getRepositoryFromParams(ctx: Context): Repository<any, any> | MultipleRelationRepository;
8
8
  export declare function RelationRepositoryActionBuilder(method: 'remove' | 'set'): (ctx: Context, next: any) => Promise<void>;
package/lib/utils.js CHANGED
@@ -31,9 +31,13 @@ function pageArgsToLimitArgs(page, pageSize) {
31
31
  }
32
32
  __name(pageArgsToLimitArgs, "pageArgsToLimitArgs");
33
33
  function getRepositoryFromParams(ctx) {
34
- const { resourceName, resourceOf } = ctx.action;
35
- if (resourceOf) {
36
- return ctx.db.getRepository(resourceName, resourceOf);
34
+ const { resourceName, sourceId, actionName } = ctx.action;
35
+ if (sourceId === "_" && ["get", "list"].includes(actionName)) {
36
+ const collection = ctx.db.getCollection(resourceName);
37
+ return ctx.db.getRepository(collection.name);
38
+ }
39
+ if (sourceId) {
40
+ return ctx.db.getRepository(resourceName, sourceId);
37
41
  }
38
42
  return ctx.db.getRepository(resourceName);
39
43
  }
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@nocobase/actions",
3
- "version": "0.20.0-alpha.9",
3
+ "version": "0.21.0-alpha.10",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
8
8
  "dependencies": {
9
- "@nocobase/cache": "0.20.0-alpha.9",
10
- "@nocobase/database": "0.20.0-alpha.9",
11
- "@nocobase/resourcer": "0.20.0-alpha.9"
9
+ "@nocobase/cache": "0.21.0-alpha.10",
10
+ "@nocobase/database": "0.21.0-alpha.10",
11
+ "@nocobase/resourcer": "0.21.0-alpha.10"
12
12
  },
13
13
  "repository": {
14
14
  "type": "git",
15
15
  "url": "git+https://github.com/nocobase/nocobase.git",
16
16
  "directory": "packages/actions"
17
17
  },
18
- "gitHead": "5473d9039cfdb649a8c8c625edefc9a3ac464be5"
18
+ "gitHead": "98adf5ec996a4f359c6ca1c4a6ac837c43b6e268"
19
19
  }