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.
- package/CHANGELOG.md +535 -0
- package/README.md +6 -7
- package/dist/behavior.d.ts +0 -1
- package/dist/behavior.d.ts.map +1 -1
- package/dist/behavior.js +0 -1
- package/dist/behavior.js.map +1 -1
- package/dist/index.d.ts +84 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/plugins/PgAttributesPlugin.d.ts +0 -1
- package/dist/plugins/PgAttributesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgAttributesPlugin.js +9 -11
- package/dist/plugins/PgAttributesPlugin.js.map +1 -1
- package/dist/plugins/PgBasicsPlugin.d.ts +20 -10
- package/dist/plugins/PgBasicsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgBasicsPlugin.js +50 -2
- package/dist/plugins/PgBasicsPlugin.js.map +1 -1
- package/dist/plugins/PgCodecsPlugin.d.ts +6 -0
- package/dist/plugins/PgCodecsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgCodecsPlugin.js +240 -211
- package/dist/plugins/PgCodecsPlugin.js.map +1 -1
- package/dist/plugins/PgConnectionArgOrderByPlugin.d.ts.map +1 -1
- package/dist/plugins/PgConnectionArgOrderByPlugin.js +3 -0
- package/dist/plugins/PgConnectionArgOrderByPlugin.js.map +1 -1
- package/dist/plugins/PgCustomTypeFieldPlugin.d.ts.map +1 -1
- package/dist/plugins/PgCustomTypeFieldPlugin.js +105 -40
- package/dist/plugins/PgCustomTypeFieldPlugin.js.map +1 -1
- package/dist/plugins/PgEnumTablesPlugin.d.ts +3 -0
- package/dist/plugins/PgEnumTablesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgEnumTablesPlugin.js +49 -31
- package/dist/plugins/PgEnumTablesPlugin.js.map +1 -1
- package/dist/plugins/PgFakeConstraintsPlugin.js +3 -1
- package/dist/plugins/PgFakeConstraintsPlugin.js.map +1 -1
- package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.js +5 -76
- package/dist/plugins/PgInterfaceModeUnionAllRowsPlugin.js.map +1 -1
- package/dist/plugins/PgIntrospectionPlugin.d.ts.map +1 -1
- package/dist/plugins/PgIntrospectionPlugin.js +119 -104
- package/dist/plugins/PgIntrospectionPlugin.js.map +1 -1
- package/dist/plugins/PgLtreePlugin.d.ts +2 -0
- package/dist/plugins/PgLtreePlugin.d.ts.map +1 -0
- package/dist/plugins/PgLtreePlugin.js +66 -0
- package/dist/plugins/PgLtreePlugin.js.map +1 -0
- package/dist/plugins/PgMutationPayloadEdgePlugin.d.ts.map +1 -1
- package/dist/plugins/PgMutationPayloadEdgePlugin.js +2 -9
- package/dist/plugins/PgMutationPayloadEdgePlugin.js.map +1 -1
- package/dist/plugins/PgMutationUpdateDeletePlugin.d.ts.map +1 -1
- package/dist/plugins/PgMutationUpdateDeletePlugin.js +41 -39
- package/dist/plugins/PgMutationUpdateDeletePlugin.js.map +1 -1
- package/dist/plugins/PgNodeIdAttributesPlugin.d.ts +0 -1
- package/dist/plugins/PgNodeIdAttributesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgNodeIdAttributesPlugin.js +32 -32
- package/dist/plugins/PgNodeIdAttributesPlugin.js.map +1 -1
- package/dist/plugins/PgOrderAllAttributesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgOrderAllAttributesPlugin.js +2 -2
- package/dist/plugins/PgOrderAllAttributesPlugin.js.map +1 -1
- package/dist/plugins/PgOrderByPrimaryKeyPlugin.d.ts.map +1 -1
- package/dist/plugins/PgOrderByPrimaryKeyPlugin.js +5 -5
- package/dist/plugins/PgOrderByPrimaryKeyPlugin.js.map +1 -1
- package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.d.ts +18 -0
- package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.d.ts.map +1 -0
- package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.js +136 -0
- package/dist/plugins/PgPolymorphismOnlyArgumentPlugin.js.map +1 -0
- package/dist/plugins/PgPolymorphismPlugin.d.ts +25 -1
- package/dist/plugins/PgPolymorphismPlugin.d.ts.map +1 -1
- package/dist/plugins/PgPolymorphismPlugin.js +335 -8
- package/dist/plugins/PgPolymorphismPlugin.js.map +1 -1
- package/dist/plugins/PgProceduresPlugin.d.ts.map +1 -1
- package/dist/plugins/PgProceduresPlugin.js +4 -2
- package/dist/plugins/PgProceduresPlugin.js.map +1 -1
- package/dist/plugins/PgRBACPlugin.d.ts.map +1 -1
- package/dist/plugins/PgRBACPlugin.js +7 -12
- package/dist/plugins/PgRBACPlugin.js.map +1 -1
- package/dist/plugins/PgRefsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgRefsPlugin.js +9 -3
- package/dist/plugins/PgRefsPlugin.js.map +1 -1
- package/dist/plugins/PgRelationsPlugin.d.ts +8 -1
- package/dist/plugins/PgRelationsPlugin.d.ts.map +1 -1
- package/dist/plugins/PgRelationsPlugin.js +27 -14
- package/dist/plugins/PgRelationsPlugin.js.map +1 -1
- package/dist/plugins/PgRowByUniquePlugin.d.ts.map +1 -1
- package/dist/plugins/PgRowByUniquePlugin.js +1 -0
- package/dist/plugins/PgRowByUniquePlugin.js.map +1 -1
- package/dist/plugins/PgTableNodePlugin.d.ts.map +1 -1
- package/dist/plugins/PgTableNodePlugin.js +51 -33
- package/dist/plugins/PgTableNodePlugin.js.map +1 -1
- package/dist/plugins/PgTablesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgTablesPlugin.js +28 -22
- package/dist/plugins/PgTablesPlugin.js.map +1 -1
- package/dist/plugins/PgTypesPlugin.d.ts +0 -1
- package/dist/plugins/PgTypesPlugin.d.ts.map +1 -1
- package/dist/plugins/PgTypesPlugin.js +6 -7
- package/dist/plugins/PgTypesPlugin.js.map +1 -1
- package/dist/preset.d.ts.map +1 -1
- package/dist/preset.js +6 -2
- package/dist/preset.js.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +63 -2
- package/dist/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/watchFixtures.js +1 -1
- package/package.json +34 -33
- package/dist/interfaces.d.ts +0 -89
- package/dist/interfaces.d.ts.map +0 -1
- package/dist/interfaces.js +0 -3
- package/dist/interfaces.js.map +0 -1
- package/dist/pgServices.d.ts +0 -18
- package/dist/pgServices.d.ts.map +0 -1
- package/dist/pgServices.js +0 -133
- package/dist/pgServices.js.map +0 -1
- package/dist/plugins/PgContextPlugin.d.ts +0 -2
- package/dist/plugins/PgContextPlugin.d.ts.map +0 -1
- package/dist/plugins/PgContextPlugin.js +0 -52
- 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(
|
|
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 (
|
|
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,
|
|
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
|
|
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
|
}),
|