@macroforge/shared 0.1.40 → 0.1.42

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/dist/config.d.ts CHANGED
@@ -7,6 +7,22 @@
7
7
  * Supported config file names in order of precedence.
8
8
  */
9
9
  export declare const CONFIG_FILES: readonly ["macroforge.config.ts", "macroforge.config.mts", "macroforge.config.js", "macroforge.config.mjs", "macroforge.config.cjs"];
10
+ /**
11
+ * Return type style for generated macro code.
12
+ *
13
+ * - `'vanilla'` (default): Plain TypeScript discriminated unions
14
+ * - Deserialize: `{ success: true; value: T } | { success: false; errors: FieldError[] }`
15
+ * - PartialOrd: `number | null`
16
+ *
17
+ * - `'custom'`: Uses `@rydshift/mirror` types
18
+ * - Deserialize: `Result<T, Array<FieldError>>`
19
+ * - PartialOrd: `Option<number>`
20
+ *
21
+ * - `'effect'`: Uses Effect library types
22
+ * - Deserialize: `Exit<FieldError[], T>`
23
+ * - PartialOrd: `Option.Option<number>`
24
+ */
25
+ export type ReturnTypesMode = "vanilla" | "custom" | "effect";
10
26
  /**
11
27
  * Result from parsing a config file.
12
28
  */
@@ -15,6 +31,8 @@ export interface ConfigLoadResult {
15
31
  generateConvenienceConst: boolean;
16
32
  hasForeignTypes: boolean;
17
33
  foreignTypeCount: number;
34
+ /** Return types mode as a string. Will be "vanilla", "custom", or "effect". */
35
+ returnTypes: string;
18
36
  }
19
37
  /**
20
38
  * Configuration options loaded from `macroforge.config.js` (or .ts/.mjs/.cjs).
@@ -52,6 +70,14 @@ export interface MacroConfig {
52
70
  * Whether the config has foreign type handlers defined.
53
71
  */
54
72
  hasForeignTypes?: boolean;
73
+ /**
74
+ * Return type style for generated macro code.
75
+ *
76
+ * - `'vanilla'` (default): Plain TypeScript discriminated unions
77
+ * - `'custom'`: Uses `@rydshift/mirror` Result/Option types
78
+ * - `'effect'`: Uses Effect library Exit/Option types
79
+ */
80
+ returnTypes?: ReturnTypesMode;
55
81
  }
56
82
  /**
57
83
  * Function type for loading config content.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,eAAO,MAAM,YAAY,sIAMf,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,KACb,gBAAgB,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,WAAW,CA8Bb"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,eAAO,MAAM,YAAY,sIAMf,CAAC;AAEX;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,wBAAwB,EAAE,OAAO,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,KACb,gBAAgB,CAAC;AAEtB;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB9D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,WAAW,CA+Bb"}
package/dist/config.js CHANGED
@@ -96,6 +96,7 @@ export function loadMacroConfig(startDir, loadConfigFn) {
96
96
  generateConvenienceConst: result.generateConvenienceConst,
97
97
  configPath,
98
98
  hasForeignTypes: result.hasForeignTypes,
99
+ returnTypes: result.returnTypes,
99
100
  };
100
101
  }
101
102
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AA8DX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,YAA2B;IAE3B,MAAM,QAAQ,GAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAExD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,GAAG,QAAQ;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,sBAAsB;IACtB,uBAAuB;IACvB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACf,CAAC;AA0FX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC;IAEvB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,YAA2B;IAE3B,MAAM,QAAQ,GAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAExD,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,+DAA+D;IAC/D,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAEjD,OAAO;gBACL,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;gBACzD,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,WAAW,EAAE,MAAM,CAAC,WAA8B;aACnD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,OAAO;QACL,GAAG,QAAQ;QACX,UAAU;KACX,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@macroforge/shared",
3
- "version": "0.1.40",
3
+ "version": "0.1.42",
4
4
  "description": "Shared utilities for Macroforge plugins",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,12 +24,13 @@
24
24
  "cleanbuild": "npm run clean && npm run build"
25
25
  },
26
26
  "dependencies": {
27
- "macroforge": "^0.1.40"
27
+ "macroforge": "^0.1.42"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "typescript": ">=5.0.0"
31
31
  },
32
32
  "devDependencies": {
33
+ "@types/node": "^22.10.2",
33
34
  "typescript": "^5.9.3"
34
35
  }
35
36
  }