tywrap 0.5.0 → 0.6.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 (169) hide show
  1. package/dist/cli.js +8 -6
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +236 -147
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/core/annotation-parser.d.ts.map +1 -1
  7. package/dist/core/annotation-parser.js +93 -83
  8. package/dist/core/annotation-parser.js.map +1 -1
  9. package/dist/core/discovery.d.ts.map +1 -1
  10. package/dist/core/discovery.js +26 -0
  11. package/dist/core/discovery.js.map +1 -1
  12. package/dist/core/emit-call.d.ts +58 -0
  13. package/dist/core/emit-call.d.ts.map +1 -0
  14. package/dist/core/emit-call.js +103 -0
  15. package/dist/core/emit-call.js.map +1 -0
  16. package/dist/core/generator.d.ts +2 -0
  17. package/dist/core/generator.d.ts.map +1 -1
  18. package/dist/core/generator.js +54 -211
  19. package/dist/core/generator.js.map +1 -1
  20. package/dist/core/mapper.d.ts.map +1 -1
  21. package/dist/core/mapper.js +118 -104
  22. package/dist/core/mapper.js.map +1 -1
  23. package/dist/index.d.ts +6 -25
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +9 -31
  26. package/dist/index.js.map +1 -1
  27. package/dist/runtime/bounded-context.d.ts +2 -2
  28. package/dist/runtime/bounded-context.js +2 -2
  29. package/dist/runtime/{safe-codec.d.ts → bridge-codec.d.ts} +11 -11
  30. package/dist/runtime/bridge-codec.d.ts.map +1 -0
  31. package/dist/runtime/{safe-codec.js → bridge-codec.js} +26 -26
  32. package/dist/runtime/bridge-codec.js.map +1 -0
  33. package/dist/runtime/{http-io.d.ts → http-transport.d.ts} +6 -6
  34. package/dist/runtime/http-transport.d.ts.map +1 -0
  35. package/dist/runtime/{http-io.js → http-transport.js} +3 -3
  36. package/dist/runtime/http-transport.js.map +1 -0
  37. package/dist/runtime/http.d.ts +3 -3
  38. package/dist/runtime/http.d.ts.map +1 -1
  39. package/dist/runtime/http.js +4 -4
  40. package/dist/runtime/http.js.map +1 -1
  41. package/dist/runtime/index.d.ts +9 -1
  42. package/dist/runtime/index.d.ts.map +1 -1
  43. package/dist/runtime/index.js +9 -1
  44. package/dist/runtime/index.js.map +1 -1
  45. package/dist/runtime/node.d.ts +6 -6
  46. package/dist/runtime/node.d.ts.map +1 -1
  47. package/dist/runtime/node.js +7 -7
  48. package/dist/runtime/node.js.map +1 -1
  49. package/dist/runtime/pooled-transport.d.ts +11 -11
  50. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  51. package/dist/runtime/pooled-transport.js +10 -10
  52. package/dist/runtime/pooled-transport.js.map +1 -1
  53. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
  54. package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
  55. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
  56. package/dist/runtime/{pyodide-io.d.ts → pyodide-transport.d.ts} +8 -8
  57. package/dist/runtime/pyodide-transport.d.ts.map +1 -0
  58. package/dist/runtime/{pyodide-io.js → pyodide-transport.js} +5 -5
  59. package/dist/runtime/pyodide-transport.js.map +1 -0
  60. package/dist/runtime/pyodide.d.ts +3 -3
  61. package/dist/runtime/pyodide.d.ts.map +1 -1
  62. package/dist/runtime/pyodide.js +5 -5
  63. package/dist/runtime/pyodide.js.map +1 -1
  64. package/dist/runtime/rpc-client.d.ts +5 -5
  65. package/dist/runtime/rpc-client.d.ts.map +1 -1
  66. package/dist/runtime/rpc-client.js +6 -7
  67. package/dist/runtime/rpc-client.js.map +1 -1
  68. package/dist/runtime/{process-io.d.ts → subprocess-transport.d.ts} +9 -9
  69. package/dist/runtime/subprocess-transport.d.ts.map +1 -0
  70. package/dist/runtime/{process-io.js → subprocess-transport.js} +6 -6
  71. package/dist/runtime/subprocess-transport.js.map +1 -0
  72. package/dist/runtime/{worker-pool.d.ts → transport-pool.d.ts} +15 -15
  73. package/dist/runtime/transport-pool.d.ts.map +1 -0
  74. package/dist/runtime/{worker-pool.js → transport-pool.js} +6 -6
  75. package/dist/runtime/transport-pool.js.map +1 -0
  76. package/dist/runtime/transport.d.ts +14 -8
  77. package/dist/runtime/transport.d.ts.map +1 -1
  78. package/dist/runtime/transport.js +10 -4
  79. package/dist/runtime/transport.js.map +1 -1
  80. package/dist/types/index.d.ts +10 -1
  81. package/dist/types/index.d.ts.map +1 -1
  82. package/dist/tywrap.d.ts.map +1 -1
  83. package/dist/tywrap.js +1 -3
  84. package/dist/tywrap.js.map +1 -1
  85. package/dist/utils/cache.d.ts +2 -2
  86. package/dist/utils/cache.d.ts.map +1 -1
  87. package/dist/utils/cache.js +2 -2
  88. package/dist/utils/cache.js.map +1 -1
  89. package/dist/utils/codec.d.ts +1 -1
  90. package/dist/utils/codec.d.ts.map +1 -1
  91. package/dist/utils/codec.js +181 -182
  92. package/dist/utils/codec.js.map +1 -1
  93. package/dist/version.d.ts +12 -0
  94. package/dist/version.d.ts.map +1 -0
  95. package/dist/version.js +12 -0
  96. package/dist/version.js.map +1 -0
  97. package/package.json +3 -5
  98. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  99. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  100. package/runtime/python_bridge.py +54 -6
  101. package/runtime/safe_codec.py +8 -8
  102. package/runtime/tywrap_bridge_core.py +159 -23
  103. package/src/cli.ts +8 -12
  104. package/src/config/index.ts +271 -165
  105. package/src/core/annotation-parser.ts +112 -105
  106. package/src/core/discovery.ts +32 -0
  107. package/src/core/emit-call.ts +171 -0
  108. package/src/core/generator.ts +67 -263
  109. package/src/core/mapper.ts +125 -110
  110. package/src/index.ts +11 -68
  111. package/src/runtime/bounded-context.ts +2 -2
  112. package/src/runtime/{safe-codec.ts → bridge-codec.ts} +27 -27
  113. package/src/runtime/{http-io.ts → http-transport.ts} +5 -5
  114. package/src/runtime/http.ts +5 -5
  115. package/src/runtime/index.ts +23 -1
  116. package/src/runtime/node.ts +15 -15
  117. package/src/runtime/pooled-transport.ts +15 -15
  118. package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
  119. package/src/runtime/{pyodide-io.ts → pyodide-transport.ts} +7 -7
  120. package/src/runtime/pyodide.ts +6 -6
  121. package/src/runtime/rpc-client.ts +12 -8
  122. package/src/runtime/{process-io.ts → subprocess-transport.ts} +8 -8
  123. package/src/runtime/{worker-pool.ts → transport-pool.ts} +26 -26
  124. package/src/runtime/transport.ts +15 -8
  125. package/src/types/index.ts +10 -1
  126. package/src/tywrap.ts +1 -3
  127. package/src/utils/cache.ts +2 -2
  128. package/src/utils/codec.ts +217 -196
  129. package/src/version.ts +12 -0
  130. package/dist/core/analyzer.d.ts +0 -64
  131. package/dist/core/analyzer.d.ts.map +0 -1
  132. package/dist/core/analyzer.js +0 -710
  133. package/dist/core/analyzer.js.map +0 -1
  134. package/dist/runtime/http-io.d.ts.map +0 -1
  135. package/dist/runtime/http-io.js.map +0 -1
  136. package/dist/runtime/optimized-node.d.ts +0 -23
  137. package/dist/runtime/optimized-node.d.ts.map +0 -1
  138. package/dist/runtime/optimized-node.js +0 -23
  139. package/dist/runtime/optimized-node.js.map +0 -1
  140. package/dist/runtime/process-io.d.ts.map +0 -1
  141. package/dist/runtime/process-io.js.map +0 -1
  142. package/dist/runtime/protocol.d.ts +0 -3
  143. package/dist/runtime/protocol.d.ts.map +0 -1
  144. package/dist/runtime/protocol.js +0 -3
  145. package/dist/runtime/protocol.js.map +0 -1
  146. package/dist/runtime/pyodide-io.d.ts.map +0 -1
  147. package/dist/runtime/pyodide-io.js.map +0 -1
  148. package/dist/runtime/safe-codec.d.ts.map +0 -1
  149. package/dist/runtime/safe-codec.js.map +0 -1
  150. package/dist/runtime/worker-pool.d.ts.map +0 -1
  151. package/dist/runtime/worker-pool.js.map +0 -1
  152. package/dist/utils/bundle-optimizer.d.ts +0 -182
  153. package/dist/utils/bundle-optimizer.d.ts.map +0 -1
  154. package/dist/utils/bundle-optimizer.js +0 -680
  155. package/dist/utils/bundle-optimizer.js.map +0 -1
  156. package/dist/utils/memory-profiler.d.ts +0 -123
  157. package/dist/utils/memory-profiler.d.ts.map +0 -1
  158. package/dist/utils/memory-profiler.js +0 -426
  159. package/dist/utils/memory-profiler.js.map +0 -1
  160. package/dist/utils/parallel-processor.d.ts +0 -146
  161. package/dist/utils/parallel-processor.d.ts.map +0 -1
  162. package/dist/utils/parallel-processor.js +0 -707
  163. package/dist/utils/parallel-processor.js.map +0 -1
  164. package/src/core/analyzer.ts +0 -824
  165. package/src/runtime/optimized-node.ts +0 -25
  166. package/src/runtime/protocol.ts +0 -2
  167. package/src/utils/bundle-optimizer.ts +0 -876
  168. package/src/utils/memory-profiler.ts +0 -582
  169. package/src/utils/parallel-processor.ts +0 -955
@@ -2,6 +2,7 @@
2
2
  * CodeGenerator - TypeScript wrapper generation
3
3
  */
4
4
  import { globalCache } from '../utils/cache.js';
5
+ import { emitArgGuards, emitCallPrelude, } from './emit-call.js';
5
6
  import { TypeMapper } from './mapper.js';
6
7
  export class CodeGenerator {
7
8
  mapper;
@@ -262,6 +263,13 @@ export class CodeGenerator {
262
263
  })();
263
264
  return `(${base} && (${keyCheck}))`;
264
265
  }
266
+ /** Helpers passed to the shared call-emission module (they depend on `this`). */
267
+ callEmitHelpers() {
268
+ return {
269
+ escapeIdentifier: (name) => this.escapeIdentifier(name),
270
+ renderLooksLikeKwargsExpr: (valueExpr, options) => this.renderLooksLikeKwargsExpr(valueExpr, options),
271
+ };
272
+ }
265
273
  generateFunctionWrapper(func, moduleName, annotatedJSDoc = false) {
266
274
  const jsdoc = this.generateJsDoc(func.docstring, annotatedJSDoc ? func.parameters.map(p => String(p.type)) : undefined);
267
275
  const filteredParams = func.parameters.filter(p => p.name !== 'self' && p.name !== 'cls');
@@ -386,79 +394,24 @@ export class CodeGenerator {
386
394
  }
387
395
  }
388
396
  const overloadDecl = overloads.length > 0 ? `${overloads.join('\n')}\n` : '';
389
- const guardLines = [];
390
- if (hasKwArgs && positionalOnlyNames.length > 0) {
391
- guardLines.push(` const __positionalOnly = ${JSON.stringify(positionalOnlyNames)} as const;`);
392
- guardLines.push(` for (const key of __positionalOnly) {`);
393
- guardLines.push(` if (__kwargs && Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
394
- guardLines.push(` throw new Error(\`${func.name} does not accept positional-only argument "\${key}" as a keyword argument\`);`);
395
- guardLines.push(` }`);
396
- guardLines.push(` }`);
397
- }
398
- if (hasKwArgs && requiredKwOnlyNames.length > 0) {
399
- guardLines.push(` const __requiredKwOnly = ${JSON.stringify(requiredKwOnlyNames)} as const;`);
400
- guardLines.push(` const __missing: string[] = [];`);
401
- guardLines.push(` for (const key of __requiredKwOnly) {`);
402
- guardLines.push(` if (!__kwargs || !Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
403
- guardLines.push(` __missing.push(key);`);
404
- guardLines.push(` }`);
405
- guardLines.push(` }`);
406
- guardLines.push(` if (__missing.length > 0) {`);
407
- guardLines.push(` throw new Error(\`Missing required keyword-only arguments for ${func.name}: \${__missing.join(', ')}\`);`);
408
- guardLines.push(` }`);
409
- }
410
- const guards = guardLines.length > 0 ? `${guardLines.join('\n')}\n` : '';
411
397
  const firstOptionalPosIndex = positionalParams.findIndex(p => p.optional);
412
398
  const requiredPosCount = firstOptionalPosIndex >= 0 ? firstOptionalPosIndex : positionalParams.length;
413
- const callPreludeLines = [];
414
- if (hasKwArgs) {
415
- callPreludeLines.push(` let __kwargs = kwargs;`);
416
- }
417
- const positionalArgExprs = positionalParams.map(p => this.escapeIdentifier(p.name));
418
- callPreludeLines.push(` const __args: unknown[] = [${positionalArgExprs.join(', ')}];`);
419
- if (requiredPosCount < positionalParams.length) {
420
- callPreludeLines.push(` while (__args.length > ${requiredPosCount} && __args[__args.length - 1] === undefined) {`);
421
- callPreludeLines.push(` __args.pop();`);
422
- callPreludeLines.push(` }`);
423
- }
424
- if (hasKwArgs && requiredPosCount < positionalParams.length) {
425
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr('__candidate', {
426
- keywordOnlyNames,
427
- requiredKwOnlyNames,
428
- hasVarKwArgs,
429
- });
430
- callPreludeLines.push(` if (__kwargs === undefined && __args.length > ${requiredPosCount}) {`);
431
- callPreludeLines.push(` const __candidate = __args[__args.length - 1];`);
432
- callPreludeLines.push(` if (${looksLikeKwargs}) {`);
433
- callPreludeLines.push(` __kwargs = __candidate as any;`);
434
- callPreludeLines.push(` __args.pop();`);
435
- callPreludeLines.push(` }`);
436
- callPreludeLines.push(` }`);
437
- }
438
- if (varArgsParam) {
439
- const vname = this.escapeIdentifier(varArgsParam.name);
440
- if (needsVarArgsArray) {
441
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr(vname, {
442
- keywordOnlyNames,
443
- requiredKwOnlyNames,
444
- hasVarKwArgs,
445
- });
446
- callPreludeLines.push(` let __varargs: unknown[] = [];`);
447
- callPreludeLines.push(` if (${vname} !== undefined) {`);
448
- callPreludeLines.push(` if (globalThis.Array.isArray(${vname})) {`);
449
- callPreludeLines.push(` __varargs = ${vname};`);
450
- callPreludeLines.push(` } else if (__kwargs === undefined && ${looksLikeKwargs}) {`);
451
- callPreludeLines.push(` __kwargs = ${vname} as any;`);
452
- callPreludeLines.push(` } else {`);
453
- callPreludeLines.push(` throw new Error(\`${func.name} expected ${varArgsParam.name} to be an array\`);`);
454
- callPreludeLines.push(` }`);
455
- callPreludeLines.push(` }`);
456
- callPreludeLines.push(` __args.push(...__varargs);`);
457
- }
458
- else {
459
- callPreludeLines.push(` __args.push(...${vname});`);
460
- }
461
- }
399
+ const callDescriptor = {
400
+ positionalParams,
401
+ varArgsParam,
402
+ needsVarArgsArray,
403
+ hasKwArgs,
404
+ hasVarKwArgs,
405
+ keywordOnlyNames,
406
+ requiredKwOnlyNames,
407
+ positionalOnlyNames,
408
+ requiredPosCount,
409
+ indent: ' ',
410
+ errorLabel: func.name,
411
+ };
412
+ const guardLines = emitArgGuards(callDescriptor);
413
+ const guards = guardLines.length > 0 ? `${guardLines.join('\n')}\n` : '';
414
+ const callPreludeLines = emitCallPrelude(callDescriptor, this.callEmitHelpers());
462
415
  const callPrelude = callPreludeLines.length > 0 ? `${callPreludeLines.join('\n')}\n` : '';
463
416
  const ts = `${jsdoc}${overloadDecl}export async function ${fname}${typeParamDecl}(${paramDecl}): Promise<${returnType}> {
464
417
  ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.name}', __args${hasKwArgs ? ', __kwargs' : ''});
@@ -605,77 +558,22 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
605
558
  }
606
559
  }
607
560
  const overloadDecl = overloads.length > 0 ? `${overloads.join('\n')}\n` : '';
608
- const callPreludeLines = [];
609
- if (needsKwargsParam) {
610
- callPreludeLines.push(` let __kwargs = kwargs;`);
611
- }
612
- const positionalArgExprs = positionalParams.map(p => this.escapeIdentifier(p.name));
613
- callPreludeLines.push(` const __args: unknown[] = [${positionalArgExprs.join(', ')}];`);
614
- if (requiredPosCount < positionalParams.length) {
615
- callPreludeLines.push(` while (__args.length > ${requiredPosCount} && __args[__args.length - 1] === undefined) {`);
616
- callPreludeLines.push(` __args.pop();`);
617
- callPreludeLines.push(` }`);
618
- }
619
- if (needsKwargsParam && requiredPosCount < positionalParams.length) {
620
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr('__candidate', {
621
- keywordOnlyNames,
622
- requiredKwOnlyNames,
623
- hasVarKwArgs,
624
- });
625
- callPreludeLines.push(` if (__kwargs === undefined && __args.length > ${requiredPosCount}) {`);
626
- callPreludeLines.push(` const __candidate = __args[__args.length - 1];`);
627
- callPreludeLines.push(` if (${looksLikeKwargs}) {`);
628
- callPreludeLines.push(` __kwargs = __candidate as any;`);
629
- callPreludeLines.push(` __args.pop();`);
630
- callPreludeLines.push(` }`);
631
- callPreludeLines.push(` }`);
632
- }
633
- if (varArgsParam) {
634
- const vname = this.escapeIdentifier(varArgsParam.name);
635
- if (needsVarArgsArray) {
636
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr(vname, {
637
- keywordOnlyNames,
638
- requiredKwOnlyNames,
639
- hasVarKwArgs,
640
- });
641
- callPreludeLines.push(` let __varargs: unknown[] = [];`);
642
- callPreludeLines.push(` if (${vname} !== undefined) {`);
643
- callPreludeLines.push(` if (globalThis.Array.isArray(${vname})) {`);
644
- callPreludeLines.push(` __varargs = ${vname};`);
645
- callPreludeLines.push(` } else if (__kwargs === undefined && ${looksLikeKwargs}) {`);
646
- callPreludeLines.push(` __kwargs = ${vname} as any;`);
647
- callPreludeLines.push(` } else {`);
648
- callPreludeLines.push(` throw new Error(\`${method.name} expected ${varArgsParam.name} to be an array\`);`);
649
- callPreludeLines.push(` }`);
650
- callPreludeLines.push(` }`);
651
- callPreludeLines.push(` __args.push(...__varargs);`);
652
- }
653
- else {
654
- callPreludeLines.push(` __args.push(...${vname});`);
655
- }
656
- }
561
+ const callDescriptor = {
562
+ positionalParams,
563
+ varArgsParam,
564
+ needsVarArgsArray,
565
+ hasKwArgs: needsKwargsParam,
566
+ hasVarKwArgs,
567
+ keywordOnlyNames,
568
+ requiredKwOnlyNames,
569
+ positionalOnlyNames,
570
+ requiredPosCount,
571
+ indent: ' ',
572
+ errorLabel: method.name,
573
+ };
574
+ const callPreludeLines = emitCallPrelude(callDescriptor, this.callEmitHelpers());
657
575
  const callPrelude = callPreludeLines.length > 0 ? `${callPreludeLines.join('\n')}\n` : '';
658
- const guardLines = [];
659
- if (needsKwargsParam && positionalOnlyNames.length > 0) {
660
- guardLines.push(` const __positionalOnly = ${JSON.stringify(positionalOnlyNames)} as const;`);
661
- guardLines.push(` for (const key of __positionalOnly) {`);
662
- guardLines.push(` if (__kwargs && Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
663
- guardLines.push(` throw new Error(\`${method.name} does not accept positional-only argument "\${key}" as a keyword argument\`);`);
664
- guardLines.push(` }`);
665
- guardLines.push(` }`);
666
- }
667
- if (needsKwargsParam && requiredKwOnlyNames.length > 0) {
668
- guardLines.push(` const __requiredKwOnly = ${JSON.stringify(requiredKwOnlyNames)} as const;`);
669
- guardLines.push(` const __missing: string[] = [];`);
670
- guardLines.push(` for (const key of __requiredKwOnly) {`);
671
- guardLines.push(` if (!__kwargs || !Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
672
- guardLines.push(` __missing.push(key);`);
673
- guardLines.push(` }`);
674
- guardLines.push(` }`);
675
- guardLines.push(` if (__missing.length > 0) {`);
676
- guardLines.push(` throw new Error(\`Missing required keyword-only arguments for ${method.name}: \${__missing.join(', ')}\`);`);
677
- guardLines.push(` }`);
678
- }
576
+ const guardLines = emitArgGuards(callDescriptor);
679
577
  const guards = guardLines.length > 0 ? `${guardLines.join('\n')}\n` : '';
680
578
  methodBodies.push(`${overloadDecl} async ${mname}${methodTypeParamDecl}(${paramsDecl}): Promise<${returnType}> {
681
579
  ${callPrelude}${guards} return getRuntimeBridge().callMethod(this.__handle, '${method.name}', __args${needsKwargsParam ? ', __kwargs' : ''});
@@ -758,77 +656,22 @@ ${callPrelude}${guards} return getRuntimeBridge().callMethod(this.__handle, '
758
656
  const declaration = overloads.length > 0
759
657
  ? overloadDecl
760
658
  : ` static create${classTypeParamDecl}(${paramsDecl}): Promise<${classSelfType}>;\n`;
761
- const guardLines = [];
762
- const callPreludeLines = [];
763
- if (needsKwargsParam) {
764
- callPreludeLines.push(` let __kwargs = kwargs;`);
765
- }
766
- const positionalArgExprs = positionalParams.map(p => this.escapeIdentifier(p.name));
767
- callPreludeLines.push(` const __args: unknown[] = [${positionalArgExprs.join(', ')}];`);
768
- if (requiredPosCount < positionalParams.length) {
769
- callPreludeLines.push(` while (__args.length > ${requiredPosCount} && __args[__args.length - 1] === undefined) {`);
770
- callPreludeLines.push(` __args.pop();`);
771
- callPreludeLines.push(` }`);
772
- }
773
- if (needsKwargsParam && requiredPosCount < positionalParams.length) {
774
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr('__candidate', {
775
- keywordOnlyNames,
776
- requiredKwOnlyNames,
777
- hasVarKwArgs,
778
- });
779
- callPreludeLines.push(` if (__kwargs === undefined && __args.length > ${requiredPosCount}) {`);
780
- callPreludeLines.push(` const __candidate = __args[__args.length - 1];`);
781
- callPreludeLines.push(` if (${looksLikeKwargs}) {`);
782
- callPreludeLines.push(` __kwargs = __candidate as any;`);
783
- callPreludeLines.push(` __args.pop();`);
784
- callPreludeLines.push(` }`);
785
- callPreludeLines.push(` }`);
786
- }
787
- if (varArgsParam) {
788
- const vname = this.escapeIdentifier(varArgsParam.name);
789
- if (needsVarArgsArray) {
790
- const looksLikeKwargs = this.renderLooksLikeKwargsExpr(vname, {
791
- keywordOnlyNames,
792
- requiredKwOnlyNames,
793
- hasVarKwArgs,
794
- });
795
- callPreludeLines.push(` let __varargs: unknown[] = [];`);
796
- callPreludeLines.push(` if (${vname} !== undefined) {`);
797
- callPreludeLines.push(` if (globalThis.Array.isArray(${vname})) {`);
798
- callPreludeLines.push(` __varargs = ${vname};`);
799
- callPreludeLines.push(` } else if (__kwargs === undefined && ${looksLikeKwargs}) {`);
800
- callPreludeLines.push(` __kwargs = ${vname} as any;`);
801
- callPreludeLines.push(` } else {`);
802
- callPreludeLines.push(` throw new Error(\`__init__ expected ${varArgsParam.name} to be an array\`);`);
803
- callPreludeLines.push(` }`);
804
- callPreludeLines.push(` }`);
805
- callPreludeLines.push(` __args.push(...__varargs);`);
806
- }
807
- else {
808
- callPreludeLines.push(` __args.push(...${vname});`);
809
- }
810
- }
659
+ const callDescriptor = {
660
+ positionalParams,
661
+ varArgsParam,
662
+ needsVarArgsArray,
663
+ hasKwArgs: needsKwargsParam,
664
+ hasVarKwArgs,
665
+ keywordOnlyNames,
666
+ requiredKwOnlyNames,
667
+ positionalOnlyNames,
668
+ requiredPosCount,
669
+ indent: ' ',
670
+ errorLabel: '__init__',
671
+ };
672
+ const callPreludeLines = emitCallPrelude(callDescriptor, this.callEmitHelpers());
811
673
  const callPrelude = callPreludeLines.length > 0 ? `${callPreludeLines.join('\n')}\n` : '';
812
- if (needsKwargsParam && positionalOnlyNames.length > 0) {
813
- guardLines.push(` const __positionalOnly = ${JSON.stringify(positionalOnlyNames)} as const;`);
814
- guardLines.push(` for (const key of __positionalOnly) {`);
815
- guardLines.push(` if (__kwargs && Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
816
- guardLines.push(` throw new Error(\`__init__ does not accept positional-only argument "\${key}" as a keyword argument\`);`);
817
- guardLines.push(` }`);
818
- guardLines.push(` }`);
819
- }
820
- if (needsKwargsParam && requiredKwOnlyNames.length > 0) {
821
- guardLines.push(` const __requiredKwOnly = ${JSON.stringify(requiredKwOnlyNames)} as const;`);
822
- guardLines.push(` const __missing: string[] = [];`);
823
- guardLines.push(` for (const key of __requiredKwOnly) {`);
824
- guardLines.push(` if (!__kwargs || !Object.prototype.hasOwnProperty.call(__kwargs, key)) {`);
825
- guardLines.push(` __missing.push(key);`);
826
- guardLines.push(` }`);
827
- guardLines.push(` }`);
828
- guardLines.push(` if (__missing.length > 0) {`);
829
- guardLines.push(` throw new Error(\`Missing required keyword-only arguments for __init__: \${__missing.join(', ')}\`);`);
830
- guardLines.push(` }`);
831
- }
674
+ const guardLines = emitArgGuards(callDescriptor);
832
675
  return {
833
676
  overloadDecl,
834
677
  declaration,
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/core/mapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,aAAa,IAAI,eAAe,EAChC,cAAc,IAAI,gBAAgB,EAClC,SAAS,IAAI,WAAW,EACxB,YAAY,IAAI,cAAc,EAC9B,WAAW,IAAI,aAAa,EAC5B,YAAY,IAAI,cAAc,EAC9B,WAAW,IAAI,aAAa,EAC5B,aAAa,IAAI,eAAe,EAChC,iBAAiB,IAAI,mBAAmB,EAExC,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,IAAI,YAAY,EAC1B,SAAS,IAAI,WAAW,EACxB,YAAY,IAAI,cAAc,EAC9B,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EAEZ,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,OAAO,GAAE,iBAAsB;IAI3C,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAwCxF,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,GAAE,cAAwB,GAAG,eAAe;IAkB3F,iBAAiB,CACf,IAAI,EAAE,gBAAgB,GACrB,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa;IA0E3D,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,cAAwB,GAAG,WAAW;IAO/E,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,cAAwB,GAAG,WAAW;IAQrF,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IActF,aAAa,CACX,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EACvD,QAAQ,GAAE,cAAwB,GACjC,cAAc;IAsEjB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAsCrD,cAAc,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KACzC,GAAG,aAAa;IAIjB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,GAAE,cAAwB,GAAG,YAAY;IASrF,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY;IAQrD,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,WAAW;IAO7D,sBAAsB,IAAI,YAAY;IAWtC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe;IAI/D,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,GAAE,cAAwB,GAAG,eAAe;IAIvF,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAMlF,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAMxF,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,aAAa;CAkJtB"}
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/core/mapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,aAAa,IAAI,eAAe,EAChC,cAAc,IAAI,gBAAgB,EAClC,SAAS,IAAI,WAAW,EACxB,YAAY,IAAI,cAAc,EAC9B,WAAW,IAAI,aAAa,EAC5B,YAAY,IAAI,cAAc,EAC9B,WAAW,IAAI,aAAa,EAC5B,aAAa,IAAI,eAAe,EAChC,iBAAiB,IAAI,mBAAmB,EAExC,gBAAgB,IAAI,kBAAkB,EACtC,UAAU,IAAI,YAAY,EAC1B,SAAS,IAAI,WAAW,EACxB,YAAY,IAAI,cAAc,EAC9B,cAAc,EACd,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EAEZ,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,OAAO,GAAE,iBAAsB;IAI3C,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAwCxF,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,GAAE,cAAwB,GAAG,eAAe;IAkB3F,iBAAiB,CACf,IAAI,EAAE,gBAAgB,GACrB,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa;IA0E3D,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,cAAwB,GAAG,WAAW;IAO/E,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,cAAwB,GAAG,WAAW;IAQrF,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IActF,aAAa,CACX,IAAI,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EACvD,QAAQ,GAAE,cAAwB,GACjC,cAAc;IAsEjB,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc;IAsCrD,cAAc,CAAC,IAAI,EAAE;QACnB,IAAI,EAAE,SAAS,CAAC;QAChB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;KACzC,GAAG,aAAa;IAIjB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,GAAE,cAAwB,GAAG,YAAY;IASrF,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY;IAQrD,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,WAAW;IAO7D,sBAAsB,IAAI,YAAY;IAWtC,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe;IAI/D,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,GAAE,cAAwB,GAAG,eAAe;IAIvF,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAMlF,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,GAAE,cAAwB,GAAG,cAAc;IAMxF,OAAO,CAAC,mBAAmB;IAoD3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,aAAa;CAiKtB"}