@nocobase/plugin-error-handler 0.7.0-alpha.2 → 0.7.0-alpha.22

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.
package/esm/server.js CHANGED
@@ -7,7 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { compile } from '@formily/json-schema/lib/compiler';
10
+ import { Schema } from '@formily/json-schema';
11
11
  import { Plugin } from '@nocobase/server';
12
12
  import lodash from 'lodash';
13
13
  import { BaseError } from 'sequelize';
@@ -34,7 +34,7 @@ export class PluginErrorHandler extends Plugin {
34
34
  const model = instance.constructor;
35
35
  const collection = this.db.modelCollection.get(model);
36
36
  const field = collection.getField(path);
37
- const fieldOptions = compile(field.options, { t: tFunc });
37
+ const fieldOptions = Schema.compile(field.options, { t: tFunc });
38
38
  const title = lodash.get(fieldOptions, 'uiSchema.title', path);
39
39
  return title;
40
40
  };
package/esm/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IAA9C;;QAKE,iBAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;QAChD,WAAM,GAAW,eAAe,CAAC;IA2CnC,CAAC;IAhDC,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,uCAAuC,EAAE,CAAC;IACjD,CAAC;IAED,uCAAuC;QACrC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,MAAM,KAAI,GAAG,YAAY,SAAS,CAAA,EAAA,EACxD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7B,OAAO;wBACL,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;4BAC5B,EAAE,EAAE,IAAI,CAAC,MAAM;4BACf,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,CAAC;qBACH,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;YACF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC;IACK,IAAI;;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF","sourcesContent":["import { compile } from '@formily/json-schema/lib/compiler';\nimport { Plugin } from '@nocobase/server';\nimport lodash from 'lodash';\nimport { BaseError } from 'sequelize';\nimport { ErrorHandler } from './error-handler';\nimport enUS from './locale/en_US';\nimport zhCN from './locale/zh_CN';\n\nexport class PluginErrorHandler extends Plugin {\n getName(): string {\n return this.getPackageName(__dirname);\n }\n\n errorHandler: ErrorHandler = new ErrorHandler();\n i18nNs: string = 'error-handler';\n\n beforeLoad() {\n this.registerSequelizeValidationErrorHandler();\n }\n\n registerSequelizeValidationErrorHandler() {\n const findFieldTitle = (instance, path, tFunc) => {\n if (!instance) {\n return path;\n }\n\n const model = instance.constructor;\n const collection = this.db.modelCollection.get(model);\n const field = collection.getField(path);\n const fieldOptions = compile(field.options, { t: tFunc });\n const title = lodash.get(fieldOptions, 'uiSchema.title', path);\n return title;\n };\n\n this.errorHandler.register(\n (err) => err?.errors?.length && err instanceof BaseError,\n (err, ctx) => {\n ctx.body = {\n errors: err.errors.map((err) => {\n return {\n message: ctx.i18n.t(err.type, {\n ns: this.i18nNs,\n field: findFieldTitle(err.instance, err.path, ctx.i18n.t),\n }),\n };\n }),\n };\n ctx.status = 400;\n },\n );\n }\n async load() {\n this.app.i18n.addResources('zh-CN', this.i18nNs, zhCN);\n this.app.i18n.addResources('en-US', this.i18nNs, enUS);\n\n this.app.middleware.unshift(this.errorHandler.middleware());\n }\n}\n"]}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAElC,MAAM,OAAO,kBAAmB,SAAQ,MAAM;IAA9C;;QAKE,iBAAY,GAAiB,IAAI,YAAY,EAAE,CAAC;QAChD,WAAM,GAAW,eAAe,CAAC;IA2CnC,CAAC;IAhDC,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,uCAAuC,EAAE,CAAC;IACjD,CAAC;IAED,uCAAuC;QACrC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,MAAM,KAAI,GAAG,YAAY,SAAS,CAAA,EAAA,EACxD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7B,OAAO;wBACL,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;4BAC5B,EAAE,EAAE,IAAI,CAAC,MAAM;4BACf,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,CAAC;qBACH,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;YACF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC;IACK,IAAI;;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF","sourcesContent":["import { Schema } from '@formily/json-schema';\nimport { Plugin } from '@nocobase/server';\nimport lodash from 'lodash';\nimport { BaseError } from 'sequelize';\nimport { ErrorHandler } from './error-handler';\nimport enUS from './locale/en_US';\nimport zhCN from './locale/zh_CN';\n\nexport class PluginErrorHandler extends Plugin {\n getName(): string {\n return this.getPackageName(__dirname);\n }\n\n errorHandler: ErrorHandler = new ErrorHandler();\n i18nNs: string = 'error-handler';\n\n beforeLoad() {\n this.registerSequelizeValidationErrorHandler();\n }\n\n registerSequelizeValidationErrorHandler() {\n const findFieldTitle = (instance, path, tFunc) => {\n if (!instance) {\n return path;\n }\n\n const model = instance.constructor;\n const collection = this.db.modelCollection.get(model);\n const field = collection.getField(path);\n const fieldOptions = Schema.compile(field.options, { t: tFunc });\n const title = lodash.get(fieldOptions, 'uiSchema.title', path);\n return title;\n };\n\n this.errorHandler.register(\n (err) => err?.errors?.length && err instanceof BaseError,\n (err, ctx) => {\n ctx.body = {\n errors: err.errors.map((err) => {\n return {\n message: ctx.i18n.t(err.type, {\n ns: this.i18nNs,\n field: findFieldTitle(err.instance, err.path, ctx.i18n.t),\n }),\n };\n }),\n };\n ctx.status = 400;\n },\n );\n }\n async load() {\n this.app.i18n.addResources('zh-CN', this.i18nNs, zhCN);\n this.app.i18n.addResources('en-US', this.i18nNs, enUS);\n\n this.app.middleware.unshift(this.errorHandler.middleware());\n }\n}\n"]}
package/lib/server.js CHANGED
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.PluginErrorHandler = void 0;
16
- const compiler_1 = require("@formily/json-schema/lib/compiler");
16
+ const json_schema_1 = require("@formily/json-schema");
17
17
  const server_1 = require("@nocobase/server");
18
18
  const lodash_1 = __importDefault(require("lodash"));
19
19
  const sequelize_1 = require("sequelize");
@@ -40,7 +40,7 @@ class PluginErrorHandler extends server_1.Plugin {
40
40
  const model = instance.constructor;
41
41
  const collection = this.db.modelCollection.get(model);
42
42
  const field = collection.getField(path);
43
- const fieldOptions = (0, compiler_1.compile)(field.options, { t: tFunc });
43
+ const fieldOptions = json_schema_1.Schema.compile(field.options, { t: tFunc });
44
44
  const title = lodash_1.default.get(fieldOptions, 'uiSchema.title', path);
45
45
  return title;
46
46
  };
package/lib/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gEAA4D;AAC5D,6CAA0C;AAC1C,oDAA4B;AAC5B,yCAAsC;AACtC,mDAA+C;AAC/C,2DAAkC;AAClC,2DAAkC;AAElC,MAAa,kBAAmB,SAAQ,eAAM;IAA9C;;QAKE,iBAAY,GAAiB,IAAI,4BAAY,EAAE,CAAC;QAChD,WAAM,GAAW,eAAe,CAAC;IA2CnC,CAAC;IAhDC,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,uCAAuC,EAAE,CAAC;IACjD,CAAC;IAED,uCAAuC;QACrC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,gBAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,MAAM,KAAI,GAAG,YAAY,qBAAS,CAAA,EAAA,EACxD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7B,OAAO;wBACL,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;4BAC5B,EAAE,EAAE,IAAI,CAAC,MAAM;4BACf,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,CAAC;qBACH,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;YACF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC;IACK,IAAI;;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,eAAI,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,eAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF;AAjDD,gDAiDC","sourcesContent":["import { compile } from '@formily/json-schema/lib/compiler';\nimport { Plugin } from '@nocobase/server';\nimport lodash from 'lodash';\nimport { BaseError } from 'sequelize';\nimport { ErrorHandler } from './error-handler';\nimport enUS from './locale/en_US';\nimport zhCN from './locale/zh_CN';\n\nexport class PluginErrorHandler extends Plugin {\n getName(): string {\n return this.getPackageName(__dirname);\n }\n\n errorHandler: ErrorHandler = new ErrorHandler();\n i18nNs: string = 'error-handler';\n\n beforeLoad() {\n this.registerSequelizeValidationErrorHandler();\n }\n\n registerSequelizeValidationErrorHandler() {\n const findFieldTitle = (instance, path, tFunc) => {\n if (!instance) {\n return path;\n }\n\n const model = instance.constructor;\n const collection = this.db.modelCollection.get(model);\n const field = collection.getField(path);\n const fieldOptions = compile(field.options, { t: tFunc });\n const title = lodash.get(fieldOptions, 'uiSchema.title', path);\n return title;\n };\n\n this.errorHandler.register(\n (err) => err?.errors?.length && err instanceof BaseError,\n (err, ctx) => {\n ctx.body = {\n errors: err.errors.map((err) => {\n return {\n message: ctx.i18n.t(err.type, {\n ns: this.i18nNs,\n field: findFieldTitle(err.instance, err.path, ctx.i18n.t),\n }),\n };\n }),\n };\n ctx.status = 400;\n },\n );\n }\n async load() {\n this.app.i18n.addResources('zh-CN', this.i18nNs, zhCN);\n this.app.i18n.addResources('en-US', this.i18nNs, enUS);\n\n this.app.middleware.unshift(this.errorHandler.middleware());\n }\n}\n"]}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA8C;AAC9C,6CAA0C;AAC1C,oDAA4B;AAC5B,yCAAsC;AACtC,mDAA+C;AAC/C,2DAAkC;AAClC,2DAAkC;AAElC,MAAa,kBAAmB,SAAQ,eAAM;IAA9C;;QAKE,iBAAY,GAAiB,IAAI,4BAAY,EAAE,CAAC;QAChD,WAAM,GAAW,eAAe,CAAC;IA2CnC,CAAC;IAhDC,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,uCAAuC,EAAE,CAAC;IACjD,CAAC;IAED,uCAAuC;QACrC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,QAAQ,EAAE;gBACb,OAAO,IAAI,CAAC;aACb;YAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,oBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,gBAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,GAAG,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,0CAAE,MAAM,KAAI,GAAG,YAAY,qBAAS,CAAA,EAAA,EACxD,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,IAAI,GAAG;gBACT,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC7B,OAAO;wBACL,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;4BAC5B,EAAE,EAAE,IAAI,CAAC,MAAM;4BACf,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1D,CAAC;qBACH,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;YACF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;QACnB,CAAC,CACF,CAAC;IACJ,CAAC;IACK,IAAI;;YACR,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,eAAI,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,eAAI,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF;AAjDD,gDAiDC","sourcesContent":["import { Schema } from '@formily/json-schema';\nimport { Plugin } from '@nocobase/server';\nimport lodash from 'lodash';\nimport { BaseError } from 'sequelize';\nimport { ErrorHandler } from './error-handler';\nimport enUS from './locale/en_US';\nimport zhCN from './locale/zh_CN';\n\nexport class PluginErrorHandler extends Plugin {\n getName(): string {\n return this.getPackageName(__dirname);\n }\n\n errorHandler: ErrorHandler = new ErrorHandler();\n i18nNs: string = 'error-handler';\n\n beforeLoad() {\n this.registerSequelizeValidationErrorHandler();\n }\n\n registerSequelizeValidationErrorHandler() {\n const findFieldTitle = (instance, path, tFunc) => {\n if (!instance) {\n return path;\n }\n\n const model = instance.constructor;\n const collection = this.db.modelCollection.get(model);\n const field = collection.getField(path);\n const fieldOptions = Schema.compile(field.options, { t: tFunc });\n const title = lodash.get(fieldOptions, 'uiSchema.title', path);\n return title;\n };\n\n this.errorHandler.register(\n (err) => err?.errors?.length && err instanceof BaseError,\n (err, ctx) => {\n ctx.body = {\n errors: err.errors.map((err) => {\n return {\n message: ctx.i18n.t(err.type, {\n ns: this.i18nNs,\n field: findFieldTitle(err.instance, err.path, ctx.i18n.t),\n }),\n };\n }),\n };\n ctx.status = 400;\n },\n );\n }\n async load() {\n this.app.i18n.addResources('zh-CN', this.i18nNs, zhCN);\n this.app.i18n.addResources('en-US', this.i18nNs, enUS);\n\n this.app.middleware.unshift(this.errorHandler.middleware());\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/plugin-error-handler",
3
- "version": "0.7.0-alpha.2",
3
+ "version": "0.7.0-alpha.22",
4
4
  "description": "",
5
5
  "license": "Apache-2.0",
6
6
  "licenses": [
@@ -17,12 +17,13 @@
17
17
  "build:esm": "tsc --project tsconfig.build.json --module es2015 --outDir esm"
18
18
  },
19
19
  "dependencies": {
20
- "@nocobase/server": "0.7.0-alpha.2"
20
+ "@formily/json-schema": "^2.0.15",
21
+ "@nocobase/server": "0.7.0-alpha.22"
21
22
  },
22
23
  "repository": {
23
24
  "type": "git",
24
25
  "url": "git+https://github.com/nocobase/nocobase.git",
25
26
  "directory": "packages/plugin-error-handler"
26
27
  },
27
- "gitHead": "0e0e99ef79c0b25bb0b45ecaa477c049cb16afee"
28
+ "gitHead": "dc5e9c80ed57ffd9b2f652f68a9444bfb79647db"
28
29
  }
package/src/server.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { compile } from '@formily/json-schema/lib/compiler';
1
+ import { Schema } from '@formily/json-schema';
2
2
  import { Plugin } from '@nocobase/server';
3
3
  import lodash from 'lodash';
4
4
  import { BaseError } from 'sequelize';
@@ -27,7 +27,7 @@ export class PluginErrorHandler extends Plugin {
27
27
  const model = instance.constructor;
28
28
  const collection = this.db.modelCollection.get(model);
29
29
  const field = collection.getField(path);
30
- const fieldOptions = compile(field.options, { t: tFunc });
30
+ const fieldOptions = Schema.compile(field.options, { t: tFunc });
31
31
  const title = lodash.get(fieldOptions, 'uiSchema.title', path);
32
32
  return title;
33
33
  };