@ball-lang/encoder 0.1.0 → 1.3.5

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 ADDED
@@ -0,0 +1,47 @@
1
+ [![npm version](https://img.shields.io/npm/v/@ball-lang/encoder.svg)](https://www.npmjs.com/package/@ball-lang/encoder)
2
+
3
+ # @ball-lang/encoder
4
+
5
+ Encodes **TypeScript** source into a [Ball](https://github.com/ball-lang/ball) `Program` (the reverse of `@ball-lang/compiler`). Built on the TypeScript Compiler API; every construct — operators, control flow, closures, try/catch, string/list ops — routes through the universal `std` module (there is no `ts_std`). The Dart encoder (`dart/encoder/`, built on the `analyzer` package) is the canonical reference implementation.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install @ball-lang/encoder
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```ts
16
+ import { encode } from '@ball-lang/encoder';
17
+
18
+ const program = encode(`
19
+ function main(): void {
20
+ console.log("Hello, World!");
21
+ }
22
+ `);
23
+
24
+ // `program` is a Ball Program object (proto3-JSON-shaped) you can
25
+ // serialize, run through @ball-lang/engine, or compile back to a
26
+ // target language.
27
+ console.log(JSON.stringify(program, null, 2));
28
+ ```
29
+
30
+ ## API
31
+
32
+ - `encode(source: string, options?: EncodeOptions): Program` — encode TypeScript source to a Ball `Program`. With `{ strict: true }` it throws an `EncodeError` on any unhandled construct.
33
+ - `encodeWithWarnings(source, options?): EncodeResult` — same as `encode`, but returns `{ program, warnings }` so you can inspect non-fatal warnings (e.g. unhandled statement/expression kinds).
34
+ - `TsEncoder` — the underlying class.
35
+ - `EncodeError` — thrown in strict mode; carries the accumulated `warnings`.
36
+
37
+ `EncodeOptions`:
38
+
39
+ | Option | Type | Description |
40
+ |--------|------|-------------|
41
+ | `moduleName` | `string` | Name of the generated module. Default `"main"`. |
42
+ | `entryFunction` | `string` | Entry function name. Default `"main"`. |
43
+ | `strict` | `boolean` | Throw `EncodeError` on any unhandled construct. Default `false`. |
44
+
45
+ ## License
46
+
47
+ MIT
package/dist/encoder.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface EncodeOptions {
7
7
  export declare class TsEncoder {
8
8
  private stdFunctions;
9
9
  private warnings;
10
+ private strict;
10
11
  encode(source: string, options?: EncodeOptions): Program;
11
12
  private encodeFunction;
12
13
  private encodeBody;
@@ -14,7 +15,8 @@ export declare class TsEncoder {
14
15
  private encodeStatement;
15
16
  private encodeExpr;
16
17
  private encodeBinary;
17
- private looksLikeStringConcat;
18
+ private isProvablyString;
19
+ private isStringExpr;
18
20
  private encodePrefixUnary;
19
21
  private encodePostfixUnary;
20
22
  private encodeCall;
@@ -33,10 +35,25 @@ export declare class TsEncoder {
33
35
  private encodeTypeAlias;
34
36
  private encodeEnum;
35
37
  private encodeTaggedTemplate;
38
+ /**
39
+ * Map a JS/TS method name to its Ball std function equivalent.
40
+ * Returns null if no mapping exists (falls through to generic method call).
41
+ */
42
+ private mapMethodToStd;
36
43
  private stdCall;
37
- private buildStdModule;
44
+ private buildBaseModules;
45
+ private nullLiteral;
38
46
  private warn;
39
47
  getWarnings(): string[];
40
48
  }
49
+ export declare class EncodeError extends Error {
50
+ readonly warnings: string[];
51
+ constructor(message: string, warnings: string[]);
52
+ }
53
+ export interface EncodeResult {
54
+ program: Program;
55
+ warnings: string[];
56
+ }
41
57
  export declare function encode(source: string, options?: EncodeOptions): Program;
58
+ export declare function encodeWithWarnings(source: string, options?: EncodeOptions): EncodeResult;
42
59
  //# sourceMappingURL=encoder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2CD,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAgB;IAEhC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO;IAyF5D,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IA8GvB,OAAO,CAAC,UAAU;IAmJlB,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IA6DlB,OAAO,CAAC,YAAY;IAgDpB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,SAAS;IA0BjB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,WAAW;IA8DnB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,IAAI;IAIZ,WAAW,IAAI,MAAM,EAAE;CAGxB;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAE3E"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EAGR,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2CD,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAS;IAEvB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO;IA0F5D,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IA8HvB,OAAO,CAAC,UAAU;IA6JlB,OAAO,CAAC,YAAY;IA2DpB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,UAAU;IA8GlB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,SAAS;IAqCjB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,WAAW;IA8DnB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,oBAAoB;IAsB5B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmFtB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,IAAI;IAUZ,WAAW,IAAI,MAAM,EAAE;CAGxB;AAID,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAKhD;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAQD,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAE3E;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,YAAY,CAI5F"}