@jayfong/x-server 2.3.0 → 2.4.1
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/lib/_cjs/index.js +20 -4
- package/lib/_cjs/services/template_renderer.js +36 -0
- package/lib/_cjs/x.js +3 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +4 -2
- package/lib/services/template_renderer.d.ts +14 -0
- package/lib/services/template_renderer.js +29 -0
- package/lib/x.d.ts +1 -0
- package/lib/x.js +2 -1
- package/package.json +1 -1
package/lib/_cjs/index.js
CHANGED
|
@@ -202,6 +202,14 @@ Object.keys(_jwt).forEach(function (key) {
|
|
|
202
202
|
exports[key] = _jwt[key];
|
|
203
203
|
});
|
|
204
204
|
|
|
205
|
+
var _log = require("./services/log");
|
|
206
|
+
|
|
207
|
+
Object.keys(_log).forEach(function (key) {
|
|
208
|
+
if (key === "default" || key === "__esModule") return;
|
|
209
|
+
if (key in exports && exports[key] === _log[key]) return;
|
|
210
|
+
exports[key] = _log[key];
|
|
211
|
+
});
|
|
212
|
+
|
|
205
213
|
var _mail = require("./services/mail");
|
|
206
214
|
|
|
207
215
|
Object.keys(_mail).forEach(function (key) {
|
|
@@ -242,12 +250,12 @@ Object.keys(_sensitive_words).forEach(function (key) {
|
|
|
242
250
|
exports[key] = _sensitive_words[key];
|
|
243
251
|
});
|
|
244
252
|
|
|
245
|
-
var
|
|
253
|
+
var _template_renderer = require("./services/template_renderer");
|
|
246
254
|
|
|
247
|
-
Object.keys(
|
|
255
|
+
Object.keys(_template_renderer).forEach(function (key) {
|
|
248
256
|
if (key === "default" || key === "__esModule") return;
|
|
249
|
-
if (key in exports && exports[key] ===
|
|
250
|
-
exports[key] =
|
|
257
|
+
if (key in exports && exports[key] === _template_renderer[key]) return;
|
|
258
|
+
exports[key] = _template_renderer[key];
|
|
251
259
|
});
|
|
252
260
|
|
|
253
261
|
var _index = require("./types/index");
|
|
@@ -258,6 +266,14 @@ Object.keys(_index).forEach(function (key) {
|
|
|
258
266
|
exports[key] = _index[key];
|
|
259
267
|
});
|
|
260
268
|
|
|
269
|
+
var _x = require("./x");
|
|
270
|
+
|
|
271
|
+
Object.keys(_x).forEach(function (key) {
|
|
272
|
+
if (key === "default" || key === "__esModule") return;
|
|
273
|
+
if (key in exports && exports[key] === _x[key]) return;
|
|
274
|
+
exports[key] = _x[key];
|
|
275
|
+
});
|
|
276
|
+
|
|
261
277
|
var _models = require(".x/models");
|
|
262
278
|
|
|
263
279
|
Object.keys(_models).forEach(function (key) {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.TemplateRendererService = void 0;
|
|
5
|
+
|
|
6
|
+
class TemplateRendererService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.serviceName = 'templateRenderer';
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
render(text, data, options) {
|
|
12
|
+
const keys = Object.keys(data);
|
|
13
|
+
|
|
14
|
+
for (const key of keys) {
|
|
15
|
+
text = typeof data[key] === 'function' ? text.replace(new RegExp(`\\{${key}(:.+?)?\\}`, 'g'), (_, params) => {
|
|
16
|
+
return data[key].call(null, ...(params ? params.substring(1) : '').split(','));
|
|
17
|
+
}) : text.replaceAll(`{${key}}`, data[key]);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (options != null && options.code) {
|
|
21
|
+
text = text.replace(/\{\{(.+?)\}\}/g, (_, code) => {
|
|
22
|
+
return eval(`
|
|
23
|
+
(() => {
|
|
24
|
+
const {${keys.join(',')}} = arguments[1];
|
|
25
|
+
return ${code};
|
|
26
|
+
})()
|
|
27
|
+
`);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return text;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.TemplateRendererService = TemplateRendererService;
|
package/lib/_cjs/x.js
CHANGED
|
@@ -15,6 +15,8 @@ var _dispose = require("./services/dispose");
|
|
|
15
15
|
|
|
16
16
|
var _log = require("./services/log");
|
|
17
17
|
|
|
18
|
+
var _template_renderer = require("./services/template_renderer");
|
|
19
|
+
|
|
18
20
|
const env = JSON.parse(process.env.X_SERVER_ENVS || '{}');
|
|
19
21
|
const x = {
|
|
20
22
|
appId: env.APP_ID,
|
|
@@ -33,4 +35,4 @@ _fsExtra.default.ensureDirSync(x.dataDir);
|
|
|
33
35
|
|
|
34
36
|
x.register(new _dispose.DisposeService({
|
|
35
37
|
disposeOnExit: true
|
|
36
|
-
}), new _log.LogService());
|
|
38
|
+
}), new _log.LogService(), new _template_renderer.TemplateRendererService());
|
package/lib/index.d.ts
CHANGED
|
@@ -23,11 +23,13 @@ export * from './services/captcha';
|
|
|
23
23
|
export * from './services/dingtalk';
|
|
24
24
|
export * from './services/dispose';
|
|
25
25
|
export * from './services/jwt';
|
|
26
|
+
export * from './services/log';
|
|
26
27
|
export * from './services/mail';
|
|
27
28
|
export * from './services/pay';
|
|
28
29
|
export * from './services/rate_limit';
|
|
29
30
|
export * from './services/redis';
|
|
30
31
|
export * from './services/sensitive_words';
|
|
31
|
-
export * from './
|
|
32
|
+
export * from './services/template_renderer';
|
|
32
33
|
export * from './types/index';
|
|
34
|
+
export * from './x';
|
|
33
35
|
export * from '.x/models';
|
package/lib/index.js
CHANGED
|
@@ -24,13 +24,15 @@ export * from "./services/captcha";
|
|
|
24
24
|
export * from "./services/dingtalk";
|
|
25
25
|
export * from "./services/dispose";
|
|
26
26
|
export * from "./services/jwt";
|
|
27
|
+
export * from "./services/log";
|
|
27
28
|
export * from "./services/mail";
|
|
28
29
|
export * from "./services/pay";
|
|
29
30
|
export * from "./services/rate_limit";
|
|
30
31
|
export * from "./services/redis";
|
|
31
32
|
export * from "./services/sensitive_words";
|
|
33
|
+
export * from "./services/template_renderer";
|
|
34
|
+
export * from "./types/index";
|
|
32
35
|
export * from "./x"; // @endindex
|
|
33
|
-
|
|
34
|
-
export * from "./types/index"; // @ts-ignore
|
|
36
|
+
// @ts-ignore
|
|
35
37
|
|
|
36
38
|
export * from '.x/models';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseService } from './base';
|
|
2
|
+
export interface TemplateRendererServiceRenderOptions {
|
|
3
|
+
/** 是否启用代码渲染 */
|
|
4
|
+
code?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class TemplateRendererService implements BaseService {
|
|
7
|
+
serviceName: string;
|
|
8
|
+
render(text: string, data: Record<string, any>, options?: TemplateRendererServiceRenderOptions): string;
|
|
9
|
+
}
|
|
10
|
+
declare module '../x' {
|
|
11
|
+
interface X {
|
|
12
|
+
templateRenderer: TemplateRendererService;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export class TemplateRendererService {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.serviceName = 'templateRenderer';
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
render(text, data, options) {
|
|
7
|
+
const keys = Object.keys(data);
|
|
8
|
+
|
|
9
|
+
for (const key of keys) {
|
|
10
|
+
text = typeof data[key] === 'function' ? text.replace(new RegExp(`\\{${key}(:.+?)?\\}`, 'g'), (_, params) => {
|
|
11
|
+
return data[key].call(null, ...(params ? params.substring(1) : '').split(','));
|
|
12
|
+
}) : text.replaceAll(`{${key}}`, data[key]);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (options != null && options.code) {
|
|
16
|
+
text = text.replace(/\{\{(.+?)\}\}/g, (_, code) => {
|
|
17
|
+
return eval(`
|
|
18
|
+
(() => {
|
|
19
|
+
const {${keys.join(',')}} = arguments[1];
|
|
20
|
+
return ${code};
|
|
21
|
+
})()
|
|
22
|
+
`);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return text;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
}
|
package/lib/x.d.ts
CHANGED
package/lib/x.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'os';
|
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import { DisposeService } from "./services/dispose";
|
|
5
5
|
import { LogService } from "./services/log";
|
|
6
|
+
import { TemplateRendererService } from "./services/template_renderer";
|
|
6
7
|
const env = JSON.parse(process.env.X_SERVER_ENVS || '{}');
|
|
7
8
|
export const x = {
|
|
8
9
|
appId: env.APP_ID,
|
|
@@ -18,4 +19,4 @@ export const x = {
|
|
|
18
19
|
fs.ensureDirSync(x.dataDir);
|
|
19
20
|
x.register(new DisposeService({
|
|
20
21
|
disposeOnExit: true
|
|
21
|
-
}), new LogService());
|
|
22
|
+
}), new LogService(), new TemplateRendererService());
|