egg 4.0.6 → 4.0.7

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.
@@ -7,7 +7,7 @@ export default class Request extends EggCoreRequest {
7
7
  ctx: Context;
8
8
  response: Response;
9
9
  /**
10
- * Request body, parsed from koa-bodyparser or egg-multipart
10
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
11
11
  */
12
12
  body: any;
13
13
  /**
@@ -48,7 +48,7 @@ exports.default = {
48
48
  */
49
49
  multipart: {
50
50
  enable: true,
51
- package: 'egg-multipart',
51
+ package: '@eggjs/multipart',
52
52
  },
53
53
  /**
54
54
  * security middlewares and extends
@@ -118,7 +118,7 @@ exports.default = {
118
118
  */
119
119
  view: {
120
120
  enable: true,
121
- package: 'egg-view',
121
+ package: '@eggjs/view',
122
122
  },
123
123
  };
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsbUJBQW1CO0tBQzdCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsb0JBQW9CO0tBQzlCO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtDQUNGLENBQUMifQ==
@@ -16,6 +16,8 @@ import '@eggjs/schedule';
16
16
  import '@eggjs/session';
17
17
  import '@eggjs/onerror';
18
18
  import '@eggjs/logrotator';
19
+ import '@eggjs/multipart';
20
+ import '@eggjs/view';
19
21
  export type { EggAppInfo, } from '@eggjs/core';
20
22
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
21
23
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -62,6 +64,17 @@ export interface HttpClientConfig {
62
64
  */
63
65
  useHttpClientNext?: boolean;
64
66
  }
67
+ /**
68
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
69
+ * @example
70
+ * import { PowerPartial, EggAppConfig } from 'egg';
71
+ *
72
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
73
+ * type EggConfig = PowerPartial<EggAppConfig>
74
+ */
75
+ export type PowerPartial<T> = {
76
+ [U in keyof T]?: T[U] extends object ? PowerPartial<T[U]> : T[U];
77
+ };
65
78
  export interface EggAppConfig extends EggCoreAppConfig {
66
79
  workerStartTimeout: number;
67
80
  baseDir: string;
@@ -11,4 +11,6 @@ require("@eggjs/schedule");
11
11
  require("@eggjs/session");
12
12
  require("@eggjs/onerror");
13
13
  require("@eggjs/logrotator");
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCO0FBQ3ZCLDJCQUF5QjtBQUN6QiwyQkFBeUI7QUFDekIsMEJBQXdCO0FBQ3hCLDBCQUF3QjtBQUN4Qiw2QkFBMkIifQ==
14
+ require("@eggjs/multipart");
15
+ require("@eggjs/view");
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLHVCQUF1QjtBQUN2QiwwQkFBd0I7QUFDeEIsOEJBQTRCO0FBQzVCLHdCQUFzQjtBQUN0Qix1QkFBcUI7QUFDckIseUJBQXVCO0FBQ3ZCLDJCQUF5QjtBQUN6QiwyQkFBeUI7QUFDekIsMEJBQXdCO0FBQ3hCLDBCQUF3QjtBQUN4Qiw2QkFBMkI7QUFDM0IsNEJBQTBCO0FBQzFCLHVCQUFxQiJ9
@@ -7,7 +7,7 @@ export default class Request extends EggCoreRequest {
7
7
  ctx: Context;
8
8
  response: Response;
9
9
  /**
10
- * Request body, parsed from koa-bodyparser or egg-multipart
10
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
11
11
  */
12
12
  body: any;
13
13
  /**
@@ -46,7 +46,7 @@ export default {
46
46
  */
47
47
  multipart: {
48
48
  enable: true,
49
- package: 'egg-multipart',
49
+ package: '@eggjs/multipart',
50
50
  },
51
51
  /**
52
52
  * security middlewares and extends
@@ -116,7 +116,7 @@ export default {
116
116
  */
117
117
  view: {
118
118
  enable: true,
119
- package: 'egg-view',
119
+ package: '@eggjs/view',
120
120
  },
121
121
  };
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLG9CQUFvQjtLQUM5QjtJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsbUJBQW1CO0tBQzdCO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxpQkFBaUI7S0FDM0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksRUFBRTtRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLFVBQVU7S0FDcEI7Q0FDRixDQUFDIn0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZTtJQUNiOzs7O09BSUc7SUFDSCxPQUFPLEVBQUU7UUFDUCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRTtRQUNQLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZ0JBQWdCO0tBQzFCO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxrQkFBa0I7S0FDNUI7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxFQUFFO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsb0JBQW9CO0tBQzlCO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxtQkFBbUI7S0FDN0I7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsRUFBRTtRQUNSLE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGlCQUFpQjtLQUMzQjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxFQUFFO1FBQ04sTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUVEOzs7OztPQUtHO0lBQ0gsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsYUFBYTtLQUN2QjtDQUNGLENBQUMifQ==
@@ -16,6 +16,8 @@ import '@eggjs/schedule';
16
16
  import '@eggjs/session';
17
17
  import '@eggjs/onerror';
18
18
  import '@eggjs/logrotator';
19
+ import '@eggjs/multipart';
20
+ import '@eggjs/view';
19
21
  export type { EggAppInfo, } from '@eggjs/core';
20
22
  type IgnoreItem = string | RegExp | ((ctx: Context) => boolean);
21
23
  type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
@@ -62,6 +64,17 @@ export interface HttpClientConfig {
62
64
  */
63
65
  useHttpClientNext?: boolean;
64
66
  }
67
+ /**
68
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
69
+ * @example
70
+ * import { PowerPartial, EggAppConfig } from 'egg';
71
+ *
72
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
73
+ * type EggConfig = PowerPartial<EggAppConfig>
74
+ */
75
+ export type PowerPartial<T> = {
76
+ [U in keyof T]?: T[U] extends object ? PowerPartial<T[U]> : T[U];
77
+ };
65
78
  export interface EggAppConfig extends EggCoreAppConfig {
66
79
  workerStartTimeout: number;
67
80
  baseDir: string;
@@ -9,4 +9,6 @@ import '@eggjs/schedule';
9
9
  import '@eggjs/session';
10
10
  import '@eggjs/onerror';
11
11
  import '@eggjs/logrotator';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxtQkFBbUIsQ0FBQyJ9
12
+ import '@eggjs/multipart';
13
+ import '@eggjs/view';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSx1QkFBdUI7QUFDdkIsT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sYUFBYSxDQUFDIn0=
package/dist/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.6"
3
+ "version": "4.0.7"
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "egg",
3
- "version": "4.0.6",
3
+ "version": "4.0.7",
4
4
  "engines": {
5
5
  "node": ">= 18.19.0"
6
6
  },
@@ -26,19 +26,19 @@
26
26
  "@eggjs/i18n": "^3.0.1",
27
27
  "@eggjs/jsonp": "^3.0.0",
28
28
  "@eggjs/logrotator": "^4.0.0",
29
+ "@eggjs/multipart": "^4.0.0",
29
30
  "@eggjs/onerror": "^3.0.0",
30
31
  "@eggjs/schedule": "^5.0.2",
31
32
  "@eggjs/security": "^4.0.0",
32
33
  "@eggjs/session": "^4.0.1",
33
34
  "@eggjs/static": "^3.0.0",
34
35
  "@eggjs/utils": "^4.2.5",
36
+ "@eggjs/view": "^3.0.1",
35
37
  "@eggjs/watcher": "^4.0.4",
36
38
  "circular-json-for-egg": "^1.0.0",
37
39
  "cluster-client": "^3.7.0",
38
40
  "egg-errors": "^2.3.2",
39
41
  "egg-logger": "^3.6.1",
40
- "egg-multipart": "^3.5.0",
41
- "egg-view": "^2.1.4",
42
42
  "extend2": "^4.0.0",
43
43
  "graceful": "^2.0.0",
44
44
  "humanize-ms": "^2.0.0",
@@ -17,7 +17,7 @@ export default class Request extends EggCoreRequest {
17
17
  declare response: Response;
18
18
 
19
19
  /**
20
- * Request body, parsed from koa-bodyparser or egg-multipart
20
+ * Request body, parsed from koa-bodyparser or @eggjs/multipart
21
21
  */
22
22
  declare body: any;
23
23
 
@@ -50,7 +50,7 @@ export default {
50
50
  */
51
51
  multipart: {
52
52
  enable: true,
53
- package: 'egg-multipart',
53
+ package: '@eggjs/multipart',
54
54
  },
55
55
 
56
56
  /**
@@ -127,6 +127,6 @@ export default {
127
127
  */
128
128
  view: {
129
129
  enable: true,
130
- package: 'egg-view',
130
+ package: '@eggjs/view',
131
131
  },
132
132
  };
package/src/lib/types.ts CHANGED
@@ -27,6 +27,8 @@ import '@eggjs/schedule';
27
27
  import '@eggjs/session';
28
28
  import '@eggjs/onerror';
29
29
  import '@eggjs/logrotator';
30
+ import '@eggjs/multipart';
31
+ import '@eggjs/view';
30
32
 
31
33
  export type {
32
34
  EggAppInfo,
@@ -81,6 +83,20 @@ export interface HttpClientConfig {
81
83
  useHttpClientNext?: boolean;
82
84
  }
83
85
 
86
+ /**
87
+ * Powerful Partial, Support adding ? modifier to a mapped property in deep level
88
+ * @example
89
+ * import { PowerPartial, EggAppConfig } from 'egg';
90
+ *
91
+ * // { view: { defaultEngines: string } } => { view?: { defaultEngines?: string } }
92
+ * type EggConfig = PowerPartial<EggAppConfig>
93
+ */
94
+ export type PowerPartial<T> = {
95
+ [U in keyof T]?: T[U] extends object
96
+ ? PowerPartial<T[U]>
97
+ : T[U]
98
+ };
99
+
84
100
  export interface EggAppConfig extends EggCoreAppConfig {
85
101
  workerStartTimeout: number;
86
102
  baseDir: string;