@gorules/zen-engine 0.16.0 → 0.18.0

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.
Files changed (3) hide show
  1. package/index.d.ts +43 -4
  2. package/index.js +7 -1
  3. package/package.json +7 -7
package/index.d.ts CHANGED
@@ -8,18 +8,57 @@ export interface ZenEvaluateOptions {
8
8
  trace?: boolean
9
9
  }
10
10
  export interface ZenEngineOptions {
11
- loader?: (key: string) => Promise<Buffer>
11
+ loader?: (key: string) => Promise<Buffer | ZenDecisionContent>
12
+ customHandler?: (request: ZenEngineHandlerRequest) => Promise<ZenEngineHandlerResponse>
12
13
  }
14
+ export function evaluateExpressionSync(expression: string, context?: any | undefined | null): any
15
+ export function evaluateUnaryExpressionSync(expression: string, context: any): boolean
16
+ export function renderTemplateSync(template: string, context: any): any
13
17
  export function evaluateExpression(expression: string, context?: any | undefined | null): Promise<any>
14
18
  export function evaluateUnaryExpression(expression: string, context: any): Promise<boolean>
19
+ export function renderTemplate(template: string, context: any): Promise<any>
20
+ export interface ZenEngineTrace {
21
+ id: string
22
+ name: string
23
+ input: any
24
+ output: any
25
+ performance?: string
26
+ traceData?: any
27
+ }
28
+ export interface ZenEngineResponse {
29
+ performance: string
30
+ result: any
31
+ trace?: Record<string, ZenEngineTrace>
32
+ }
33
+ export interface ZenEngineHandlerResponse {
34
+ output: any
35
+ traceData?: any
36
+ }
37
+ export interface DecisionNode {
38
+ id: string
39
+ name: string
40
+ kind: string
41
+ config: any
42
+ }
43
+ export class ZenDecisionContent {
44
+ constructor(content: Buffer | object)
45
+ toBuffer(): Buffer
46
+ }
15
47
  export class ZenDecision {
16
48
  constructor()
17
- evaluate(context: any, opts?: ZenEvaluateOptions | undefined | null): Promise<any>
49
+ evaluate(context: any, opts?: ZenEvaluateOptions | undefined | null): Promise<ZenEngineResponse>
18
50
  validate(): void
19
51
  }
20
52
  export class ZenEngine {
21
53
  constructor(options?: ZenEngineOptions | undefined | null)
22
- evaluate(key: string, context: any, opts?: ZenEvaluateOptions | undefined | null): Promise<any>
23
- createDecision(content: Buffer): ZenDecision
54
+ evaluate(key: string, context: any, opts?: ZenEvaluateOptions | undefined | null): Promise<ZenEngineResponse>
55
+ createDecision(content: ZenDecisionContent | Buffer | object): ZenDecision
24
56
  getDecision(key: string): Promise<ZenDecision>
25
57
  }
58
+ export class ZenEngineHandlerRequest {
59
+ input: any
60
+ node: DecisionNode
61
+ constructor()
62
+ getField(path: string): unknown
63
+ getFieldRaw(path: string): unknown
64
+ }
package/index.js CHANGED
@@ -281,9 +281,15 @@ if (!nativeBinding) {
281
281
  throw new Error(`Failed to load native binding`)
282
282
  }
283
283
 
284
- const { ZenDecision, ZenEngine, evaluateExpression, evaluateUnaryExpression } = nativeBinding
284
+ const { ZenDecisionContent, ZenDecision, ZenEngine, evaluateExpressionSync, evaluateUnaryExpressionSync, renderTemplateSync, evaluateExpression, evaluateUnaryExpression, renderTemplate, ZenEngineHandlerRequest } = nativeBinding
285
285
 
286
+ module.exports.ZenDecisionContent = ZenDecisionContent
286
287
  module.exports.ZenDecision = ZenDecision
287
288
  module.exports.ZenEngine = ZenEngine
289
+ module.exports.evaluateExpressionSync = evaluateExpressionSync
290
+ module.exports.evaluateUnaryExpressionSync = evaluateUnaryExpressionSync
291
+ module.exports.renderTemplateSync = renderTemplateSync
288
292
  module.exports.evaluateExpression = evaluateExpression
289
293
  module.exports.evaluateUnaryExpression = evaluateUnaryExpression
294
+ module.exports.renderTemplate = renderTemplate
295
+ module.exports.ZenEngineHandlerRequest = ZenEngineHandlerRequest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gorules/zen-engine",
3
- "version": "0.16.0",
3
+ "version": "0.18.0",
4
4
  "main": "index.js",
5
5
  "types": "./index.d.ts",
6
6
  "license": "MIT",
@@ -79,12 +79,12 @@
79
79
  "prepublishOnly": "napi prepublish",
80
80
  "version": "napi version"
81
81
  },
82
- "gitHead": "d10fa27e82c7eb1d7d45bdd5ef40f539669a9f3f",
82
+ "gitHead": "64648aa4d553a47982f284c6de4d5310494392ef",
83
83
  "optionalDependencies": {
84
- "@gorules/zen-engine-darwin-x64": "0.16.0",
85
- "@gorules/zen-engine-linux-x64-gnu": "0.16.0",
86
- "@gorules/zen-engine-win32-x64-msvc": "0.16.0",
87
- "@gorules/zen-engine-linux-arm64-gnu": "0.16.0",
88
- "@gorules/zen-engine-darwin-arm64": "0.16.0"
84
+ "@gorules/zen-engine-darwin-x64": "0.18.0",
85
+ "@gorules/zen-engine-linux-x64-gnu": "0.18.0",
86
+ "@gorules/zen-engine-win32-x64-msvc": "0.18.0",
87
+ "@gorules/zen-engine-linux-arm64-gnu": "0.18.0",
88
+ "@gorules/zen-engine-darwin-arm64": "0.18.0"
89
89
  }
90
90
  }