@eggjs/view-nunjucks 3.0.0-beta.0 → 3.0.0-beta.29

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/README.md CHANGED
@@ -107,13 +107,20 @@ you can extend custom tag like this:
107
107
 
108
108
  ```ts
109
109
  // {app_root}/app/extend/application.ts
110
- import { Application } from 'egg';
110
+ import type { Application, ILifecycleBoot } from 'egg';
111
111
  import markdown from 'nunjucks-markdown';
112
- import marked from 'marked';
112
+ import { marked } from 'marked';
113
113
 
114
- export default (app: Application) => {
115
- markdown.register(app.nunjucks, marked);
116
- };
114
+ export default class AppBoot implements ILifecycleBoot {
115
+ app: Application;
116
+ constructor(app: Application) {
117
+ this.app = app;
118
+ }
119
+
120
+ async didLoad(): Promise<void> {
121
+ markdown.register(app.nunjucks, marked);
122
+ }
123
+ }
117
124
  ```
118
125
 
119
126
  ### Security
@@ -1,9 +1,9 @@
1
+ import { Application } from 'egg';
1
2
  import type { NunjucksEnvironment } from '../../lib/environment.ts';
2
- declare const _default: {
3
+ export default class NunjucksApplication extends Application {
3
4
  /**
4
5
  * nunjucks environment
5
6
  * @see https://mozilla.github.io/nunjucks/api.html#environment
6
7
  */
7
- readonly nunjucks: NunjucksEnvironment;
8
- };
9
- export default _default;
8
+ get nunjucks(): NunjucksEnvironment;
9
+ }
@@ -1,16 +1,16 @@
1
+ import { Application } from 'egg';
1
2
  import { createEngine } from "../../lib/engine.js";
2
3
  const NUNJUCKS = Symbol('app#nunjucks');
3
- export default {
4
+ export default class NunjucksApplication extends Application {
4
5
  /**
5
6
  * nunjucks environment
6
7
  * @see https://mozilla.github.io/nunjucks/api.html#environment
7
8
  */
8
9
  get nunjucks() {
9
- const app = this;
10
- if (!app[NUNJUCKS]) {
11
- app[NUNJUCKS] = createEngine(app);
10
+ if (!this[NUNJUCKS]) {
11
+ this[NUNJUCKS] = createEngine(this);
12
12
  }
13
- return app[NUNJUCKS];
14
- },
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXhDLGVBQWU7SUFDYjs7O09BR0c7SUFDSCxJQUFJLFFBQVE7UUFDVixNQUFNLEdBQUcsR0FBRyxJQUE4QixDQUFDO1FBQzNDLElBQUksQ0FBRSxHQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMzQixHQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFRLEdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YsQ0FBQyJ9
13
+ return this[NUNJUCKS];
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUduRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxtQkFBb0IsU0FBUSxXQUFXO0lBQzFEOzs7T0FHRztJQUNILElBQUksUUFBUTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQXdCLENBQUM7SUFDL0MsQ0FBQztDQUNGIn0=
package/dist/app.d.ts CHANGED
@@ -1,3 +1,7 @@
1
- import type { Application } from 'egg';
2
- declare const _default: (app: Application) => void;
3
- export default _default;
1
+ import type { Application, ILifecycleBoot } from 'egg';
2
+ export default class ViewNunjucksAppBoot implements ILifecycleBoot {
3
+ app: Application;
4
+ constructor(app: Application);
5
+ configDidLoad(): void;
6
+ didLoad(): Promise<void>;
7
+ }
package/dist/app.js CHANGED
@@ -1,5 +1,14 @@
1
1
  import { NunjucksView } from "./lib/view.js";
2
- export default (app) => {
3
- app.view.use('nunjucks', NunjucksView);
4
- };
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLGVBQWUsQ0FBQyxHQUFnQixFQUFRLEVBQUU7SUFDeEMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQW1CLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMifQ==
2
+ export default class ViewNunjucksAppBoot {
3
+ app;
4
+ constructor(app) {
5
+ this.app = app;
6
+ }
7
+ configDidLoad() {
8
+ this.app.view.use('nunjucks', NunjucksView);
9
+ }
10
+ async didLoad() {
11
+ await this.app.nunjucks.ready();
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3RDLEdBQUcsQ0FBYztJQUNqQixZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7Q0FDRiJ9
@@ -1,6 +1,3 @@
1
- /**
2
- * Nunjucks plugin configuration
3
- */
4
1
  export interface NunjucksConfig {
5
2
  /**
6
3
  * Controls if output with dangerous characters are escaped automatically
@@ -33,7 +30,7 @@ export interface NunjucksConfig {
33
30
  */
34
31
  noCache?: boolean;
35
32
  }
36
- declare const _default: () => {
33
+ declare const _default: {
37
34
  nunjucks: NunjucksConfig;
38
35
  };
39
36
  export default _default;
@@ -1,12 +1,10 @@
1
- export default () => {
2
- return {
3
- nunjucks: {
4
- autoescape: true,
5
- throwOnUndefined: false,
6
- trimBlocks: false,
7
- lstripBlocks: false,
8
- cache: true,
9
- },
10
- };
1
+ export default {
2
+ nunjucks: {
3
+ autoescape: true,
4
+ throwOnUndefined: false,
5
+ trimBlocks: false,
6
+ lstripBlocks: false,
7
+ cache: true,
8
+ },
11
9
  };
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9DQSxlQUFlLEdBQWlDLEVBQUU7SUFDaEQsT0FBTztRQUNMLFFBQVEsRUFBRTtZQUNSLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMifQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDQSxlQUFlO0lBQ2IsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLElBQUk7UUFDaEIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsSUFBSTtLQUNNO0NBQ3BCLENBQUMifQ==
@@ -1,5 +1,5 @@
1
1
  import type { NunjucksConfig } from './config.default.ts';
2
- declare const _default: () => {
2
+ declare const _default: {
3
3
  nunjucks: Partial<NunjucksConfig>;
4
4
  };
5
5
  export default _default;
@@ -1,8 +1,6 @@
1
- export default () => {
2
- return {
3
- nunjucks: {
4
- cache: false,
5
- },
6
- };
1
+ export default {
2
+ nunjucks: {
3
+ cache: false,
4
+ },
7
5
  };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBZSxHQUEwQyxFQUFFO0lBQ3pELE9BQU87UUFDTCxRQUFRLEVBQUU7WUFDUixLQUFLLEVBQUUsS0FBSztTQUNiO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBZTtJQUNiLFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRSxLQUFLO0tBQ2M7Q0FDN0IsQ0FBQyJ9
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import './types.ts';
1
2
  export { NunjucksEnvironment } from './lib/environment.ts';
2
3
  export { NunjucksFileLoader } from './lib/file_loader.ts';
3
4
  export { createHelper } from './lib/helper.ts';
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
+ import "./types.js";
1
2
  export { NunjucksEnvironment } from "./lib/environment.js";
2
3
  export { NunjucksFileLoader } from "./lib/file_loader.js";
3
4
  export { createHelper } from "./lib/helper.js";
4
5
  export { NunjucksView } from "./lib/view.js";
5
6
  export { createEngine } from "./lib/engine.js";
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
@@ -7,10 +7,10 @@ import { NunjucksEnvironment } from "./environment.js";
7
7
  export function createEngine(app) {
8
8
  const coreLogger = app.loggers.coreLogger;
9
9
  const viewPaths = app.config.view.root;
10
- coreLogger.info('[egg-view-nunjucks] loading templates from %j', viewPaths);
10
+ coreLogger.info('[@eggjs/view-nunjucks] loading templates from %j', viewPaths);
11
11
  const config = app.config.nunjucks;
12
12
  config.noCache = !config.cache;
13
13
  delete config.cache;
14
14
  return new NunjucksEnvironment(app);
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBZ0I7SUFDM0MsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFMUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsK0NBQStDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFNUUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFlLENBQUM7SUFDMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBRXBCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDIn0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBZ0I7SUFDM0MsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFMUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0RBQWtELEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFL0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFlLENBQUM7SUFDMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBRXBCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDIn0=
@@ -14,5 +14,6 @@ export declare class NunjucksEnvironment extends nunjucks.Environment {
14
14
  * @return clean count
15
15
  */
16
16
  cleanCache(name?: string): number;
17
+ ready(): Promise<void>;
17
18
  private loadFilter;
18
19
  }
@@ -12,17 +12,19 @@ export class NunjucksEnvironment extends nunjucks.Environment {
12
12
  const fileLoader = new NunjucksFileLoader(app);
13
13
  super(fileLoader, app.config.nunjucks);
14
14
  this.app = app;
15
- this.loadFilter();
16
15
  // monkey patch `escape` with `app.Helper.prototype.escape` provided by `egg-security` for better performance
17
16
  nunjucks.lib.escape = app.Helper.prototype.escape;
18
17
  // http://disse.cting.org/2016/08/02/2016-08-02-sandbox-break-out-nunjucks-template-engine
18
+ // @ts-expect-error missing memberLookup type definition
19
19
  const originMemberLookup = nunjucks.runtime.memberLookup;
20
+ // @ts-expect-error missing memberLookup type definition
20
21
  nunjucks.runtime.memberLookup = function (...args) {
21
22
  const val = args[1];
22
23
  if (val === 'prototype' || val === 'constructor')
23
24
  return null;
24
25
  return originMemberLookup(...args);
25
26
  };
27
+ // @ts-expect-error missing filters type definition
26
28
  this.ViewHelper = createHelper(app, this.filters);
27
29
  }
28
30
  /**
@@ -51,26 +53,24 @@ export class NunjucksEnvironment extends nunjucks.Environment {
51
53
  }
52
54
  return count;
53
55
  }
56
+ async ready() {
57
+ await this.loadFilter();
58
+ }
54
59
  // load `app/extend/filter.js` from app/framework/plugin into nunjucks
55
- loadFilter() {
60
+ async loadFilter() {
56
61
  for (const unit of this.app.loader.getLoadUnits()) {
57
- const filterPath = resolveModule(path.join(unit.path, 'app/extend/filter'));
62
+ const filterPath = this.app.loader.resolveModule(path.join(unit.path, 'app/extend/filter'));
58
63
  if (!filterPath)
59
64
  continue;
60
- const filters = this.app.loader.loadFile(filterPath) || {};
65
+ const filters = await this.app.loader.loadFile(filterPath);
66
+ if (!filters)
67
+ continue;
61
68
  const filterKeys = Object.keys(filters);
62
69
  for (const key of filterKeys) {
63
70
  this.addFilter(key, filters[key]);
64
71
  }
72
+ this.app.coreLogger.info('[@eggjs/view-nunjucks] load filter %j from %s', filterKeys, filterPath);
65
73
  }
66
74
  }
67
75
  }
68
- function resolveModule(filepath) {
69
- try {
70
- return require.resolve(filepath);
71
- }
72
- catch {
73
- return undefined;
74
- }
75
- }
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFFaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRLENBQUMsV0FBVztJQUMzRCxHQUFHLENBQWM7SUFDakIsVUFBVSxDQUFrQztJQUU1QyxZQUFZLEdBQWdCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLFVBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQiw2R0FBNkc7UUFDNUcsUUFBUSxDQUFDLEdBQVcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRTNELDBGQUEwRjtRQUMxRixNQUFNLGtCQUFrQixHQUFJLFFBQVEsQ0FBQyxPQUFlLENBQUMsWUFBWSxDQUFDO1FBQ2pFLFFBQVEsQ0FBQyxPQUFlLENBQUMsWUFBWSxHQUFHLFVBQVUsR0FBRyxJQUFXO1lBQy9ELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLEdBQUcsS0FBSyxXQUFXLElBQUksR0FBRyxLQUFLLGFBQWE7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDOUQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRyxJQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsSUFBYTtRQUN0QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxNQUFNLE9BQU8sR0FBSSxJQUFZLENBQUMsT0FBTyxDQUFDO1FBQ3RDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxnQ0FBZ0M7Z0JBQ2hDLDBCQUEwQjtnQkFDMUIsSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLEtBQUssRUFBRSxDQUFDO29CQUNQLE1BQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxTQUFTLElBQUssTUFBYyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM5QyxLQUFLLEVBQUUsQ0FBQztvQkFDUCxNQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsc0VBQXNFO0lBQzlELFVBQVU7UUFDaEIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQzVFLElBQUksQ0FBQyxVQUFVO2dCQUFFLFNBQVM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMzRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFHLE9BQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzdDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBZ0I7SUFDckMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyJ9
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUM7QUFHaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRLENBQUMsV0FBVztJQUMzRCxHQUFHLENBQWM7SUFDakIsVUFBVSxDQUFrQztJQUU1QyxZQUFZLEdBQWdCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLFVBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUVmLDZHQUE2RztRQUM1RyxRQUFRLENBQUMsR0FBVyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFM0QsMEZBQTBGO1FBQzFGLHdEQUF3RDtRQUN4RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1FBQ3pELHdEQUF3RDtRQUN4RCxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxVQUFVLEdBQUcsSUFBVztZQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLEdBQUcsS0FBSyxhQUFhO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzlELE9BQU8sa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFFRixtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxJQUFhO1FBQ3RCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLE1BQU0sT0FBTyxHQUFJLElBQVksQ0FBQyxPQUFPLENBQUM7UUFDdEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULGdDQUFnQztnQkFDaEMsMEJBQTBCO2dCQUMxQixJQUFLLE1BQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDaEMsS0FBSyxFQUFFLENBQUM7b0JBQ1AsTUFBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxNQUFNLFNBQVMsSUFBSyxNQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzlDLEtBQUssRUFBRSxDQUFDO29CQUNQLE1BQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxzRUFBc0U7SUFDOUQsS0FBSyxDQUFDLFVBQVU7UUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ2xELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1lBQzVGLElBQUksQ0FBQyxVQUFVO2dCQUFFLFNBQVM7WUFDMUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU87Z0JBQUUsU0FBUztZQUN2QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsK0NBQStDLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
@@ -1,11 +1,11 @@
1
+ import '../types.ts';
1
2
  import type { Context } from 'egg';
3
+ import { ViewEngineBase } from '@eggjs/view';
2
4
  import type { createHelper } from './helper.ts';
3
5
  /**
4
6
  * Nunjucks view class for rendering templates
5
7
  */
6
- export declare class NunjucksView {
7
- ctx: Context;
8
- app: Context['app'];
8
+ export declare class NunjucksView extends ViewEngineBase {
9
9
  viewHelper: InstanceType<ReturnType<typeof createHelper>>;
10
10
  constructor(ctx: Context);
11
11
  /**
package/dist/lib/view.js CHANGED
@@ -1,13 +1,12 @@
1
+ import "../types.js";
2
+ import { ViewEngineBase } from '@eggjs/view';
1
3
  /**
2
4
  * Nunjucks view class for rendering templates
3
5
  */
4
- export class NunjucksView {
5
- ctx;
6
- app;
6
+ export class NunjucksView extends ViewEngineBase {
7
7
  viewHelper;
8
8
  constructor(ctx) {
9
- this.ctx = ctx;
10
- this.app = ctx.app;
9
+ super(ctx);
11
10
  this.viewHelper = new this.app.nunjucks.ViewHelper(ctx);
12
11
  }
13
12
  /**
@@ -16,7 +15,7 @@ export class NunjucksView {
16
15
  * @param locals - template locals
17
16
  * @returns rendered html string
18
17
  */
19
- render(name, locals) {
18
+ async render(name, locals) {
20
19
  locals.helper = this.viewHelper;
21
20
  return new Promise((resolve, reject) => {
22
21
  this.app.nunjucks.render(name, locals, (err, result) => {
@@ -33,10 +32,11 @@ export class NunjucksView {
33
32
  * @param opts - render options
34
33
  * @returns rendered html string
35
34
  */
36
- renderString(tpl, locals, opts) {
35
+ async renderString(tpl, locals, opts) {
37
36
  locals.helper = this.viewHelper;
38
37
  return new Promise((resolve, reject) => {
39
38
  if (opts) {
39
+ // @ts-expect-error missing opts type definition
40
40
  this.app.nunjucks.renderString(tpl, locals, opts, (err, result) => {
41
41
  if (err)
42
42
  return reject(err);
@@ -53,4 +53,4 @@ export class NunjucksView {
53
53
  });
54
54
  }
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBaUI7SUFDcEIsVUFBVSxDQUFnRDtJQUUxRCxZQUFZLEdBQVk7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsSUFBWSxFQUFFLE1BQTJCO1FBQzlDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNoQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQWlCLEVBQUUsTUFBZSxFQUFFLEVBQUU7Z0JBQ3JGLElBQUksR0FBRztvQkFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxDQUFDLEdBQVcsRUFBRSxNQUEyQixFQUFFLElBQVU7UUFDL0QsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBaUIsRUFBRSxNQUFlLEVBQUUsRUFBRTtvQkFDaEcsSUFBSSxHQUFHO3dCQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM1QixPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQWlCLEVBQUUsTUFBZSxFQUFFLEVBQUU7b0JBQzFGLElBQUksR0FBRzt3QkFBRSxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDNUIsT0FBTyxDQUFDLE1BQU8sQ0FBQyxDQUFDO2dCQUNuQixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGFBQWEsQ0FBQztBQUdyQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFjO0lBQzlDLFVBQVUsQ0FBZ0Q7SUFFMUQsWUFBWSxHQUFZO1FBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFZLEVBQUUsTUFBMkI7UUFDcEQsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFpQixFQUFFLE1BQXFCLEVBQUUsRUFBRTtnQkFDbEYsSUFBSSxHQUFHO29CQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QixPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQVcsRUFBRSxNQUEyQixFQUFFLElBQVU7UUFDckUsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQWlCLEVBQUUsTUFBcUIsRUFBRSxFQUFFO29CQUM3RixJQUFJLEdBQUc7d0JBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzVCLE9BQU8sQ0FBQyxNQUFPLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFpQixFQUFFLE1BQXFCLEVBQUUsRUFBRTtvQkFDdkYsSUFBSSxHQUFHO3dCQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM1QixPQUFPLENBQUMsTUFBTyxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
package/dist/types.d.ts CHANGED
@@ -2,6 +2,9 @@ import type { NunjucksConfig } from './config/config.default.ts';
2
2
  import type { NunjucksEnvironment } from './lib/environment.ts';
3
3
  declare module 'egg' {
4
4
  interface EggAppConfig {
5
+ /**
6
+ * Nunjucks plugin configuration
7
+ */
5
8
  nunjucks: NunjucksConfig;
6
9
  }
7
10
  interface Application {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eggjs/view-nunjucks",
3
- "version": "3.0.0-beta.0",
3
+ "version": "3.0.0-beta.29",
4
4
  "description": "nunjucks view plugin for egg",
5
5
  "type": "module",
6
6
  "exports": {
@@ -43,9 +43,11 @@
43
43
  "nunjucks": "^3.2.4"
44
44
  },
45
45
  "peerDependencies": {
46
- "egg": "4.1.0-beta.28"
46
+ "@eggjs/view": "4.0.0-beta.29",
47
+ "egg": "4.1.0-beta.29"
47
48
  },
48
49
  "devDependencies": {
50
+ "@types/common-tags": "^1.8.4",
49
51
  "@types/nunjucks": "^3.2.6",
50
52
  "cheerio": "^1.0.0",
51
53
  "common-tags": "^1.8.2",
@@ -55,7 +57,10 @@
55
57
  "rimraf": "^6.0.1",
56
58
  "tsdown": "0.15.6",
57
59
  "typescript": "^5.9.3",
58
- "vitest": "4.0.0-beta.18"
60
+ "vitest": "4.0.0-beta.18",
61
+ "@eggjs/view": "4.0.0-beta.29",
62
+ "@eggjs/mock": "7.0.0-beta.29",
63
+ "egg": "4.1.0-beta.29"
59
64
  },
60
65
  "engines": {
61
66
  "node": ">=22.18.0"