graphile-build-pg 5.0.0-beta.2 → 5.0.0-beta.21

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 (119) hide show
  1. package/CHANGELOG.md +535 -0
  2. package/README.md +6 -7
  3. package/dist/behavior.d.ts +0 -1
  4. package/dist/behavior.d.ts.map +1 -1
  5. package/dist/behavior.js +0 -1
  6. package/dist/behavior.js.map +1 -1
  7. package/dist/index.d.ts +84 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +6 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/plugins/PgAttributesPlugin.d.ts +0 -1
  12. package/dist/plugins/PgAttributesPlugin.d.ts.map +1 -1
  13. package/dist/plugins/PgAttributesPlugin.js +9 -11
  14. package/dist/plugins/PgAttributesPlugin.js.map +1 -1
  15. package/dist/plugins/PgBasicsPlugin.d.ts +20 -10
  16. package/dist/plugins/PgBasicsPlugin.d.ts.map +1 -1
  17. package/dist/plugins/PgBasicsPlugin.js +50 -2
  18. package/dist/plugins/PgBasicsPlugin.js.map +1 -1
  19. package/dist/plugins/PgCodecsPlugin.d.ts +6 -0
  20. package/dist/plugins/PgCodecsPlugin.d.ts.map +1 -1
  21. package/dist/plugins/PgCodecsPlugin.js +240 -211
  22. package/dist/plugins/PgCodecsPlugin.js.map +1 -1
  23. package/dist/plugins/PgConnectionArgOrderByPlugin.d.ts.map +1 -1
  24. package/dist/plugins/PgConnectionArgOrderByPlugin.js +3 -0
  25. package/dist/plugins/PgConnectionArgOrderByPlugin.js.map +1 -1
  26. package/dist/plugins/PgCustomTypeFieldPlugin.d.ts.map +1 -1
  27. package/dist/plugins/PgCustomTypeFieldPlugin.js +105 -40
  28. package/dist/plugins/PgCustomTypeFieldPlugin.js.map +1 -1
  29. package/dist/plugins/PgEnumTablesPlugin.d.ts +3 -0
  30. package/dist/plugins/PgEnumTablesPlugin.d.ts.map +1 -1
  31. package/dist/plugins/PgEnumTablesPlugin.js +49 -31
  32. package/dist/plugins/PgEnumTablesPlugin.js.map +1 -1
  33. package/dist/plugins/PgFakeConstraintsPlugin.js +3 -1
  34. package/dist/plugins/PgFakeConstraintsPlugin.js.map +1 -1
  35. package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.d.ts.map +1 -1
  36. package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.js +5 -76
  37. package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.js.map +1 -1
  38. package/dist/plugins/PgIntrospectionPlugin.d.ts.map +1 -1
  39. package/dist/plugins/PgIntrospectionPlugin.js +119 -104
  40. package/dist/plugins/PgIntrospectionPlugin.js.map +1 -1
  41. package/dist/plugins/PgLtreePlugin.d.ts +2 -0
  42. package/dist/plugins/PgLtreePlugin.d.ts.map +1 -0
  43. package/dist/plugins/PgLtreePlugin.js +66 -0
  44. package/dist/plugins/PgLtreePlugin.js.map +1 -0
  45. package/dist/plugins/PgMutationPayloadEdgePlugin.d.ts.map +1 -1
  46. package/dist/plugins/PgMutationPayloadEdgePlugin.js +2 -9
  47. package/dist/plugins/PgMutationPayloadEdgePlugin.js.map +1 -1
  48. package/dist/plugins/PgMutationUpdateDeletePlugin.d.ts.map +1 -1
  49. package/dist/plugins/PgMutationUpdateDeletePlugin.js +41 -39
  50. package/dist/plugins/PgMutationUpdateDeletePlugin.js.map +1 -1
  51. package/dist/plugins/PgNodeIdAttributesPlugin.d.ts +0 -1
  52. package/dist/plugins/PgNodeIdAttributesPlugin.d.ts.map +1 -1
  53. package/dist/plugins/PgNodeIdAttributesPlugin.js +32 -32
  54. package/dist/plugins/PgNodeIdAttributesPlugin.js.map +1 -1
  55. package/dist/plugins/PgOrderAllAttributesPlugin.d.ts.map +1 -1
  56. package/dist/plugins/PgOrderAllAttributesPlugin.js +2 -2
  57. package/dist/plugins/PgOrderAllAttributesPlugin.js.map +1 -1
  58. package/dist/plugins/PgOrderByPrimaryKeyPlugin.d.ts.map +1 -1
  59. package/dist/plugins/PgOrderByPrimaryKeyPlugin.js +5 -5
  60. package/dist/plugins/PgOrderByPrimaryKeyPlugin.js.map +1 -1
  61. package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.d.ts +18 -0
  62. package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.d.ts.map +1 -0
  63. package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.js +136 -0
  64. package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.js.map +1 -0
  65. package/dist/plugins/PgPolymorphismPlugin.d.ts +25 -1
  66. package/dist/plugins/PgPolymorphismPlugin.d.ts.map +1 -1
  67. package/dist/plugins/PgPolymorphismPlugin.js +335 -8
  68. package/dist/plugins/PgPolymorphismPlugin.js.map +1 -1
  69. package/dist/plugins/PgProceduresPlugin.d.ts.map +1 -1
  70. package/dist/plugins/PgProceduresPlugin.js +4 -2
  71. package/dist/plugins/PgProceduresPlugin.js.map +1 -1
  72. package/dist/plugins/PgRBACPlugin.d.ts.map +1 -1
  73. package/dist/plugins/PgRBACPlugin.js +7 -12
  74. package/dist/plugins/PgRBACPlugin.js.map +1 -1
  75. package/dist/plugins/PgRefsPlugin.d.ts.map +1 -1
  76. package/dist/plugins/PgRefsPlugin.js +9 -3
  77. package/dist/plugins/PgRefsPlugin.js.map +1 -1
  78. package/dist/plugins/PgRelationsPlugin.d.ts +8 -1
  79. package/dist/plugins/PgRelationsPlugin.d.ts.map +1 -1
  80. package/dist/plugins/PgRelationsPlugin.js +27 -14
  81. package/dist/plugins/PgRelationsPlugin.js.map +1 -1
  82. package/dist/plugins/PgRowByUniquePlugin.d.ts.map +1 -1
  83. package/dist/plugins/PgRowByUniquePlugin.js +1 -0
  84. package/dist/plugins/PgRowByUniquePlugin.js.map +1 -1
  85. package/dist/plugins/PgTableNodePlugin.d.ts.map +1 -1
  86. package/dist/plugins/PgTableNodePlugin.js +51 -33
  87. package/dist/plugins/PgTableNodePlugin.js.map +1 -1
  88. package/dist/plugins/PgTablesPlugin.d.ts.map +1 -1
  89. package/dist/plugins/PgTablesPlugin.js +28 -22
  90. package/dist/plugins/PgTablesPlugin.js.map +1 -1
  91. package/dist/plugins/PgTypesPlugin.d.ts +0 -1
  92. package/dist/plugins/PgTypesPlugin.d.ts.map +1 -1
  93. package/dist/plugins/PgTypesPlugin.js +6 -7
  94. package/dist/plugins/PgTypesPlugin.js.map +1 -1
  95. package/dist/preset.d.ts.map +1 -1
  96. package/dist/preset.js +6 -2
  97. package/dist/preset.js.map +1 -1
  98. package/dist/utils.d.ts +1 -0
  99. package/dist/utils.d.ts.map +1 -1
  100. package/dist/utils.js +63 -2
  101. package/dist/utils.js.map +1 -1
  102. package/dist/version.d.ts +1 -1
  103. package/dist/version.d.ts.map +1 -1
  104. package/dist/version.js +1 -1
  105. package/dist/version.js.map +1 -1
  106. package/dist/watchFixtures.js +1 -1
  107. package/package.json +34 -33
  108. package/dist/interfaces.d.ts +0 -89
  109. package/dist/interfaces.d.ts.map +0 -1
  110. package/dist/interfaces.js +0 -3
  111. package/dist/interfaces.js.map +0 -1
  112. package/dist/pgServices.d.ts +0 -18
  113. package/dist/pgServices.d.ts.map +0 -1
  114. package/dist/pgServices.js +0 -133
  115. package/dist/pgServices.js.map +0 -1
  116. package/dist/plugins/PgContextPlugin.d.ts +0 -2
  117. package/dist/plugins/PgContextPlugin.d.ts.map +0 -1
  118. package/dist/plugins/PgContextPlugin.js +0 -52
  119. package/dist/plugins/PgContextPlugin.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PgPolymorphismPlugin = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  require("graphile-config");
5
6
  require("./PgCodecsPlugin.js");
6
7
  require("./PgProceduresPlugin.js");
@@ -9,6 +10,7 @@ require("./PgTablesPlugin.js");
9
10
  const pg_1 = require("@dataplan/pg");
10
11
  const grafast_1 = require("grafast");
11
12
  const graphile_build_1 = require("graphile-build");
13
+ const tamedevil_1 = tslib_1.__importStar(require("tamedevil"));
12
14
  const behavior_js_1 = require("../behavior.js");
13
15
  const utils_js_1 = require("../utils.js");
14
16
  const version_js_1 = require("../version.js");
@@ -34,7 +36,7 @@ exports.PgPolymorphismPlugin = {
34
36
  name: "PgPolymorphismPlugin",
35
37
  description: "Adds polymorphism",
36
38
  version: version_js_1.version,
37
- after: ["smart-tags", "PgTablesPlugin", "PgCodecsPlugin"],
39
+ after: ["smart-tags", "PgTablesPlugin", "PgCodecsPlugin", "PgBasicsPlugin"],
38
40
  gather: (0, graphile_build_1.gatherConfig)({
39
41
  namespace: "pgPolymorphism",
40
42
  initialCache() {
@@ -133,9 +135,14 @@ exports.PgPolymorphismPlugin = {
133
135
  (0, grafast_1.arraysMatch)(c.getAttributes(), remotePk.getAttributes()) &&
134
136
  (0, grafast_1.arraysMatch)(c.getForeignAttributes(), pk.getAttributes()));
135
137
  if (!pgConstraint) {
136
- throw new Error("Could not build polymorphic reference due to missing foreign key constraint");
138
+ throw new Error(`Could not build polymorphic reference from '${pgClass.getNamespace()
139
+ ?.nspname}.${pgClass.relname}' to '${referencedClass.getNamespace()?.nspname}.${referencedClass.relname}' due to missing foreign key constraint. Please create a foreign key constraint on the latter table's primary key, pointing to the former table.`);
137
140
  }
138
- const codec = await info.helpers.pgCodecs.getCodecFromClass(serviceName, referencedClass._id);
141
+ const codec = (await info.helpers.pgCodecs.getCodecFromClass(serviceName, referencedClass._id));
142
+ if (!codec.extensions) {
143
+ codec.extensions = Object.create(null);
144
+ }
145
+ codec.extensions.relationalInterfaceCodecName = spec.name;
139
146
  types[typeValue] = {
140
147
  name: info.inflection.tableType(codec),
141
148
  references,
@@ -385,7 +392,7 @@ exports.PgPolymorphismPlugin = {
385
392
  after: ["default", "PgRelationsPlugin"],
386
393
  before: ["override"],
387
394
  callback(behavior, entity, build) {
388
- const { input: { pgRegistry: { pgRelations }, }, } = build;
395
+ const { input: { pgRegistry: { pgRelations }, }, grafast: { arraysMatch }, } = build;
389
396
  const { localCodec, remoteResource, isUnique, isReferencee } = entity;
390
397
  const remoteCodec = remoteResource.codec;
391
398
  // Hide relation from a concrete type back to the abstract root table.
@@ -397,7 +404,7 @@ exports.PgPolymorphismPlugin = {
397
404
  if (polymorphicTypeDefinitionEntry) {
398
405
  const [, { relationName }] = polymorphicTypeDefinitionEntry;
399
406
  const relation = pgRelations[remoteCodec.name]?.[relationName];
400
- if ((0, grafast_1.arraysMatch)(relation.remoteAttributes, entity.localAttributes)) {
407
+ if (arraysMatch(relation.remoteAttributes, entity.localAttributes)) {
401
408
  return [behavior, "-connection -list -single"];
402
409
  }
403
410
  }
@@ -412,10 +419,276 @@ exports.PgPolymorphismPlugin = {
412
419
  return behavior;
413
420
  },
414
421
  },
422
+ pgCodecAttribute: {
423
+ provides: ["inferred"],
424
+ after: ["default"],
425
+ before: ["override"],
426
+ callback(behavior, [codec, attributeName], build) {
427
+ // If this is the primary key of a related table of a
428
+ // `@interface mode:relational` table, then omit it from the schema
429
+ const tbl = build.pgTableResource(codec);
430
+ if (tbl) {
431
+ const pk = tbl.uniques.find((u) => u.isPrimary);
432
+ if (pk && pk.attributes.includes(attributeName)) {
433
+ const fkeys = Object.values(tbl.getRelations()).filter((r) => (0, grafast_1.arraysMatch)(r.localAttributes, pk.attributes));
434
+ const myName = build.inflection.tableType(codec);
435
+ for (const fkey of fkeys) {
436
+ if (fkey.remoteResource.codec.polymorphism?.mode ===
437
+ "relational" &&
438
+ Object.values(fkey.remoteResource.codec.polymorphism.types).find((t) => t.name === myName) &&
439
+ !fkey.remoteResource.codec.attributes[attributeName]) {
440
+ return [
441
+ behavior,
442
+ "-attribute:select -attribute:update -attribute:filterBy -attribute:orderBy",
443
+ ];
444
+ }
445
+ }
446
+ }
447
+ }
448
+ return behavior;
449
+ },
450
+ },
451
+ pgResource: {
452
+ provides: ["inferred"],
453
+ after: ["default"],
454
+ before: ["override"],
455
+ callback(behavior, resource, build) {
456
+ // Disable insert/update/delete on relational tables
457
+ const newBehavior = [behavior];
458
+ if (!resource.parameters &&
459
+ !resource.isUnique &&
460
+ !resource.isVirtual) {
461
+ if (resource.codec.polymorphism) {
462
+ // This is a polymorphic type
463
+ newBehavior.push("-resource:insert -resource:update -resource:delete");
464
+ }
465
+ else {
466
+ const resourceTypeName = build.inflection.tableType(resource.codec);
467
+ const relations = resource.getRelations();
468
+ const pk = resource.uniques?.find((u) => u.isPrimary);
469
+ if (pk) {
470
+ const pkAttributes = pk.attributes;
471
+ const pkRelations = Object.values(relations).filter((r) => (0, grafast_1.arraysMatch)(r.localAttributes, pkAttributes));
472
+ if (pkRelations.some((r) => r.remoteResource.codec.polymorphism?.mode ===
473
+ "relational" &&
474
+ Object.values(r.remoteResource.codec.polymorphism.types).some((t) => t.name === resourceTypeName))) {
475
+ // This is part of a relational polymorphic type
476
+ newBehavior.push("-resource:insert -resource:update -resource:delete");
477
+ }
478
+ }
479
+ }
480
+ }
481
+ return newBehavior;
482
+ },
483
+ },
415
484
  },
416
485
  hooks: {
486
+ build(build) {
487
+ const { input, inflection } = build;
488
+ const pgRegistry = input.pgRegistry;
489
+ const pgResourcesByPolymorphicTypeName = Object.create(null);
490
+ const allResources = Object.values(pgRegistry.pgResources);
491
+ for (const resource of allResources) {
492
+ if (resource.parameters)
493
+ continue;
494
+ if (typeof resource.from === "function")
495
+ continue;
496
+ if (!resource.codec.extensions?.tags)
497
+ continue;
498
+ const { implements: implementsTag } = resource.codec.extensions.tags;
499
+ /*
500
+ const { unionMember } = resource.codec.extensions.tags;
501
+ if (unionMember) {
502
+ const unions = Array.isArray(unionMember)
503
+ ? unionMember
504
+ : [unionMember];
505
+ for (const union of unions) {
506
+ if (!resourcesByPolymorphicTypeName[union]) {
507
+ resourcesByPolymorphicTypeName[union] = {
508
+ resources: [resource as PgResource],
509
+ type: "union",
510
+ };
511
+ } else {
512
+ if (resourcesByPolymorphicTypeName[union].type !== "union") {
513
+ throw new Error(`Inconsistent polymorphism`);
514
+ }
515
+ resourcesByPolymorphicTypeName[union].resources.push(
516
+ resource as PgResource,
517
+ );
518
+ }
519
+ }
520
+ }
521
+ */
522
+ if (implementsTag) {
523
+ const interfaces = Array.isArray(implementsTag)
524
+ ? implementsTag
525
+ : [implementsTag];
526
+ for (const interfaceName of interfaces) {
527
+ if (!pgResourcesByPolymorphicTypeName[interfaceName]) {
528
+ pgResourcesByPolymorphicTypeName[interfaceName] = {
529
+ resources: [resource],
530
+ type: "interface",
531
+ };
532
+ }
533
+ else {
534
+ if (pgResourcesByPolymorphicTypeName[interfaceName].type !==
535
+ "interface") {
536
+ throw new Error(`Inconsistent polymorphism`);
537
+ }
538
+ pgResourcesByPolymorphicTypeName[interfaceName].resources.push(resource);
539
+ }
540
+ }
541
+ }
542
+ }
543
+ const pgCodecByPolymorphicUnionModeTypeName = Object.create(null);
544
+ for (const codec of Object.values(pgRegistry.pgCodecs)) {
545
+ if (!codec.polymorphism)
546
+ continue;
547
+ if (codec.polymorphism.mode !== "union")
548
+ continue;
549
+ const interfaceTypeName = inflection.tableType(codec);
550
+ pgCodecByPolymorphicUnionModeTypeName[interfaceTypeName] = codec;
551
+ // Explicitly allow zero implementations.
552
+ if (!pgResourcesByPolymorphicTypeName[interfaceTypeName]) {
553
+ pgResourcesByPolymorphicTypeName[interfaceTypeName] = {
554
+ resources: [],
555
+ type: "interface",
556
+ };
557
+ }
558
+ }
559
+ return build.extend(build, {
560
+ pgResourcesByPolymorphicTypeName,
561
+ pgCodecByPolymorphicUnionModeTypeName,
562
+ nodeIdSpecForCodec(codec) {
563
+ const table = build.pgTableResource(codec);
564
+ if (!table) {
565
+ return null;
566
+ }
567
+ const tablePk = table.uniques.find((u) => u.isPrimary);
568
+ if (!tablePk) {
569
+ return null;
570
+ }
571
+ const tablePkAttributes = tablePk.attributes;
572
+ if (codec.polymorphism?.mode === "relational") {
573
+ const details = [];
574
+ for (const spec of Object.values(codec.polymorphism.types)) {
575
+ const relation = table.getRelation(spec.relationName);
576
+ const typeName = build.inflection.tableType(relation.remoteResource.codec);
577
+ const handler = build.getNodeIdHandler?.(typeName);
578
+ if (!handler) {
579
+ return null;
580
+ }
581
+ const pk = relation.remoteResource.uniques.find((u) => u.isPrimary);
582
+ if (!pk) {
583
+ return null;
584
+ }
585
+ details.push({
586
+ pkAttributes: pk.attributes,
587
+ handler,
588
+ });
589
+ }
590
+ const handlers = details.map((d) => d.handler);
591
+ const decodeNodeId = (0, graphile_build_1.EXPORTABLE)((handlers, makeDecodeNodeId) => makeDecodeNodeId(handlers), [handlers, grafast_1.makeDecodeNodeId]);
592
+ return (0, graphile_build_1.EXPORTABLE)((access, decodeNodeId, details, lambda, list, object, tablePkAttributes) => ($nodeId) => {
593
+ const $specifier = decodeNodeId($nodeId);
594
+ const $handlerMatches = list(details.map(({ handler, pkAttributes }) => {
595
+ const spec = handler.getSpec(access($specifier, handler.codec.name));
596
+ return object({
597
+ match: lambda($specifier, (specifier) => {
598
+ const value = specifier?.[handler.codec.name];
599
+ return value != null
600
+ ? handler.match(value)
601
+ : false;
602
+ }),
603
+ pks: list(pkAttributes.map((n) => spec[n])),
604
+ });
605
+ }));
606
+ const $pkValues = lambda($handlerMatches, (handlerMatches) => {
607
+ const match = handlerMatches.find((pk) => pk.match);
608
+ return match?.pks;
609
+ }, true);
610
+ return tablePkAttributes.reduce((memo, pkAttribute, i) => {
611
+ memo[pkAttribute] = access($pkValues, i);
612
+ return memo;
613
+ }, Object.create(null));
614
+ }, [
615
+ grafast_1.access,
616
+ decodeNodeId,
617
+ details,
618
+ grafast_1.lambda,
619
+ grafast_1.list,
620
+ grafast_1.object,
621
+ tablePkAttributes,
622
+ ]);
623
+ }
624
+ else if (codec.polymorphism?.mode === "single") {
625
+ // Lots of type names, but they all relate to the same table
626
+ const handlers = [];
627
+ for (const spec of Object.values(codec.polymorphism.types)) {
628
+ const typeName = spec.name;
629
+ const handler = build.getNodeIdHandler?.(typeName);
630
+ if (!handler) {
631
+ return null;
632
+ }
633
+ handlers.push(handler);
634
+ }
635
+ const decodeNodeId = (0, graphile_build_1.EXPORTABLE)((handlers, makeDecodeNodeId) => makeDecodeNodeId(handlers), [handlers, grafast_1.makeDecodeNodeId]);
636
+ return (0, graphile_build_1.EXPORTABLE)((access, decodeNodeId, handlers, lambda, list, object, tablePkAttributes) => ($nodeId) => {
637
+ const $specifier = decodeNodeId($nodeId);
638
+ const $handlerMatches = list(handlers.map((handler) => {
639
+ const spec = handler.getSpec(access($specifier, handler.codec.name));
640
+ return object({
641
+ match: lambda($specifier, (specifier) => {
642
+ const value = specifier?.[handler.codec.name];
643
+ return value != null
644
+ ? handler.match(value)
645
+ : false;
646
+ }),
647
+ pks: list(tablePkAttributes.map((n) => spec[n])),
648
+ });
649
+ }));
650
+ const $pkValues = lambda($handlerMatches, (handlerMatches) => {
651
+ // Explicit typing because TypeScript has lost the
652
+ // plot.
653
+ const match = handlerMatches.find((pk) => pk.match);
654
+ return match?.pks;
655
+ }, true);
656
+ return tablePkAttributes.reduce((memo, pkAttribute, i) => {
657
+ memo[pkAttribute] = access($pkValues, i);
658
+ return memo;
659
+ }, Object.create(null));
660
+ }, [
661
+ grafast_1.access,
662
+ decodeNodeId,
663
+ handlers,
664
+ grafast_1.lambda,
665
+ grafast_1.list,
666
+ grafast_1.object,
667
+ tablePkAttributes,
668
+ ]);
669
+ }
670
+ else if (codec.polymorphism) {
671
+ throw new Error(`Don't know how to get the spec for nodeId for codec with polymorphism mode '${codec.polymorphism.mode}'`);
672
+ }
673
+ else {
674
+ const typeName = build.inflection.tableType(codec);
675
+ const handler = build.getNodeIdHandler?.(typeName);
676
+ const { specForHandler } = build;
677
+ if (!handler || !specForHandler) {
678
+ return null;
679
+ }
680
+ return (0, graphile_build_1.EXPORTABLE)((handler, lambda, specForHandler) => ($nodeId) => {
681
+ // TODO: should change this to a common method like
682
+ // `const $decoded = getDecodedNodeIdForHandler(handler, $nodeId)`
683
+ const $decoded = lambda($nodeId, specForHandler(handler));
684
+ return handler.getSpec($decoded);
685
+ }, [handler, grafast_1.lambda, specForHandler]);
686
+ }
687
+ },
688
+ }, "Adding PgPolmorphismPlugin helpers to Build");
689
+ },
417
690
  init(_, build, _context) {
418
- const { inflection, options: { pgForbidSetofFunctionsToReturnNull }, setGraphQLTypeForPgCodec, } = build;
691
+ const { inflection, options: { pgForbidSetofFunctionsToReturnNull }, setGraphQLTypeForPgCodec, grafast: { list, constant, access, inhibitOnNull }, } = build;
419
692
  const unionsToRegister = new Map();
420
693
  for (const codec of build.pgCodecMetaLookup.keys()) {
421
694
  if (!codec.attributes) {
@@ -440,11 +713,14 @@ exports.PgPolymorphismPlugin = {
440
713
  if (selectable) {
441
714
  if (polymorphism.mode === "single" ||
442
715
  polymorphism.mode === "relational") {
716
+ const nodeable = build.behavior.pgCodecMatches(codec, "interface:node");
443
717
  const interfaceTypeName = inflection.tableType(codec);
444
718
  build.registerInterfaceType(interfaceTypeName, {
445
719
  pgCodec: codec,
446
720
  isPgPolymorphicTableType: true,
447
721
  pgPolymorphism: polymorphism,
722
+ // Since this comes from a table, if the table has the `node` interface then so should the interface
723
+ supportsNodeInterface: nodeable,
448
724
  }, () => ({
449
725
  description: codec.description,
450
726
  }), `PgPolymorphismPlugin single/relational interface type for ${codec.name}`);
@@ -459,9 +735,15 @@ exports.PgPolymorphismPlugin = {
459
735
  },
460
736
  nonNullNode: pgForbidSetofFunctionsToReturnNull,
461
737
  });
738
+ const resource = build.pgTableResource(codec);
739
+ const primaryKey = resource
740
+ ? resource.uniques.find((u) => u.isPrimary === true)
741
+ : undefined;
742
+ const pk = primaryKey?.attributes;
462
743
  for (const [typeIdentifier, spec] of Object.entries(polymorphism.types)) {
463
744
  const tableTypeName = spec.name;
464
- if (polymorphism.mode === "single") {
745
+ if (polymorphism.mode === "single" &&
746
+ build.behavior.pgCodecMatches(codec, "interface:node")) {
465
747
  build.registerObjectType(tableTypeName, {
466
748
  pgCodec: codec,
467
749
  isPgClassType: true,
@@ -474,7 +756,7 @@ exports.PgPolymorphismPlugin = {
474
756
  }, () => ({
475
757
  assertStep: pg_1.assertPgClassSingleStep,
476
758
  description: codec.description,
477
- interfaces: [
759
+ interfaces: () => [
478
760
  build.getTypeByName(interfaceTypeName),
479
761
  ],
480
762
  }), `PgPolymorphismPlugin single table type for ${codec.name}`);
@@ -488,15 +770,56 @@ exports.PgPolymorphismPlugin = {
488
770
  },
489
771
  nonNullNode: pgForbidSetofFunctionsToReturnNull,
490
772
  });
773
+ if (build.registerNodeIdHandler && resource && pk) {
774
+ const clean = (0, tamedevil_1.isSafeObjectPropertyName)(tableTypeName) &&
775
+ pk.every((attributeName) => (0, tamedevil_1.isSafeObjectPropertyName)(attributeName));
776
+ build.registerNodeIdHandler({
777
+ typeName: tableTypeName,
778
+ codec: build.getNodeIdCodec("base64JSON"),
779
+ deprecationReason: (0, utils_js_1.tagToString)(codec.extensions?.tags?.deprecation ??
780
+ resource?.extensions?.tags?.deprecated),
781
+ plan: clean
782
+ ? // eslint-disable-next-line graphile-export/exhaustive-deps
783
+ (0, graphile_build_1.EXPORTABLE)(tamedevil_1.default.run `\
784
+ return function (list, constant) {
785
+ return $record => list([constant(${tamedevil_1.default.lit(tableTypeName)}, false), ${tamedevil_1.default.join(pk.map((attributeName) => (0, tamedevil_1.default) `$record.get(${tamedevil_1.default.lit(attributeName)})`), ", ")}]);
786
+ }`, [list, constant])
787
+ : (0, graphile_build_1.EXPORTABLE)((constant, list, pk, tableTypeName) => ($record) => {
788
+ return list([
789
+ constant(tableTypeName, false),
790
+ ...pk.map((attribute) => $record.get(attribute)),
791
+ ]);
792
+ }, [constant, list, pk, tableTypeName]),
793
+ getSpec: clean
794
+ ? // eslint-disable-next-line graphile-export/exhaustive-deps
795
+ (0, graphile_build_1.EXPORTABLE)(tamedevil_1.default.run `\
796
+ return function (access, inhibitOnNull) {
797
+ return $list => ({ ${tamedevil_1.default.join(pk.map((attributeName, index) => (0, tamedevil_1.default) `${tamedevil_1.default.safeKeyOrThrow(attributeName)}: inhibitOnNull(access($list, [${tamedevil_1.default.lit(index + 1)}]))`), ", ")} });
798
+ }`, [access, inhibitOnNull])
799
+ : (0, graphile_build_1.EXPORTABLE)((access, inhibitOnNull, pk) => ($list) => {
800
+ const spec = pk.reduce((memo, attribute, index) => {
801
+ memo[attribute] = inhibitOnNull(access($list, [index + 1]));
802
+ return memo;
803
+ }, Object.create(null));
804
+ return spec;
805
+ }, [access, inhibitOnNull, pk]),
806
+ get: (0, graphile_build_1.EXPORTABLE)((resource) => (spec) => resource.get(spec), [resource]),
807
+ match: (0, graphile_build_1.EXPORTABLE)((tableTypeName) => (obj) => {
808
+ return obj[0] === tableTypeName;
809
+ }, [tableTypeName]),
810
+ });
811
+ }
491
812
  }
492
813
  }
493
814
  }
494
815
  else if (polymorphism.mode === "union") {
495
816
  const interfaceTypeName = inflection.tableType(codec);
817
+ const nodeable = build.behavior.pgCodecMatches(codec, "interface:node");
496
818
  build.registerInterfaceType(interfaceTypeName, {
497
819
  pgCodec: codec,
498
820
  isPgPolymorphicTableType: true,
499
821
  pgPolymorphism: polymorphism,
822
+ supportsNodeInterface: nodeable,
500
823
  }, () => ({
501
824
  description: codec.description,
502
825
  }), `PgPolymorphismPlugin union interface type for ${codec.name}`);
@@ -542,6 +865,10 @@ exports.PgPolymorphismPlugin = {
542
865
  .map((codec) => build.getTypeByName(build.inflection.tableType(codec)))
543
866
  .filter(isNotNullish),
544
867
  }), "PgPolymorphismPlugin @unionMember unions");
868
+ build.registerCursorConnection({
869
+ typeName: unionName,
870
+ scope: { isPgUnionMemberUnionConnection: true },
871
+ });
545
872
  });
546
873
  }
547
874
  return _;
@@ -1 +1 @@
1
- {"version":3,"file":"PgPolymorphismPlugin.js","sourceRoot":"","sources":["../../src/plugins/PgPolymorphismPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PgPolymorphismPlugin.js","sourceRoot":"","sources":["../../src/plugins/PgPolymorphismPlugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PgProceduresPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/PgProceduresPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,yBAAyB,EAEzB,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAM/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa,CAAC;QACtB,UAAU,UAAU;YAClB,oBAAoB,CAClB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;aAChB,GACA,MAAM,CAAC;YACV,6BAA6B,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;aAChB,GACA,MAAM,CAAC;SACX;QACD,UAAU,aAAa;YACrB;;;eAGG;YACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;SAC7B;KACF;IAED,UAAU,UAAU,CAAC;QACnB,UAAU,0BAA0B;YAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB;KACF;IAED,UAAU,cAAc,CAAC;QACvB,UAAU,aAAa;YACrB,YAAY,EAAE;gBACZ,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;aACtC,CAAC;SACH;QAED,UAAU,WAAW;YACnB,oCAAoC,CAAC,KAAK,EAAE;gBAC1C,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;gBACf,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC,GAChE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;gBACzD,uBAAuB,EAAE,yBAAyB,CAAC;aACpD,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzB,8BAA8B,CAAC,KAAK,EAAE;gBACpC,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;gBACf,eAAe,EAAE,iBAAiB,CAAC;aACpC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;CACF;AAoBD,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,MAmjB/C,CAAC"}
1
+ {"version":3,"file":"PgProceduresPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/PgProceduresPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,yBAAyB,EAEzB,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAM/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa,CAAC;QACtB,UAAU,UAAU;YAClB,oBAAoB,CAClB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;aAChB,GACA,MAAM,CAAC;YACV,6BAA6B,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;aAChB,GACA,MAAM,CAAC;SACX;QACD,UAAU,aAAa;YACrB;;;eAGG;YACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;SAC7B;KACF;IAED,UAAU,UAAU,CAAC;QACnB,UAAU,0BAA0B;YAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB;KACF;IAED,UAAU,cAAc,CAAC;QACvB,UAAU,aAAa;YACrB,YAAY,EAAE;gBACZ,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;aACtC,CAAC;SACH;QAED,UAAU,WAAW;YACnB,oCAAoC,CAAC,KAAK,EAAE;gBAC1C,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;gBACf,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC,GAChE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;gBACzD,uBAAuB,EAAE,yBAAyB,CAAC;aACpD,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzB,8BAA8B,CAAC,KAAK,EAAE;gBACpC,WAAW,EAAE,MAAM,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC;gBACf,eAAe,EAAE,iBAAiB,CAAC;aACpC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;CACF;AAoBD,eAAO,MAAM,kBAAkB,EAAE,cAAc,CAAC,MAqjB/C,CAAC"}
@@ -226,7 +226,9 @@ exports.PgProceduresPlugin = {
226
226
  const returnsSetof = pgProc.proretset;
227
227
  const namespaceName = namespace.nspname;
228
228
  const procName = pgProc.proname;
229
- const fromCallback = (0, graphile_build_1.EXPORTABLE)((namespaceName, procName, sql, sqlFromArgDigests) => (...args) => sql `${sql.identifier(namespaceName, procName)}(${sqlFromArgDigests(args)})`, [namespaceName, procName, pg_sql2_1.default, pg_1.sqlFromArgDigests]);
229
+ const sqlIdent = info.helpers.pgBasics.identifier(namespaceName, procName);
230
+ (0, utils_js_1.exportNameHint)(sqlIdent, `${procName}FunctionIdentifer`);
231
+ const fromCallback = (0, graphile_build_1.EXPORTABLE)((sql, sqlFromArgDigests, sqlIdent) => (...args) => sql `${sqlIdent}(${sqlFromArgDigests(args)})`, [pg_sql2_1.default, pg_1.sqlFromArgDigests, sqlIdent]);
230
232
  (0, utils_js_1.addBehaviorToTags)(tags, "-filter -order", true);
231
233
  const extensions = {
232
234
  pg: {
@@ -398,7 +400,7 @@ exports.PgProceduresPlugin = {
398
400
  if (overload) {
399
401
  return;
400
402
  }
401
- helpers.pgProcedures.getResourceOptions(serviceName, pgProc);
403
+ await helpers.pgProcedures.getResourceOptions(serviceName, pgProc);
402
404
  },
403
405
  },
404
406
  }),