@jsreport/jsreport-core 3.1.2-test.1 → 3.1.2-test.2
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/main/defaults.js +1 -1
- package/lib/main/reporter.js +6 -2
- package/lib/shared/reporter.js +0 -5
- package/lib/worker/render/executeEngine.js +18 -38
- package/lib/worker/render/moduleHelper.js +5 -7
- package/lib/worker/render/render.js +1 -9
- package/lib/worker/reporter.js +0 -1
- package/package.json +1 -1
package/lib/main/defaults.js
CHANGED
package/lib/main/reporter.js
CHANGED
|
@@ -435,6 +435,10 @@ class MainReporter extends Reporter {
|
|
|
435
435
|
}
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
+
generateRequestId () {
|
|
439
|
+
return generateRequestId()
|
|
440
|
+
}
|
|
441
|
+
|
|
438
442
|
registerWorkersManagerFactory (workersManagerFactory) {
|
|
439
443
|
this._workersManagerFactory = workersManagerFactory
|
|
440
444
|
}
|
|
@@ -455,12 +459,12 @@ class MainReporter extends Reporter {
|
|
|
455
459
|
clearInterval(this._reaperTimerRef)
|
|
456
460
|
}
|
|
457
461
|
|
|
458
|
-
await this.closeListeners.fire()
|
|
459
|
-
|
|
460
462
|
if (this._workersManager) {
|
|
461
463
|
await this._workersManager.close()
|
|
462
464
|
}
|
|
463
465
|
|
|
466
|
+
await this.closeListeners.fire()
|
|
467
|
+
|
|
464
468
|
if (this.documentStore) {
|
|
465
469
|
await this.documentStore.close()
|
|
466
470
|
}
|
package/lib/shared/reporter.js
CHANGED
|
@@ -6,7 +6,6 @@ const Folders = require('./folders')
|
|
|
6
6
|
const createOrExtendError = require('./createError')
|
|
7
7
|
const tempFilesHandler = require('./tempFilesHandler')
|
|
8
8
|
const encryption = require('./encryption')
|
|
9
|
-
const generateRequestId = require('../shared/generateRequestId')
|
|
10
9
|
|
|
11
10
|
class Reporter extends EventEmitter {
|
|
12
11
|
constructor (options) {
|
|
@@ -47,10 +46,6 @@ class Reporter extends EventEmitter {
|
|
|
47
46
|
return createOrExtendError(message, options)
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
generateRequestId () {
|
|
51
|
-
return generateRequestId()
|
|
52
|
-
}
|
|
53
|
-
|
|
54
49
|
/**
|
|
55
50
|
* Ensures that the jsreport auto-cleanup temp directory (options.tempAutoCleanupDirectory) exists by doing a mkdir call
|
|
56
51
|
*
|
|
@@ -10,51 +10,32 @@ const { nanoid } = require('nanoid')
|
|
|
10
10
|
|
|
11
11
|
module.exports = (reporter) => {
|
|
12
12
|
const cache = LRU(reporter.options.sandbox.cache || { max: 100 })
|
|
13
|
-
|
|
14
13
|
reporter.templatingEngines = { cache }
|
|
15
|
-
|
|
16
14
|
const executionFnParsedParamsMap = new Map()
|
|
17
15
|
|
|
18
|
-
const templatingEnginesEvaluate = async (mainCall, { engine, content, helpers, data }, { entity, entitySet }, req) => {
|
|
19
|
-
const engineImpl = reporter.extensionsManager.engines.find((e) => e.name === engine)
|
|
20
|
-
|
|
21
|
-
if (!engine) {
|
|
22
|
-
throw reporter.createError(`Engine '${engine}' not found. If this is a custom engine make sure it's properly installed from npm`, {
|
|
23
|
-
statusCode: 400
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (mainCall) {
|
|
28
|
-
executionFnParsedParamsMap.set(req.context.id, new Map())
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
const res = await executeEngine({
|
|
33
|
-
engine: engineImpl,
|
|
34
|
-
content,
|
|
35
|
-
helpers,
|
|
36
|
-
systemHelpers: req.context.systemHelpers,
|
|
37
|
-
data
|
|
38
|
-
}, { handleErrors: false, entity, entitySet }, req)
|
|
39
|
-
|
|
40
|
-
return res.content
|
|
41
|
-
} finally {
|
|
42
|
-
if (mainCall) {
|
|
43
|
-
executionFnParsedParamsMap.delete(req.context.id)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
reporter.templatingEngines.evaluate = (executionInfo, entityInfo, req) => templatingEnginesEvaluate(true, executionInfo, entityInfo, req)
|
|
49
|
-
|
|
50
16
|
reporter.extendProxy((proxy, req, {
|
|
51
17
|
runInSandbox,
|
|
52
18
|
context,
|
|
53
19
|
getTopLevelFunctions
|
|
54
20
|
}) => {
|
|
55
21
|
proxy.templatingEngines = {
|
|
56
|
-
evaluate: async (
|
|
57
|
-
|
|
22
|
+
evaluate: async ({ engine, content, helpers, data }, { entity, entitySet }) => {
|
|
23
|
+
const engineImpl = reporter.extensionsManager.engines.find((e) => e.name === engine)
|
|
24
|
+
|
|
25
|
+
if (!engine) {
|
|
26
|
+
throw reporter.createError(`Engine '${engine}' not found. If this is a custom engine make sure it's properly installed from npm`, {
|
|
27
|
+
statusCode: 400
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const res = await executeEngine({
|
|
32
|
+
engine: engineImpl,
|
|
33
|
+
content,
|
|
34
|
+
helpers,
|
|
35
|
+
systemHelpers: req.context.systemHelpers,
|
|
36
|
+
data
|
|
37
|
+
}, { handleErrors: false, entity, entitySet }, req)
|
|
38
|
+
return res.content
|
|
58
39
|
}
|
|
59
40
|
}
|
|
60
41
|
})
|
|
@@ -84,13 +65,12 @@ module.exports = (reporter) => {
|
|
|
84
65
|
|
|
85
66
|
async function executeEngine ({ engine, content, helpers, systemHelpers, data }, { handleErrors, entity, entitySet }, req) {
|
|
86
67
|
let entityPath
|
|
87
|
-
|
|
88
68
|
if (entity._id) {
|
|
89
69
|
entityPath = await reporter.folders.resolveEntityPath(entity, entitySet, req)
|
|
90
70
|
entityPath = entityPath.substring(0, entityPath.lastIndexOf('/'))
|
|
91
71
|
}
|
|
92
72
|
|
|
93
|
-
const joinedHelpers = systemHelpers + '\n' +
|
|
73
|
+
const joinedHelpers = systemHelpers + '\n' + helpers
|
|
94
74
|
const executionFnParsedParamsKey = `entity:${entity.shortid || 'anonymous'}:helpers:${joinedHelpers}`
|
|
95
75
|
|
|
96
76
|
const executionFn = async ({ require, console, topLevelFunctions }) => {
|
|
@@ -3,13 +3,11 @@ const path = require('path')
|
|
|
3
3
|
|
|
4
4
|
module.exports = (reporter) => {
|
|
5
5
|
let helpersScript
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
reporter.initializeListeners.add('core-helpers', async () => {
|
|
12
|
-
helpersScript = await fs.readFile(path.join(__dirname, '../../static/helpers.js'), 'utf8')
|
|
6
|
+
reporter.beforeRenderListeners.add('core-helpers', async (req) => {
|
|
7
|
+
if (!helpersScript) {
|
|
8
|
+
helpersScript = await fs.readFile(path.join(__dirname, '../../static/helpers.js'), 'utf8')
|
|
9
|
+
}
|
|
10
|
+
req.context.systemHelpers += helpersScript + '\n'
|
|
13
11
|
})
|
|
14
12
|
|
|
15
13
|
reporter.extendProxy((proxy, req, { safeRequire }) => {
|
|
@@ -54,14 +54,6 @@ module.exports = (reporter) => {
|
|
|
54
54
|
})
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
let helpersResults = await reporter.registerHelpersListeners.fire(request)
|
|
58
|
-
|
|
59
|
-
helpersResults = helpersResults.filter((result) => {
|
|
60
|
-
return result != null
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
request.context.systemHelpers = helpersResults.join('\n')
|
|
64
|
-
|
|
65
57
|
const engineProfilerEvent = reporter.profiler.emit({
|
|
66
58
|
type: 'operationStart',
|
|
67
59
|
subtype: 'engine',
|
|
@@ -121,6 +113,7 @@ module.exports = (reporter) => {
|
|
|
121
113
|
|
|
122
114
|
return async (req, parentReq) => {
|
|
123
115
|
const request = Request(req, parentReq)
|
|
116
|
+
request.context.systemHelpers = ''
|
|
124
117
|
const response = { meta: {} }
|
|
125
118
|
let renderStartProfilerEvent
|
|
126
119
|
try {
|
|
@@ -139,7 +132,6 @@ module.exports = (reporter) => {
|
|
|
139
132
|
|
|
140
133
|
request.context.reportCounter = ++reportCounter
|
|
141
134
|
request.context.startTimestamp = new Date().getTime()
|
|
142
|
-
request.context.systemHelpers = ''
|
|
143
135
|
|
|
144
136
|
if (parentReq == null) {
|
|
145
137
|
reporter.requestModulesCache.set(request.context.rootId, Object.create(null))
|
package/lib/worker/reporter.js
CHANGED
|
@@ -26,7 +26,6 @@ class WorkerReporter extends Reporter {
|
|
|
26
26
|
this._workerActions = new Map()
|
|
27
27
|
this._registerRenderAction()
|
|
28
28
|
|
|
29
|
-
this.registerHelpersListeners = this.createListenerCollection('registerHelpers')
|
|
30
29
|
this.afterTemplatingEnginesExecutedListeners = this.createListenerCollection('afterTemplatingEnginesExecuted')
|
|
31
30
|
this.validateRenderListeners = this.createListenerCollection('validateRender')
|
|
32
31
|
|