@enspirit/elo 0.9.1 → 0.9.3
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 +7 -6
- package/dist/src/compile.d.ts +10 -9
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +12 -11
- package/dist/src/compile.js.map +1 -1
- package/dist/src/elo.js +9 -1
- package/dist/src/elo.js.map +1 -1
- package/dist/src/eloc.js +9 -1
- package/dist/src/eloc.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -152,22 +152,23 @@ Options:
|
|
|
152
152
|
|
|
153
153
|
## Using Elo in JavaScript/TypeScript
|
|
154
154
|
|
|
155
|
-
The simplest way to use Elo is with the `compile()` function, which creates a callable JavaScript function from an Elo
|
|
155
|
+
The simplest way to use Elo is with the `compile()` function, which creates a callable JavaScript function from an Elo expression:
|
|
156
156
|
|
|
157
157
|
```typescript
|
|
158
158
|
import { compile } from '@enspirit/elo';
|
|
159
159
|
import { DateTime, Duration } from 'luxon';
|
|
160
160
|
|
|
161
|
-
// Compile
|
|
162
|
-
|
|
163
|
-
|
|
161
|
+
// Compile an expression to a callable function
|
|
162
|
+
// Every Elo expression takes _ (implicit input) as parameter
|
|
163
|
+
const addTen = compile<(x: number) => number>(
|
|
164
|
+
'_ + 10',
|
|
164
165
|
{ runtime: { DateTime, Duration } }
|
|
165
166
|
);
|
|
166
|
-
|
|
167
|
+
addTen(5); // => 15
|
|
167
168
|
|
|
168
169
|
// Temporal expressions work too
|
|
169
170
|
const inThisWeek = compile<(d: unknown) => boolean>(
|
|
170
|
-
'
|
|
171
|
+
'_ in SOW ... EOW',
|
|
171
172
|
{ runtime: { DateTime, Duration } }
|
|
172
173
|
);
|
|
173
174
|
inThisWeek(DateTime.now()); // => true or false
|
package/dist/src/compile.d.ts
CHANGED
|
@@ -21,26 +21,27 @@ export interface CompileOptions {
|
|
|
21
21
|
/**
|
|
22
22
|
* Compiles an Elo expression to a callable JavaScript function.
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* compile('fn(x ~> x in SOW ... EOW)')
|
|
24
|
+
* Every Elo expression compiles to a function that takes `_` (the implicit input) as parameter.
|
|
25
|
+
* You call the returned function with your input value.
|
|
27
26
|
*
|
|
28
27
|
* @example
|
|
29
28
|
* ```typescript
|
|
30
29
|
* import { compile } from '@enspirit/elo';
|
|
31
30
|
* import { DateTime, Duration } from 'luxon';
|
|
32
31
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* // Simple expression using _ (implicit input)
|
|
33
|
+
* const addTen = compile<(x: number) => number>(
|
|
34
|
+
* '_ + 10',
|
|
35
35
|
* { runtime: { DateTime, Duration } }
|
|
36
36
|
* );
|
|
37
|
-
*
|
|
37
|
+
* addTen(5); // => 15
|
|
38
38
|
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
39
|
+
* // Temporal expression
|
|
40
|
+
* const inThisWeek = compile<(d: unknown) => boolean>(
|
|
41
|
+
* '_ in SOW ... EOW',
|
|
41
42
|
* { runtime: { DateTime, Duration } }
|
|
42
43
|
* );
|
|
43
|
-
* inThisWeek(
|
|
44
|
+
* inThisWeek(DateTime.now()); // => true or false
|
|
44
45
|
* ```
|
|
45
46
|
*/
|
|
46
47
|
export declare function compile<T = unknown>(source: string, options?: CompileOptions): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CAEpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAQD
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CAEpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,OAAO,EACjC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,CAAC,CAgBH"}
|
package/dist/src/compile.js
CHANGED
|
@@ -17,26 +17,27 @@ const RUNTIME_DEPS = ['DateTime', 'Duration'];
|
|
|
17
17
|
/**
|
|
18
18
|
* Compiles an Elo expression to a callable JavaScript function.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* compile('fn(x ~> x in SOW ... EOW)')
|
|
20
|
+
* Every Elo expression compiles to a function that takes `_` (the implicit input) as parameter.
|
|
21
|
+
* You call the returned function with your input value.
|
|
23
22
|
*
|
|
24
23
|
* @example
|
|
25
24
|
* ```typescript
|
|
26
25
|
* import { compile } from '@enspirit/elo';
|
|
27
26
|
* import { DateTime, Duration } from 'luxon';
|
|
28
27
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* // Simple expression using _ (implicit input)
|
|
29
|
+
* const addTen = compile<(x: number) => number>(
|
|
30
|
+
* '_ + 10',
|
|
31
31
|
* { runtime: { DateTime, Duration } }
|
|
32
32
|
* );
|
|
33
|
-
*
|
|
33
|
+
* addTen(5); // => 15
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* // Temporal expression
|
|
36
|
+
* const inThisWeek = compile<(d: unknown) => boolean>(
|
|
37
|
+
* '_ in SOW ... EOW',
|
|
37
38
|
* { runtime: { DateTime, Duration } }
|
|
38
39
|
* );
|
|
39
|
-
* inThisWeek(
|
|
40
|
+
* inThisWeek(DateTime.now()); // => true or false
|
|
40
41
|
* ```
|
|
41
42
|
*/
|
|
42
43
|
function compile(source, options) {
|
|
@@ -48,8 +49,8 @@ function compile(source, options) {
|
|
|
48
49
|
const paramNames = RUNTIME_DEPS.join(', ');
|
|
49
50
|
const args = RUNTIME_DEPS.map(dep => runtime[dep]);
|
|
50
51
|
// Create a function that injects all dependencies into scope
|
|
51
|
-
// The compiled code is
|
|
52
|
-
const factory = new Function(paramNames, `return
|
|
52
|
+
// The compiled code is a function taking _ as input
|
|
53
|
+
const factory = new Function(paramNames, `return ${jsCode};`);
|
|
53
54
|
return factory(...args);
|
|
54
55
|
}
|
|
55
56
|
//# sourceMappingURL=compile.js.map
|
package/dist/src/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAsDH,0BAmBC;AAvED,qCAAiC;AACjC,uDAA6D;AAmB7D;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,OAAO,CACrB,MAAc,EACd,OAAwB;IAExB,MAAM,GAAG,GAAG,IAAA,cAAK,EAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,gCAAmB,EAAC,GAAG,CAAC,CAAC;IAExC,+BAA+B;IAC/B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IAEvC,kEAAkE;IAClE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnD,6DAA6D;IAC7D,oDAAoD;IACpD,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,UAAU,EAAE,UAAU,MAAM,GAAG,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,GAAG,IAAI,CAAM,CAAC;AAC/B,CAAC"}
|
package/dist/src/elo.js
CHANGED
|
@@ -5,6 +5,8 @@ const fs_1 = require("fs");
|
|
|
5
5
|
const parser_1 = require("./parser");
|
|
6
6
|
const javascript_1 = require("./compilers/javascript");
|
|
7
7
|
const luxon_1 = require("luxon");
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
9
|
+
const pkg = require('../../package.json');
|
|
8
10
|
function parseArgs(args) {
|
|
9
11
|
const options = {};
|
|
10
12
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -26,6 +28,11 @@ function parseArgs(args) {
|
|
|
26
28
|
printHelp();
|
|
27
29
|
process.exit(0);
|
|
28
30
|
break;
|
|
31
|
+
case '-v':
|
|
32
|
+
case '--version':
|
|
33
|
+
console.log(`Elo ${pkg.version}`);
|
|
34
|
+
process.exit(0);
|
|
35
|
+
break;
|
|
29
36
|
case '-':
|
|
30
37
|
// Read expression from stdin
|
|
31
38
|
options.inputFile = '-';
|
|
@@ -46,7 +53,7 @@ function parseArgs(args) {
|
|
|
46
53
|
}
|
|
47
54
|
function printHelp() {
|
|
48
55
|
console.log(`
|
|
49
|
-
Elo Evaluator (elo) - Evaluate Elo expressions
|
|
56
|
+
Elo Evaluator (elo) v${pkg.version} - Evaluate Elo expressions
|
|
50
57
|
|
|
51
58
|
Usage:
|
|
52
59
|
elo [options] [input-file]
|
|
@@ -55,6 +62,7 @@ Options:
|
|
|
55
62
|
-e, --expression <expr> Expression to evaluate (like ruby -e)
|
|
56
63
|
-d, --data <json> JSON input data for _ variable (or @file to read from file)
|
|
57
64
|
--stdin Read input data as JSON from stdin
|
|
65
|
+
-v, --version Show version number
|
|
58
66
|
-h, --help Show this help message
|
|
59
67
|
|
|
60
68
|
Examples:
|
package/dist/src/elo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elo.js","sourceRoot":"","sources":["../../src/elo.ts"],"names":[],"mappings":";;;AAEA,2BAAkC;AAClC,qCAAiC;AACjC,uDAAqE;AACrE,iCAA2C;
|
|
1
|
+
{"version":3,"file":"elo.js","sourceRoot":"","sources":["../../src/elo.ts"],"names":[],"mappings":"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"}
|
package/dist/src/eloc.js
CHANGED
|
@@ -7,6 +7,8 @@ const ruby_1 = require("./compilers/ruby");
|
|
|
7
7
|
const javascript_1 = require("./compilers/javascript");
|
|
8
8
|
const sql_1 = require("./compilers/sql");
|
|
9
9
|
const preludes_1 = require("./preludes");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
11
|
+
const pkg = require('../../package.json');
|
|
10
12
|
// Map CLI target names to prelude target names
|
|
11
13
|
function toPreludeTarget(target) {
|
|
12
14
|
return target === 'js' ? 'javascript' : target;
|
|
@@ -51,6 +53,11 @@ function parseArgs(args) {
|
|
|
51
53
|
printHelp();
|
|
52
54
|
process.exit(0);
|
|
53
55
|
break;
|
|
56
|
+
case '-v':
|
|
57
|
+
case '--version':
|
|
58
|
+
console.log(`Elo ${pkg.version}`);
|
|
59
|
+
process.exit(0);
|
|
60
|
+
break;
|
|
54
61
|
case '-':
|
|
55
62
|
// Read from stdin
|
|
56
63
|
options.inputFile = '-';
|
|
@@ -71,7 +78,7 @@ function parseArgs(args) {
|
|
|
71
78
|
}
|
|
72
79
|
function printHelp() {
|
|
73
80
|
console.log(`
|
|
74
|
-
Elo Compiler (eloc) - Compile Elo expressions to Ruby, JavaScript, or SQL
|
|
81
|
+
Elo Compiler (eloc) v${pkg.version} - Compile Elo expressions to Ruby, JavaScript, or SQL
|
|
75
82
|
|
|
76
83
|
Usage:
|
|
77
84
|
eloc [options] [input-file]
|
|
@@ -83,6 +90,7 @@ Options:
|
|
|
83
90
|
-p, --prelude Include necessary library imports/requires
|
|
84
91
|
--prelude-only Output only the prelude (no expression needed)
|
|
85
92
|
-f, --file <path> Output to file instead of stdout
|
|
93
|
+
-v, --version Show version number
|
|
86
94
|
-h, --help Show this help message
|
|
87
95
|
|
|
88
96
|
Examples:
|
package/dist/src/eloc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eloc.js","sourceRoot":"","sources":["../../src/eloc.ts"],"names":[],"mappings":";;;AAEA,2BAAiD;AACjD,qCAAiC;AACjC,2CAAyD;AACzD,uDAAqE;AACrE,yCAAuD;AACvD,yCAAiE;
|
|
1
|
+
{"version":3,"file":"eloc.js","sourceRoot":"","sources":["../../src/eloc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@enspirit/elo",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "A small expression language that compiles to Ruby, Javascript and PostgreSQL",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"bin"
|
|
10
10
|
],
|
|
11
11
|
"bin": {
|
|
12
|
+
"elo": "./bin/elo",
|
|
12
13
|
"eloc": "./bin/eloc"
|
|
13
14
|
},
|
|
14
15
|
"scripts": {
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"@types/node": "^20.10.0",
|
|
60
61
|
"@types/pg": "^8.10.0",
|
|
61
62
|
"codemirror": "^6.0.2",
|
|
62
|
-
"esbuild": "^0.
|
|
63
|
+
"esbuild": "^0.27.2",
|
|
63
64
|
"pg": "^8.11.0",
|
|
64
65
|
"typescript": "^5.3.0"
|
|
65
66
|
}
|