@xlr-lib/xlr-utils 0.1.1-next.1 → 0.1.1-next.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.
@@ -218,12 +218,8 @@ function isNamedType(node) {
218
218
 
219
219
  // ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/utils/src/validation-helpers.ts
220
220
  function propertyToTuple(node) {
221
- let key = node.children?.[0].value;
222
- if (key.includes("-")) {
223
- key = `'${key}'`;
224
- }
225
221
  return {
226
- key,
222
+ key: node.children?.[0].value,
227
223
  value: node.children?.[1]
228
224
  };
229
225
  }
@@ -369,6 +365,9 @@ function isExportedDeclaration(node) {
369
365
  }
370
366
  return false;
371
367
  }
368
+ function isExportedModuleDeclaration(node) {
369
+ return isExportedDeclaration(node) && ts3.isModuleDeclaration(node);
370
+ }
372
371
  function isNodeExported(node) {
373
372
  return (ts3.getCombinedModifierFlags(node) & ts3.ModifierFlags.Export) !== 0 || !!node.parent && node.parent.kind === ts3.SyntaxKind.SourceFile;
374
373
  }
@@ -437,10 +436,19 @@ function buildTemplateRegex(node, typeChecker) {
437
436
  });
438
437
  return regex;
439
438
  }
440
- function fillInGenerics(xlrNode, generics) {
439
+ function fillInGenerics(xlrNode, generics, preferLocalGenerics = false) {
441
440
  let localGenerics;
442
441
  if (generics) {
443
442
  localGenerics = new Map(generics);
443
+ if (preferLocalGenerics && isGenericNodeType(xlrNode)) {
444
+ xlrNode.genericTokens?.forEach((token) => {
445
+ const genericValue = token.default ?? token.constraints;
446
+ localGenerics.set(
447
+ token.symbol,
448
+ fillInGenerics(genericValue, localGenerics, preferLocalGenerics)
449
+ );
450
+ });
451
+ }
444
452
  } else {
445
453
  localGenerics = /* @__PURE__ */ new Map();
446
454
  if (isGenericNodeType(xlrNode)) {
@@ -448,7 +456,7 @@ function fillInGenerics(xlrNode, generics) {
448
456
  const genericValue = token.default ?? token.constraints;
449
457
  localGenerics.set(
450
458
  token.symbol,
451
- fillInGenerics(genericValue, localGenerics)
459
+ fillInGenerics(genericValue, localGenerics, preferLocalGenerics)
452
460
  );
453
461
  });
454
462
  }
@@ -459,7 +467,7 @@ function fillInGenerics(xlrNode, generics) {
459
467
  ...localGenerics.get(xlrNode.ref),
460
468
  ...xlrNode.genericArguments ? {
461
469
  genericArguments: xlrNode.genericArguments.map(
462
- (ga) => fillInGenerics(ga, localGenerics)
470
+ (ga) => fillInGenerics(ga, localGenerics, preferLocalGenerics)
463
471
  )
464
472
  } : {},
465
473
  ...xlrNode.title ? { title: xlrNode.title } : {},
@@ -472,7 +480,7 @@ function fillInGenerics(xlrNode, generics) {
472
480
  ...xlrNode,
473
481
  ...xlrNode.genericArguments ? {
474
482
  genericArguments: xlrNode.genericArguments.map(
475
- (ga) => fillInGenerics(ga, localGenerics)
483
+ (ga) => fillInGenerics(ga, localGenerics, preferLocalGenerics)
476
484
  )
477
485
  } : {}
478
486
  };
@@ -483,7 +491,7 @@ function fillInGenerics(xlrNode, generics) {
483
491
  const prop = xlrNode.properties[propName];
484
492
  newProperties[propName] = {
485
493
  required: prop.required,
486
- node: fillInGenerics(prop.node, localGenerics)
494
+ node: fillInGenerics(prop.node, localGenerics, preferLocalGenerics)
487
495
  };
488
496
  });
489
497
  return {
@@ -493,19 +501,39 @@ function fillInGenerics(xlrNode, generics) {
493
501
  genericTokens: xlrNode.genericTokens.map((token) => {
494
502
  return {
495
503
  ...token,
496
- constraints: token.constraints ? fillInGenerics(token.constraints, localGenerics) : void 0,
497
- default: token.default ? fillInGenerics(token.default, localGenerics) : void 0
504
+ constraints: token.constraints ? fillInGenerics(
505
+ token.constraints,
506
+ localGenerics,
507
+ preferLocalGenerics
508
+ ) : void 0,
509
+ default: token.default ? fillInGenerics(
510
+ token.default,
511
+ localGenerics,
512
+ preferLocalGenerics
513
+ ) : void 0
498
514
  };
499
515
  })
500
516
  } : {},
501
- extends: xlrNode.extends ? fillInGenerics(xlrNode.extends, localGenerics) : void 0,
502
- additionalProperties: xlrNode.additionalProperties ? fillInGenerics(xlrNode.additionalProperties, localGenerics) : false
517
+ extends: xlrNode.extends ? fillInGenerics(
518
+ xlrNode.extends,
519
+ localGenerics,
520
+ preferLocalGenerics
521
+ ) : void 0,
522
+ additionalProperties: xlrNode.additionalProperties ? fillInGenerics(
523
+ xlrNode.additionalProperties,
524
+ localGenerics,
525
+ preferLocalGenerics
526
+ ) : false
503
527
  };
504
528
  }
505
529
  if (xlrNode.type === "array") {
506
530
  return {
507
531
  ...xlrNode,
508
- elementType: fillInGenerics(xlrNode.elementType, localGenerics)
532
+ elementType: fillInGenerics(
533
+ xlrNode.elementType,
534
+ localGenerics,
535
+ preferLocalGenerics
536
+ )
509
537
  };
510
538
  } else if (xlrNode.type === "or" || xlrNode.type === "and") {
511
539
  let pointer;
@@ -517,25 +545,49 @@ function fillInGenerics(xlrNode, generics) {
517
545
  return {
518
546
  ...xlrNode,
519
547
  [xlrNode.type]: pointer.map((prop) => {
520
- return fillInGenerics(prop, localGenerics);
548
+ return fillInGenerics(prop, localGenerics, preferLocalGenerics);
521
549
  })
522
550
  };
523
551
  } else if (xlrNode.type === "record") {
524
552
  return {
525
553
  ...xlrNode,
526
- keyType: fillInGenerics(xlrNode.keyType, localGenerics),
527
- valueType: fillInGenerics(xlrNode.valueType, localGenerics)
554
+ keyType: fillInGenerics(
555
+ xlrNode.keyType,
556
+ localGenerics,
557
+ preferLocalGenerics
558
+ ),
559
+ valueType: fillInGenerics(
560
+ xlrNode.valueType,
561
+ localGenerics,
562
+ preferLocalGenerics
563
+ )
528
564
  };
529
565
  } else if (xlrNode.type === "conditional") {
530
566
  const filledInConditional = {
531
567
  ...xlrNode,
532
568
  check: {
533
- left: fillInGenerics(xlrNode.check.left, localGenerics),
534
- right: fillInGenerics(xlrNode.check.right, localGenerics)
569
+ left: fillInGenerics(
570
+ xlrNode.check.left,
571
+ localGenerics,
572
+ preferLocalGenerics
573
+ ),
574
+ right: fillInGenerics(
575
+ xlrNode.check.right,
576
+ localGenerics,
577
+ preferLocalGenerics
578
+ )
535
579
  },
536
580
  value: {
537
- true: fillInGenerics(xlrNode.value.true, localGenerics),
538
- false: fillInGenerics(xlrNode.value.false, localGenerics)
581
+ true: fillInGenerics(
582
+ xlrNode.value.true,
583
+ localGenerics,
584
+ preferLocalGenerics
585
+ ),
586
+ false: fillInGenerics(
587
+ xlrNode.value.false,
588
+ localGenerics,
589
+ preferLocalGenerics
590
+ )
539
591
  }
540
592
  };
541
593
  if (filledInConditional.check.left.type !== "ref" && filledInConditional.check.right.type !== "ref") {
@@ -847,6 +899,7 @@ export {
847
899
  isArrayType,
848
900
  isBooleanType,
849
901
  isExportedDeclaration,
902
+ isExportedModuleDeclaration,
850
903
  isGenericInterfaceDeclaration,
851
904
  isGenericNamedType,
852
905
  isGenericNodeType,
package/dist/index.mjs CHANGED
@@ -218,12 +218,8 @@ function isNamedType(node) {
218
218
 
219
219
  // ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/utils/src/validation-helpers.ts
220
220
  function propertyToTuple(node) {
221
- let key = node.children?.[0].value;
222
- if (key.includes("-")) {
223
- key = `'${key}'`;
224
- }
225
221
  return {
226
- key,
222
+ key: node.children?.[0].value,
227
223
  value: node.children?.[1]
228
224
  };
229
225
  }
@@ -369,6 +365,9 @@ function isExportedDeclaration(node) {
369
365
  }
370
366
  return false;
371
367
  }
368
+ function isExportedModuleDeclaration(node) {
369
+ return isExportedDeclaration(node) && ts3.isModuleDeclaration(node);
370
+ }
372
371
  function isNodeExported(node) {
373
372
  return (ts3.getCombinedModifierFlags(node) & ts3.ModifierFlags.Export) !== 0 || !!node.parent && node.parent.kind === ts3.SyntaxKind.SourceFile;
374
373
  }
@@ -437,10 +436,19 @@ function buildTemplateRegex(node, typeChecker) {
437
436
  });
438
437
  return regex;
439
438
  }
440
- function fillInGenerics(xlrNode, generics) {
439
+ function fillInGenerics(xlrNode, generics, preferLocalGenerics = false) {
441
440
  let localGenerics;
442
441
  if (generics) {
443
442
  localGenerics = new Map(generics);
443
+ if (preferLocalGenerics && isGenericNodeType(xlrNode)) {
444
+ xlrNode.genericTokens?.forEach((token) => {
445
+ const genericValue = token.default ?? token.constraints;
446
+ localGenerics.set(
447
+ token.symbol,
448
+ fillInGenerics(genericValue, localGenerics, preferLocalGenerics)
449
+ );
450
+ });
451
+ }
444
452
  } else {
445
453
  localGenerics = /* @__PURE__ */ new Map();
446
454
  if (isGenericNodeType(xlrNode)) {
@@ -448,7 +456,7 @@ function fillInGenerics(xlrNode, generics) {
448
456
  const genericValue = token.default ?? token.constraints;
449
457
  localGenerics.set(
450
458
  token.symbol,
451
- fillInGenerics(genericValue, localGenerics)
459
+ fillInGenerics(genericValue, localGenerics, preferLocalGenerics)
452
460
  );
453
461
  });
454
462
  }
@@ -459,7 +467,7 @@ function fillInGenerics(xlrNode, generics) {
459
467
  ...localGenerics.get(xlrNode.ref),
460
468
  ...xlrNode.genericArguments ? {
461
469
  genericArguments: xlrNode.genericArguments.map(
462
- (ga) => fillInGenerics(ga, localGenerics)
470
+ (ga) => fillInGenerics(ga, localGenerics, preferLocalGenerics)
463
471
  )
464
472
  } : {},
465
473
  ...xlrNode.title ? { title: xlrNode.title } : {},
@@ -472,7 +480,7 @@ function fillInGenerics(xlrNode, generics) {
472
480
  ...xlrNode,
473
481
  ...xlrNode.genericArguments ? {
474
482
  genericArguments: xlrNode.genericArguments.map(
475
- (ga) => fillInGenerics(ga, localGenerics)
483
+ (ga) => fillInGenerics(ga, localGenerics, preferLocalGenerics)
476
484
  )
477
485
  } : {}
478
486
  };
@@ -483,7 +491,7 @@ function fillInGenerics(xlrNode, generics) {
483
491
  const prop = xlrNode.properties[propName];
484
492
  newProperties[propName] = {
485
493
  required: prop.required,
486
- node: fillInGenerics(prop.node, localGenerics)
494
+ node: fillInGenerics(prop.node, localGenerics, preferLocalGenerics)
487
495
  };
488
496
  });
489
497
  return {
@@ -493,19 +501,39 @@ function fillInGenerics(xlrNode, generics) {
493
501
  genericTokens: xlrNode.genericTokens.map((token) => {
494
502
  return {
495
503
  ...token,
496
- constraints: token.constraints ? fillInGenerics(token.constraints, localGenerics) : void 0,
497
- default: token.default ? fillInGenerics(token.default, localGenerics) : void 0
504
+ constraints: token.constraints ? fillInGenerics(
505
+ token.constraints,
506
+ localGenerics,
507
+ preferLocalGenerics
508
+ ) : void 0,
509
+ default: token.default ? fillInGenerics(
510
+ token.default,
511
+ localGenerics,
512
+ preferLocalGenerics
513
+ ) : void 0
498
514
  };
499
515
  })
500
516
  } : {},
501
- extends: xlrNode.extends ? fillInGenerics(xlrNode.extends, localGenerics) : void 0,
502
- additionalProperties: xlrNode.additionalProperties ? fillInGenerics(xlrNode.additionalProperties, localGenerics) : false
517
+ extends: xlrNode.extends ? fillInGenerics(
518
+ xlrNode.extends,
519
+ localGenerics,
520
+ preferLocalGenerics
521
+ ) : void 0,
522
+ additionalProperties: xlrNode.additionalProperties ? fillInGenerics(
523
+ xlrNode.additionalProperties,
524
+ localGenerics,
525
+ preferLocalGenerics
526
+ ) : false
503
527
  };
504
528
  }
505
529
  if (xlrNode.type === "array") {
506
530
  return {
507
531
  ...xlrNode,
508
- elementType: fillInGenerics(xlrNode.elementType, localGenerics)
532
+ elementType: fillInGenerics(
533
+ xlrNode.elementType,
534
+ localGenerics,
535
+ preferLocalGenerics
536
+ )
509
537
  };
510
538
  } else if (xlrNode.type === "or" || xlrNode.type === "and") {
511
539
  let pointer;
@@ -517,25 +545,49 @@ function fillInGenerics(xlrNode, generics) {
517
545
  return {
518
546
  ...xlrNode,
519
547
  [xlrNode.type]: pointer.map((prop) => {
520
- return fillInGenerics(prop, localGenerics);
548
+ return fillInGenerics(prop, localGenerics, preferLocalGenerics);
521
549
  })
522
550
  };
523
551
  } else if (xlrNode.type === "record") {
524
552
  return {
525
553
  ...xlrNode,
526
- keyType: fillInGenerics(xlrNode.keyType, localGenerics),
527
- valueType: fillInGenerics(xlrNode.valueType, localGenerics)
554
+ keyType: fillInGenerics(
555
+ xlrNode.keyType,
556
+ localGenerics,
557
+ preferLocalGenerics
558
+ ),
559
+ valueType: fillInGenerics(
560
+ xlrNode.valueType,
561
+ localGenerics,
562
+ preferLocalGenerics
563
+ )
528
564
  };
529
565
  } else if (xlrNode.type === "conditional") {
530
566
  const filledInConditional = {
531
567
  ...xlrNode,
532
568
  check: {
533
- left: fillInGenerics(xlrNode.check.left, localGenerics),
534
- right: fillInGenerics(xlrNode.check.right, localGenerics)
569
+ left: fillInGenerics(
570
+ xlrNode.check.left,
571
+ localGenerics,
572
+ preferLocalGenerics
573
+ ),
574
+ right: fillInGenerics(
575
+ xlrNode.check.right,
576
+ localGenerics,
577
+ preferLocalGenerics
578
+ )
535
579
  },
536
580
  value: {
537
- true: fillInGenerics(xlrNode.value.true, localGenerics),
538
- false: fillInGenerics(xlrNode.value.false, localGenerics)
581
+ true: fillInGenerics(
582
+ xlrNode.value.true,
583
+ localGenerics,
584
+ preferLocalGenerics
585
+ ),
586
+ false: fillInGenerics(
587
+ xlrNode.value.false,
588
+ localGenerics,
589
+ preferLocalGenerics
590
+ )
539
591
  }
540
592
  };
541
593
  if (filledInConditional.check.left.type !== "ref" && filledInConditional.check.right.type !== "ref") {
@@ -847,6 +899,7 @@ export {
847
899
  isArrayType,
848
900
  isBooleanType,
849
901
  isExportedDeclaration,
902
+ isExportedModuleDeclaration,
850
903
  isGenericInterfaceDeclaration,
851
904
  isGenericNamedType,
852
905
  isGenericNodeType,