@eggjs/view-nunjucks 3.0.0-beta.0 → 3.0.0-beta.30
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 +12 -5
- package/dist/app/extend/application.d.ts +4 -4
- package/dist/app/extend/application.js +8 -8
- package/dist/app.d.ts +7 -3
- package/dist/app.js +13 -4
- package/dist/config/config.default.d.ts +1 -4
- package/dist/config/config.default.js +9 -11
- package/dist/config/config.local.d.ts +1 -1
- package/dist/config/config.local.js +5 -7
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/lib/engine.js +2 -2
- package/dist/lib/environment.d.ts +1 -0
- package/dist/lib/environment.js +13 -13
- package/dist/lib/view.d.ts +3 -3
- package/dist/lib/view.js +8 -8
- package/dist/types.d.ts +3 -0
- package/package.json +11 -6
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
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
app[NUNJUCKS] = createEngine(app);
|
|
10
|
+
if (!this[NUNJUCKS]) {
|
|
11
|
+
this[NUNJUCKS] = createEngine(this);
|
|
12
12
|
}
|
|
13
|
-
return
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
-
|
|
3
|
-
|
|
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
|
|
3
|
-
app
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlDQSxlQUFlO0lBQ2IsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLElBQUk7UUFDaEIsZ0JBQWdCLEVBQUUsS0FBSztRQUN2QixVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsS0FBSztRQUNuQixLQUFLLEVBQUUsSUFBSTtLQUNNO0NBQ3BCLENBQUMifQ==
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
export default
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
},
|
|
6
|
-
};
|
|
1
|
+
export default {
|
|
2
|
+
nunjucks: {
|
|
3
|
+
cache: false,
|
|
4
|
+
},
|
|
7
5
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBZTtJQUNiLFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRSxLQUFLO0tBQ2M7Q0FDN0IsQ0FBQyJ9
|
package/dist/index.d.ts
CHANGED
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,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDIn0=
|
package/dist/lib/engine.js
CHANGED
|
@@ -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('[
|
|
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,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBZ0I7SUFDM0MsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFFMUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3ZDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0RBQWtELEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFL0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFlLENBQUM7SUFDMUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBRXBCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN0QyxDQUFDIn0=
|
package/dist/lib/environment.js
CHANGED
|
@@ -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
|
-
|
|
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==
|
package/dist/lib/view.d.ts
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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.
|
|
3
|
+
"version": "3.0.0-beta.30",
|
|
4
4
|
"description": "nunjucks view plugin for egg",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -43,19 +43,24 @@
|
|
|
43
43
|
"nunjucks": "^3.2.4"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"
|
|
46
|
+
"@eggjs/view": "4.0.0-beta.30",
|
|
47
|
+
"egg": "4.1.0-beta.30"
|
|
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",
|
|
52
|
-
"marked": "^
|
|
54
|
+
"marked": "^16.0.0",
|
|
53
55
|
"nunjucks-markdown": "^2.0.1",
|
|
54
|
-
"oxlint": "^1.
|
|
56
|
+
"oxlint": "^1.24.0",
|
|
55
57
|
"rimraf": "^6.0.1",
|
|
56
|
-
"tsdown": "0.15.
|
|
58
|
+
"tsdown": "0.15.9",
|
|
57
59
|
"typescript": "^5.9.3",
|
|
58
|
-
"vitest": "4.0.
|
|
60
|
+
"vitest": "4.0.1",
|
|
61
|
+
"@eggjs/mock": "7.0.0-beta.30",
|
|
62
|
+
"@eggjs/view": "4.0.0-beta.30",
|
|
63
|
+
"egg": "4.1.0-beta.30"
|
|
59
64
|
},
|
|
60
65
|
"engines": {
|
|
61
66
|
"node": ">=22.18.0"
|