graphile-build-pg 4.13.0 → 4.14.1
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/README.md +4 -13
- package/node8plus/GraphQLJSON.js +0 -11
- package/node8plus/GraphQLJSON.js.map +1 -1
- package/node8plus/PgLiveProvider.js +4 -11
- package/node8plus/PgLiveProvider.js.map +1 -1
- package/node8plus/QueryBuilder.js +42 -176
- package/node8plus/QueryBuilder.js.map +1 -1
- package/node8plus/index.js +8 -47
- package/node8plus/index.js.map +1 -1
- package/node8plus/inflections.js +9 -61
- package/node8plus/inflections.js.map +1 -1
- package/node8plus/omit.js +7 -22
- package/node8plus/omit.js.map +1 -1
- package/node8plus/parseIdentifier.js +0 -1
- package/node8plus/parseIdentifier.js.map +1 -1
- package/node8plus/pgPrepareAndRun.js +2 -14
- package/node8plus/pgPrepareAndRun.js.map +1 -1
- package/node8plus/plugins/PageInfoStartEndCursor.js +0 -4
- package/node8plus/plugins/PageInfoStartEndCursor.js.map +1 -1
- package/node8plus/plugins/PgAllRows.js +0 -29
- package/node8plus/plugins/PgAllRows.js.map +1 -1
- package/node8plus/plugins/PgBackwardRelationPlugin.js +2 -41
- package/node8plus/plugins/PgBackwardRelationPlugin.js.map +1 -1
- package/node8plus/plugins/PgBasicsPlugin.js +20 -147
- package/node8plus/plugins/PgBasicsPlugin.js.map +1 -1
- package/node8plus/plugins/PgColumnDeprecationPlugin.js +2 -5
- package/node8plus/plugins/PgColumnDeprecationPlugin.js.map +1 -1
- package/node8plus/plugins/PgColumnsPlugin.js +4 -17
- package/node8plus/plugins/PgColumnsPlugin.js.map +1 -1
- package/node8plus/plugins/PgComputedColumnsPlugin.js +4 -19
- package/node8plus/plugins/PgComputedColumnsPlugin.js.map +1 -1
- package/node8plus/plugins/PgConditionComputedColumnPlugin.js +12 -23
- package/node8plus/plugins/PgConditionComputedColumnPlugin.js.map +1 -1
- package/node8plus/plugins/PgConnectionArgCondition.js +1 -9
- package/node8plus/plugins/PgConnectionArgCondition.js.map +1 -1
- package/node8plus/plugins/PgConnectionArgFirstLastBeforeAfter.js +0 -12
- package/node8plus/plugins/PgConnectionArgFirstLastBeforeAfter.js.map +1 -1
- package/node8plus/plugins/PgConnectionArgOrderBy.js +2 -19
- package/node8plus/plugins/PgConnectionArgOrderBy.js.map +1 -1
- package/node8plus/plugins/PgConnectionArgOrderByDefaultValue.js +0 -6
- package/node8plus/plugins/PgConnectionArgOrderByDefaultValue.js.map +1 -1
- package/node8plus/plugins/PgConnectionTotalCount.js +0 -8
- package/node8plus/plugins/PgConnectionTotalCount.js.map +1 -1
- package/node8plus/plugins/PgForwardRelationPlugin.js +2 -25
- package/node8plus/plugins/PgForwardRelationPlugin.js.map +1 -1
- package/node8plus/plugins/PgIntrospectionPlugin.js +91 -180
- package/node8plus/plugins/PgIntrospectionPlugin.js.flow +30 -2
- package/node8plus/plugins/PgIntrospectionPlugin.js.map +1 -1
- package/node8plus/plugins/PgJWTPlugin.js +2 -18
- package/node8plus/plugins/PgJWTPlugin.js.map +1 -1
- package/node8plus/plugins/PgMutationCreatePlugin.js +0 -18
- package/node8plus/plugins/PgMutationCreatePlugin.js.map +1 -1
- package/node8plus/plugins/PgMutationPayloadEdgePlugin.js +4 -25
- package/node8plus/plugins/PgMutationPayloadEdgePlugin.js.map +1 -1
- package/node8plus/plugins/PgMutationProceduresPlugin.js +0 -6
- package/node8plus/plugins/PgMutationProceduresPlugin.js.map +1 -1
- package/node8plus/plugins/PgMutationUpdateDeletePlugin.js +14 -49
- package/node8plus/plugins/PgMutationUpdateDeletePlugin.js.flow +5 -2
- package/node8plus/plugins/PgMutationUpdateDeletePlugin.js.map +1 -1
- package/node8plus/plugins/PgNodeAliasPostGraphile.js +0 -6
- package/node8plus/plugins/PgNodeAliasPostGraphile.js.map +1 -1
- package/node8plus/plugins/PgOrderAllColumnsPlugin.js +0 -4
- package/node8plus/plugins/PgOrderAllColumnsPlugin.js.map +1 -1
- package/node8plus/plugins/PgOrderByPrimaryKeyPlugin.js +0 -6
- package/node8plus/plugins/PgOrderByPrimaryKeyPlugin.js.map +1 -1
- package/node8plus/plugins/PgOrderComputedColumnsPlugin.js +10 -14
- package/node8plus/plugins/PgOrderComputedColumnsPlugin.js.map +1 -1
- package/node8plus/plugins/PgQueryProceduresPlugin.js +4 -16
- package/node8plus/plugins/PgQueryProceduresPlugin.js.map +1 -1
- package/node8plus/plugins/PgRecordFunctionConnectionPlugin.js +3 -20
- package/node8plus/plugins/PgRecordFunctionConnectionPlugin.js.map +1 -1
- package/node8plus/plugins/PgRecordReturnTypesPlugin.js +11 -16
- package/node8plus/plugins/PgRecordReturnTypesPlugin.js.map +1 -1
- package/node8plus/plugins/PgRowByUniqueConstraint.js +4 -25
- package/node8plus/plugins/PgRowByUniqueConstraint.js.map +1 -1
- package/node8plus/plugins/PgRowNode.js +0 -32
- package/node8plus/plugins/PgRowNode.js.map +1 -1
- package/node8plus/plugins/PgScalarFunctionConnectionPlugin.js +3 -17
- package/node8plus/plugins/PgScalarFunctionConnectionPlugin.js.map +1 -1
- package/node8plus/plugins/PgTablesPlugin.js +7 -59
- package/node8plus/plugins/PgTablesPlugin.js.map +1 -1
- package/node8plus/plugins/PgTypesPlugin.js +140 -240
- package/node8plus/plugins/PgTypesPlugin.js.flow +76 -23
- package/node8plus/plugins/PgTypesPlugin.js.map +1 -1
- package/node8plus/plugins/addStartEndCursor.js +2 -5
- package/node8plus/plugins/addStartEndCursor.js.map +1 -1
- package/node8plus/plugins/debugSql.js +1 -16
- package/node8plus/plugins/debugSql.js.map +1 -1
- package/node8plus/plugins/introspectionQuery.js +3 -4
- package/node8plus/plugins/introspectionQuery.js.flow +11 -3
- package/node8plus/plugins/introspectionQuery.js.map +1 -1
- package/node8plus/plugins/makeProcField.js +40 -90
- package/node8plus/plugins/makeProcField.js.map +1 -1
- package/node8plus/plugins/pgField.js +2 -7
- package/node8plus/plugins/pgField.js.map +1 -1
- package/node8plus/plugins/viaTemporaryTable.js +6 -12
- package/node8plus/plugins/viaTemporaryTable.js.map +1 -1
- package/node8plus/postgresInterval.js +4 -4
- package/node8plus/postgresInterval.js.map +1 -1
- package/node8plus/queryFromResolveDataFactory.js +33 -77
- package/node8plus/queryFromResolveDataFactory.js.map +1 -1
- package/node8plus/utils.js +8 -9
- package/node8plus/utils.js.map +1 -1
- package/node8plus/withPgClient.js +4 -26
- package/node8plus/withPgClient.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
const debug = (0, _debug.default)("graphile-build-pg");
|
|
13
|
-
|
|
14
10
|
var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
15
11
|
pgDisableDefaultMutations
|
|
16
12
|
}) {
|
|
17
13
|
if (pgDisableDefaultMutations) {
|
|
18
14
|
return;
|
|
19
15
|
}
|
|
20
|
-
|
|
21
16
|
builder.hook("GraphQLObjectType:fields", (fields, build, context) => {
|
|
22
17
|
const {
|
|
23
18
|
extend,
|
|
@@ -49,29 +44,23 @@ var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
|
49
44
|
},
|
|
50
45
|
fieldWithHooks
|
|
51
46
|
} = context;
|
|
52
|
-
|
|
53
47
|
if (!isRootMutation) {
|
|
54
48
|
return fields;
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
return extend(fields, pgIntrospectionResultsByKind.class.reduce((memo, table) => {
|
|
58
51
|
// PERFORMANCE: These used to be .filter(...) calls
|
|
59
52
|
if (!table.namespace) return memo;
|
|
60
53
|
if (!table.isSelectable) return memo;
|
|
61
54
|
if (!table.isInsertable || omit(table, "create")) return memo;
|
|
62
55
|
const Table = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);
|
|
63
|
-
|
|
64
56
|
if (!Table) {
|
|
65
57
|
debug(`There was no table type for table '${table.namespace.name}.${table.name}', so we're not generating a create mutation for it.`);
|
|
66
58
|
return memo;
|
|
67
59
|
}
|
|
68
|
-
|
|
69
60
|
const TableInput = pgGetGqlInputTypeByTypeIdAndModifier(table.type.id, null);
|
|
70
|
-
|
|
71
61
|
if (!TableInput) {
|
|
72
62
|
debug(`There was no input type for table '${table.namespace.name}.${table.name}', so we're going to omit it from the create mutation.`);
|
|
73
63
|
}
|
|
74
|
-
|
|
75
64
|
const tableTypeName = inflection.tableType(table);
|
|
76
65
|
const InputType = newWithHooks(GraphQLInputObjectType, {
|
|
77
66
|
name: inflection.createInputType(table),
|
|
@@ -143,7 +132,6 @@ var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
|
143
132
|
type: new GraphQLNonNull(InputType)
|
|
144
133
|
}
|
|
145
134
|
},
|
|
146
|
-
|
|
147
135
|
async resolve(data, args, resolveContext, resolveInfo) {
|
|
148
136
|
const {
|
|
149
137
|
input
|
|
@@ -153,7 +141,6 @@ var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
|
153
141
|
} = resolveContext;
|
|
154
142
|
const parsedResolveInfoFragment = parseResolveInfo(resolveInfo);
|
|
155
143
|
parsedResolveInfoFragment.args = args; // Allow overriding via makeWrapResolversPlugin
|
|
156
|
-
|
|
157
144
|
const resolveData = getDataFromParsedResolveInfoFragment(parsedResolveInfoFragment, PayloadType);
|
|
158
145
|
const insertedRowAlias = sql.identifier(Symbol());
|
|
159
146
|
const query = queryFromResolveData(insertedRowAlias, insertedRowAlias, resolveData, {}, null, resolveContext, resolveInfo.rootValue);
|
|
@@ -163,7 +150,6 @@ var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
|
163
150
|
relevantAttributes.forEach(attr => {
|
|
164
151
|
const fieldName = inflection.column(attr);
|
|
165
152
|
const val = inputData[fieldName];
|
|
166
|
-
|
|
167
153
|
if (Object.prototype.hasOwnProperty.call(inputData, fieldName)) {
|
|
168
154
|
sqlColumns.push(sql.identifier(attr.name));
|
|
169
155
|
sqlValues.push(gql2pg(val, attr.type, attr.typeModifier));
|
|
@@ -172,7 +158,6 @@ var PgMutationCreatePlugin = function PgMutationCreatePlugin(builder, {
|
|
|
172
158
|
const mutationQuery = sql.query`\
|
|
173
159
|
insert into ${sql.identifier(table.namespace.name, table.name)} ${sqlColumns.length ? sql.fragment`(${sql.join(sqlColumns, ", ")}) values(${sql.join(sqlValues, ", ")})` : sql.fragment`default values`} returning *`;
|
|
174
160
|
let row;
|
|
175
|
-
|
|
176
161
|
try {
|
|
177
162
|
await pgClient.query("SAVEPOINT graphql_mutation");
|
|
178
163
|
const rows = await viaTemporaryTable(pgClient, sql.identifier(table.namespace.name, table.name), mutationQuery, insertedRowAlias, query);
|
|
@@ -182,13 +167,11 @@ insert into ${sql.identifier(table.namespace.name, table.name)} ${sqlColumns.len
|
|
|
182
167
|
await pgClient.query("ROLLBACK TO SAVEPOINT graphql_mutation");
|
|
183
168
|
throw e;
|
|
184
169
|
}
|
|
185
|
-
|
|
186
170
|
return {
|
|
187
171
|
clientMutationId: input.clientMutationId,
|
|
188
172
|
data: row
|
|
189
173
|
};
|
|
190
174
|
}
|
|
191
|
-
|
|
192
175
|
};
|
|
193
176
|
}, {
|
|
194
177
|
pgFieldIntrospection: table,
|
|
@@ -201,6 +184,5 @@ insert into ${sql.identifier(table.namespace.name, table.name)} ${sqlColumns.len
|
|
|
201
184
|
}, {}), `Adding default 'create' mutation to root mutation`);
|
|
202
185
|
}, ["PgMutationCreate"], [], ["PgTables"]);
|
|
203
186
|
};
|
|
204
|
-
|
|
205
187
|
exports.default = PgMutationCreatePlugin;
|
|
206
188
|
//# sourceMappingURL=PgMutationCreatePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/PgMutationCreatePlugin.js"],"names":["debug","PgMutationCreatePlugin","builder","pgDisableDefaultMutations","hook","fields","build","context","extend","newWithHooks","parseResolveInfo","pgIntrospectionResultsByKind","pgGetGqlTypeByTypeIdAndModifier","pgGetGqlInputTypeByTypeIdAndModifier","pgSql","sql","gql2pg","graphql","GraphQLObjectType","GraphQLInputObjectType","GraphQLNonNull","GraphQLString","pgColumnFilter","inflection","pgQueryFromResolveData","queryFromResolveData","pgOmit","omit","pgViaTemporaryTable","viaTemporaryTable","describePgEntity","sqlCommentByAddingTags","pgField","scope","isRootMutation","fieldWithHooks","class","reduce","memo","table","namespace","isSelectable","isInsertable","Table","type","id","name","TableInput","tableTypeName","tableType","InputType","createInputType","description","wrapDescription","clientMutationId","tableFieldName","__origin","isPgCreateInputType","pgInflection","pgIntrospection","PayloadType","createPayloadType","tableName","isPgCreatePayloadResultField","pgFieldIntrospection","isMutationPayload","isPgCreatePayloadType","fieldName","createField","getDataFromParsedResolveInfoFragment","relevantAttributes","attributes","filter","attr","args","input","resolve","data","resolveContext","resolveInfo","pgClient","parsedResolveInfoFragment","resolveData","insertedRowAlias","identifier","Symbol","query","rootValue","sqlColumns","sqlValues","inputData","forEach","column","val","Object","prototype","hasOwnProperty","call","push","typeModifier","mutationQuery","length","fragment","join","row","rows","e","isPgCreateMutationField"],"mappings":"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","sourcesContent":["// @flow\nimport type { Plugin } from \"graphile-build\";\nimport debugFactory from \"debug\";\n\nconst debug = debugFactory(\"graphile-build-pg\");\n\nexport default (function PgMutationCreatePlugin(\n builder,\n { pgDisableDefaultMutations }\n) {\n if (pgDisableDefaultMutations) {\n return;\n }\n\n builder.hook(\n \"GraphQLObjectType:fields\",\n (fields, build, context) => {\n const {\n extend,\n newWithHooks,\n parseResolveInfo,\n pgIntrospectionResultsByKind,\n pgGetGqlTypeByTypeIdAndModifier,\n pgGetGqlInputTypeByTypeIdAndModifier,\n pgSql: sql,\n gql2pg,\n graphql: {\n GraphQLObjectType,\n GraphQLInputObjectType,\n GraphQLNonNull,\n GraphQLString,\n },\n pgColumnFilter,\n inflection,\n pgQueryFromResolveData: queryFromResolveData,\n pgOmit: omit,\n pgViaTemporaryTable: viaTemporaryTable,\n describePgEntity,\n sqlCommentByAddingTags,\n pgField,\n } = build;\n const {\n scope: { isRootMutation },\n fieldWithHooks,\n } = context;\n\n if (!isRootMutation) {\n return fields;\n }\n\n return extend(\n fields,\n pgIntrospectionResultsByKind.class.reduce((memo, table) => {\n // PERFORMANCE: These used to be .filter(...) calls\n if (!table.namespace) return memo;\n if (!table.isSelectable) return memo;\n if (!table.isInsertable || omit(table, \"create\")) return memo;\n\n const Table = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n if (!Table) {\n debug(\n `There was no table type for table '${table.namespace.name}.${table.name}', so we're not generating a create mutation for it.`\n );\n return memo;\n }\n const TableInput = pgGetGqlInputTypeByTypeIdAndModifier(\n table.type.id,\n null\n );\n if (!TableInput) {\n debug(\n `There was no input type for table '${table.namespace.name}.${table.name}', so we're going to omit it from the create mutation.`\n );\n }\n const tableTypeName = inflection.tableType(table);\n const InputType = newWithHooks(\n GraphQLInputObjectType,\n {\n name: inflection.createInputType(table),\n description: build.wrapDescription(\n `All input for the create \\`${tableTypeName}\\` mutation.`,\n \"type\"\n ),\n fields: {\n clientMutationId: {\n description: build.wrapDescription(\n \"An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.\",\n \"field\"\n ),\n type: GraphQLString,\n },\n ...(TableInput\n ? {\n [inflection.tableFieldName(table)]: {\n description: build.wrapDescription(\n `The \\`${tableTypeName}\\` to be created by this mutation.`,\n \"field\"\n ),\n type: new GraphQLNonNull(TableInput),\n },\n }\n : null),\n },\n },\n {\n __origin: `Adding table create input type for ${describePgEntity(\n table\n )}. You can rename the table's GraphQL type via a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n name: \"newNameHere\",\n }\n )}`,\n isPgCreateInputType: true,\n pgInflection: table, // TODO:v5: remove - TYPO!\n pgIntrospection: table,\n }\n );\n const PayloadType = newWithHooks(\n GraphQLObjectType,\n {\n name: inflection.createPayloadType(table),\n description: build.wrapDescription(\n `The output of our create \\`${tableTypeName}\\` mutation.`,\n \"type\"\n ),\n fields: ({ fieldWithHooks }) => {\n const tableName = inflection.tableFieldName(table);\n return {\n clientMutationId: {\n description: build.wrapDescription(\n \"The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.\",\n \"field\"\n ),\n type: GraphQLString,\n },\n [tableName]: pgField(\n build,\n fieldWithHooks,\n tableName,\n {\n description: build.wrapDescription(\n `The \\`${tableTypeName}\\` that was created by this mutation.`,\n \"field\"\n ),\n type: Table,\n },\n {\n isPgCreatePayloadResultField: true,\n pgFieldIntrospection: table,\n }\n ),\n };\n },\n },\n {\n __origin: `Adding table create payload type for ${describePgEntity(\n table\n )}. You can rename the table's GraphQL type via a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n name: \"newNameHere\",\n }\n )}\\n\\nor disable the built-in create mutation via:\\n\\n ${sqlCommentByAddingTags(\n table,\n { omit: \"create\" }\n )}`,\n isMutationPayload: true,\n isPgCreatePayloadType: true,\n pgIntrospection: table,\n }\n );\n const fieldName = inflection.createField(table);\n memo = build.extend(\n memo,\n {\n [fieldName]: fieldWithHooks(\n fieldName,\n context => {\n const { getDataFromParsedResolveInfoFragment } = context;\n const relevantAttributes = table.attributes.filter(\n attr =>\n pgColumnFilter(attr, build, context) &&\n !omit(attr, \"create\")\n );\n return {\n description: build.wrapDescription(\n `Creates a single \\`${tableTypeName}\\`.`,\n \"field\"\n ),\n type: PayloadType,\n args: {\n input: {\n type: new GraphQLNonNull(InputType),\n },\n },\n async resolve(data, args, resolveContext, resolveInfo) {\n const { input } = args;\n const { pgClient } = resolveContext;\n const parsedResolveInfoFragment =\n parseResolveInfo(resolveInfo);\n parsedResolveInfoFragment.args = args; // Allow overriding via makeWrapResolversPlugin\n const resolveData = getDataFromParsedResolveInfoFragment(\n parsedResolveInfoFragment,\n PayloadType\n );\n const insertedRowAlias = sql.identifier(Symbol());\n const query = queryFromResolveData(\n insertedRowAlias,\n insertedRowAlias,\n resolveData,\n {},\n null,\n resolveContext,\n resolveInfo.rootValue\n );\n const sqlColumns = [];\n const sqlValues = [];\n const inputData = input[inflection.tableFieldName(table)];\n relevantAttributes.forEach(attr => {\n const fieldName = inflection.column(attr);\n const val = inputData[fieldName];\n if (\n Object.prototype.hasOwnProperty.call(\n inputData,\n fieldName\n )\n ) {\n sqlColumns.push(sql.identifier(attr.name));\n sqlValues.push(\n gql2pg(val, attr.type, attr.typeModifier)\n );\n }\n });\n\n const mutationQuery = sql.query`\\\ninsert into ${sql.identifier(table.namespace.name, table.name)} ${\n sqlColumns.length\n ? sql.fragment`(${sql.join(\n sqlColumns,\n \", \"\n )}) values(${sql.join(sqlValues, \", \")})`\n : sql.fragment`default values`\n } returning *`;\n\n let row;\n try {\n await pgClient.query(\"SAVEPOINT graphql_mutation\");\n const rows = await viaTemporaryTable(\n pgClient,\n sql.identifier(table.namespace.name, table.name),\n mutationQuery,\n insertedRowAlias,\n query\n );\n row = rows[0];\n await pgClient.query(\n \"RELEASE SAVEPOINT graphql_mutation\"\n );\n } catch (e) {\n await pgClient.query(\n \"ROLLBACK TO SAVEPOINT graphql_mutation\"\n );\n throw e;\n }\n return {\n clientMutationId: input.clientMutationId,\n data: row,\n };\n },\n };\n },\n {\n pgFieldIntrospection: table,\n isPgCreateMutationField: true,\n }\n ),\n },\n `Adding create mutation for ${describePgEntity(\n table\n )}. You can omit this default mutation with a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n omit: \"create\",\n }\n )}`\n );\n return memo;\n }, {}),\n `Adding default 'create' mutation to root mutation`\n );\n },\n [\"PgMutationCreate\"],\n [],\n [\"PgTables\"]\n );\n}: Plugin);\n"],"file":"PgMutationCreatePlugin.js"}
|
|
1
|
+
{"version":3,"file":"PgMutationCreatePlugin.js","names":["_debug","_interopRequireDefault","require","obj","__esModule","default","debug","debugFactory","PgMutationCreatePlugin","builder","pgDisableDefaultMutations","hook","fields","build","context","extend","newWithHooks","parseResolveInfo","pgIntrospectionResultsByKind","pgGetGqlTypeByTypeIdAndModifier","pgGetGqlInputTypeByTypeIdAndModifier","pgSql","sql","gql2pg","graphql","GraphQLObjectType","GraphQLInputObjectType","GraphQLNonNull","GraphQLString","pgColumnFilter","inflection","pgQueryFromResolveData","queryFromResolveData","pgOmit","omit","pgViaTemporaryTable","viaTemporaryTable","describePgEntity","sqlCommentByAddingTags","pgField","scope","isRootMutation","fieldWithHooks","class","reduce","memo","table","namespace","isSelectable","isInsertable","Table","type","id","name","TableInput","tableTypeName","tableType","InputType","createInputType","description","wrapDescription","clientMutationId","tableFieldName","__origin","isPgCreateInputType","pgInflection","pgIntrospection","PayloadType","createPayloadType","tableName","isPgCreatePayloadResultField","pgFieldIntrospection","isMutationPayload","isPgCreatePayloadType","fieldName","createField","getDataFromParsedResolveInfoFragment","relevantAttributes","attributes","filter","attr","args","input","resolve","data","resolveContext","resolveInfo","pgClient","parsedResolveInfoFragment","resolveData","insertedRowAlias","identifier","Symbol","query","rootValue","sqlColumns","sqlValues","inputData","forEach","column","val","Object","prototype","hasOwnProperty","call","push","typeModifier","mutationQuery","length","fragment","join","row","rows","e","isPgCreateMutationField","exports"],"sources":["../../src/plugins/PgMutationCreatePlugin.js"],"sourcesContent":["// @flow\nimport type { Plugin } from \"graphile-build\";\nimport debugFactory from \"debug\";\n\nconst debug = debugFactory(\"graphile-build-pg\");\n\nexport default (function PgMutationCreatePlugin(\n builder,\n { pgDisableDefaultMutations }\n) {\n if (pgDisableDefaultMutations) {\n return;\n }\n\n builder.hook(\n \"GraphQLObjectType:fields\",\n (fields, build, context) => {\n const {\n extend,\n newWithHooks,\n parseResolveInfo,\n pgIntrospectionResultsByKind,\n pgGetGqlTypeByTypeIdAndModifier,\n pgGetGqlInputTypeByTypeIdAndModifier,\n pgSql: sql,\n gql2pg,\n graphql: {\n GraphQLObjectType,\n GraphQLInputObjectType,\n GraphQLNonNull,\n GraphQLString,\n },\n pgColumnFilter,\n inflection,\n pgQueryFromResolveData: queryFromResolveData,\n pgOmit: omit,\n pgViaTemporaryTable: viaTemporaryTable,\n describePgEntity,\n sqlCommentByAddingTags,\n pgField,\n } = build;\n const {\n scope: { isRootMutation },\n fieldWithHooks,\n } = context;\n\n if (!isRootMutation) {\n return fields;\n }\n\n return extend(\n fields,\n pgIntrospectionResultsByKind.class.reduce((memo, table) => {\n // PERFORMANCE: These used to be .filter(...) calls\n if (!table.namespace) return memo;\n if (!table.isSelectable) return memo;\n if (!table.isInsertable || omit(table, \"create\")) return memo;\n\n const Table = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n if (!Table) {\n debug(\n `There was no table type for table '${table.namespace.name}.${table.name}', so we're not generating a create mutation for it.`\n );\n return memo;\n }\n const TableInput = pgGetGqlInputTypeByTypeIdAndModifier(\n table.type.id,\n null\n );\n if (!TableInput) {\n debug(\n `There was no input type for table '${table.namespace.name}.${table.name}', so we're going to omit it from the create mutation.`\n );\n }\n const tableTypeName = inflection.tableType(table);\n const InputType = newWithHooks(\n GraphQLInputObjectType,\n {\n name: inflection.createInputType(table),\n description: build.wrapDescription(\n `All input for the create \\`${tableTypeName}\\` mutation.`,\n \"type\"\n ),\n fields: {\n clientMutationId: {\n description: build.wrapDescription(\n \"An arbitrary string value with no semantic meaning. Will be included in the payload verbatim. May be used to track mutations by the client.\",\n \"field\"\n ),\n type: GraphQLString,\n },\n ...(TableInput\n ? {\n [inflection.tableFieldName(table)]: {\n description: build.wrapDescription(\n `The \\`${tableTypeName}\\` to be created by this mutation.`,\n \"field\"\n ),\n type: new GraphQLNonNull(TableInput),\n },\n }\n : null),\n },\n },\n {\n __origin: `Adding table create input type for ${describePgEntity(\n table\n )}. You can rename the table's GraphQL type via a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n name: \"newNameHere\",\n }\n )}`,\n isPgCreateInputType: true,\n pgInflection: table, // TODO:v5: remove - TYPO!\n pgIntrospection: table,\n }\n );\n const PayloadType = newWithHooks(\n GraphQLObjectType,\n {\n name: inflection.createPayloadType(table),\n description: build.wrapDescription(\n `The output of our create \\`${tableTypeName}\\` mutation.`,\n \"type\"\n ),\n fields: ({ fieldWithHooks }) => {\n const tableName = inflection.tableFieldName(table);\n return {\n clientMutationId: {\n description: build.wrapDescription(\n \"The exact same `clientMutationId` that was provided in the mutation input, unchanged and unused. May be used by a client to track mutations.\",\n \"field\"\n ),\n type: GraphQLString,\n },\n [tableName]: pgField(\n build,\n fieldWithHooks,\n tableName,\n {\n description: build.wrapDescription(\n `The \\`${tableTypeName}\\` that was created by this mutation.`,\n \"field\"\n ),\n type: Table,\n },\n {\n isPgCreatePayloadResultField: true,\n pgFieldIntrospection: table,\n }\n ),\n };\n },\n },\n {\n __origin: `Adding table create payload type for ${describePgEntity(\n table\n )}. You can rename the table's GraphQL type via a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n name: \"newNameHere\",\n }\n )}\\n\\nor disable the built-in create mutation via:\\n\\n ${sqlCommentByAddingTags(\n table,\n { omit: \"create\" }\n )}`,\n isMutationPayload: true,\n isPgCreatePayloadType: true,\n pgIntrospection: table,\n }\n );\n const fieldName = inflection.createField(table);\n memo = build.extend(\n memo,\n {\n [fieldName]: fieldWithHooks(\n fieldName,\n context => {\n const { getDataFromParsedResolveInfoFragment } = context;\n const relevantAttributes = table.attributes.filter(\n attr =>\n pgColumnFilter(attr, build, context) &&\n !omit(attr, \"create\")\n );\n return {\n description: build.wrapDescription(\n `Creates a single \\`${tableTypeName}\\`.`,\n \"field\"\n ),\n type: PayloadType,\n args: {\n input: {\n type: new GraphQLNonNull(InputType),\n },\n },\n async resolve(data, args, resolveContext, resolveInfo) {\n const { input } = args;\n const { pgClient } = resolveContext;\n const parsedResolveInfoFragment =\n parseResolveInfo(resolveInfo);\n parsedResolveInfoFragment.args = args; // Allow overriding via makeWrapResolversPlugin\n const resolveData = getDataFromParsedResolveInfoFragment(\n parsedResolveInfoFragment,\n PayloadType\n );\n const insertedRowAlias = sql.identifier(Symbol());\n const query = queryFromResolveData(\n insertedRowAlias,\n insertedRowAlias,\n resolveData,\n {},\n null,\n resolveContext,\n resolveInfo.rootValue\n );\n const sqlColumns = [];\n const sqlValues = [];\n const inputData = input[inflection.tableFieldName(table)];\n relevantAttributes.forEach(attr => {\n const fieldName = inflection.column(attr);\n const val = inputData[fieldName];\n if (\n Object.prototype.hasOwnProperty.call(\n inputData,\n fieldName\n )\n ) {\n sqlColumns.push(sql.identifier(attr.name));\n sqlValues.push(\n gql2pg(val, attr.type, attr.typeModifier)\n );\n }\n });\n\n const mutationQuery = sql.query`\\\ninsert into ${sql.identifier(table.namespace.name, table.name)} ${\n sqlColumns.length\n ? sql.fragment`(${sql.join(\n sqlColumns,\n \", \"\n )}) values(${sql.join(sqlValues, \", \")})`\n : sql.fragment`default values`\n } returning *`;\n\n let row;\n try {\n await pgClient.query(\"SAVEPOINT graphql_mutation\");\n const rows = await viaTemporaryTable(\n pgClient,\n sql.identifier(table.namespace.name, table.name),\n mutationQuery,\n insertedRowAlias,\n query\n );\n row = rows[0];\n await pgClient.query(\n \"RELEASE SAVEPOINT graphql_mutation\"\n );\n } catch (e) {\n await pgClient.query(\n \"ROLLBACK TO SAVEPOINT graphql_mutation\"\n );\n throw e;\n }\n return {\n clientMutationId: input.clientMutationId,\n data: row,\n };\n },\n };\n },\n {\n pgFieldIntrospection: table,\n isPgCreateMutationField: true,\n }\n ),\n },\n `Adding create mutation for ${describePgEntity(\n table\n )}. You can omit this default mutation with a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n table,\n {\n omit: \"create\",\n }\n )}`\n );\n return memo;\n }, {}),\n `Adding default 'create' mutation to root mutation`\n );\n },\n [\"PgMutationCreate\"],\n [],\n [\"PgTables\"]\n );\n}: Plugin);\n"],"mappings":"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"}
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _isString = _interopRequireDefault(require("lodash/isString"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder, {
|
|
13
10
|
pgSimpleCollections,
|
|
14
11
|
disableIssue397Fix
|
|
@@ -39,31 +36,24 @@ var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder,
|
|
|
39
36
|
Self
|
|
40
37
|
} = context;
|
|
41
38
|
const table = pgIntrospectionTable || pgIntrospection;
|
|
42
|
-
|
|
43
39
|
if (!isMutationPayload || !table || table.kind !== "class" || !table.namespace || !table.isSelectable || omit(table, "all") && omit(table, "many")) {
|
|
44
40
|
return fields;
|
|
45
41
|
}
|
|
46
|
-
|
|
47
42
|
if (pgIntrospection.kind === "procedure" && (pgIntrospection.returnTypeId !== table.typeId || pgIntrospection.returnsSet)) {
|
|
48
43
|
return fields;
|
|
49
44
|
}
|
|
50
|
-
|
|
51
45
|
const simpleCollections = table.tags.simpleCollections || pgSimpleCollections;
|
|
52
46
|
const hasConnections = simpleCollections !== "only";
|
|
53
|
-
|
|
54
47
|
if (!hasConnections && !disableIssue397Fix) {
|
|
55
48
|
return fields;
|
|
56
49
|
}
|
|
57
|
-
|
|
58
50
|
const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);
|
|
59
51
|
const tableTypeName = TableType.name;
|
|
60
52
|
const TableOrderByType = getTypeByName(inflection.orderByType(tableTypeName));
|
|
61
53
|
const TableEdgeType = getTypeByName(inflection.edge(tableTypeName));
|
|
62
|
-
|
|
63
54
|
if (!TableEdgeType) {
|
|
64
55
|
return fields;
|
|
65
56
|
}
|
|
66
|
-
|
|
67
57
|
const primaryKeyConstraint = table.primaryKeyConstraint;
|
|
68
58
|
const primaryKeys = primaryKeyConstraint && primaryKeyConstraint.keyAttributes;
|
|
69
59
|
const canOrderBy = !omit(table, "order");
|
|
@@ -81,39 +71,34 @@ var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder,
|
|
|
81
71
|
defaultValue: defaultValueEnum ? [defaultValueEnum.value] : null
|
|
82
72
|
}
|
|
83
73
|
} : {},
|
|
84
|
-
|
|
85
74
|
resolve(data, {
|
|
86
75
|
orderBy: rawOrderBy
|
|
87
76
|
}, _context, resolveInfo) {
|
|
88
77
|
if (!data.data) {
|
|
89
78
|
return null;
|
|
90
79
|
}
|
|
91
|
-
|
|
92
80
|
const safeAlias = getSafeAliasFromResolveInfo(resolveInfo);
|
|
93
81
|
const edge = data.data[safeAlias];
|
|
94
|
-
|
|
95
82
|
if (!edge) {
|
|
96
83
|
return null;
|
|
97
84
|
}
|
|
98
|
-
|
|
99
85
|
const orderBy = canOrderBy && rawOrderBy ? Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy] : null;
|
|
100
86
|
const order = orderBy && orderBy.some(item => item.alias) ? orderBy.filter(item => item.alias) : null;
|
|
101
|
-
|
|
102
87
|
if (!order) {
|
|
103
88
|
if (edge.__identifiers) {
|
|
104
|
-
return {
|
|
89
|
+
return {
|
|
90
|
+
...edge,
|
|
105
91
|
__cursor: ["primary_key_asc", edge.__identifiers]
|
|
106
92
|
};
|
|
107
93
|
} else {
|
|
108
94
|
return edge;
|
|
109
95
|
}
|
|
110
96
|
}
|
|
111
|
-
|
|
112
|
-
|
|
97
|
+
return {
|
|
98
|
+
...edge,
|
|
113
99
|
__cursor: edge[`__order_${order.map(item => item.alias).join("__")}`]
|
|
114
100
|
};
|
|
115
101
|
}
|
|
116
|
-
|
|
117
102
|
}, {
|
|
118
103
|
isPgMutationPayloadEdgeField: true,
|
|
119
104
|
pgFieldIntrospection: table
|
|
@@ -127,7 +112,6 @@ var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder,
|
|
|
127
112
|
}
|
|
128
113
|
} = parsedResolveInfoFragment;
|
|
129
114
|
const orderBy = canOrderBy && rawOrderBy ? Array.isArray(rawOrderBy) ? rawOrderBy : [rawOrderBy] : null;
|
|
130
|
-
|
|
131
115
|
if (orderBy != null) {
|
|
132
116
|
const aliases = [];
|
|
133
117
|
const expressions = [];
|
|
@@ -144,7 +128,6 @@ var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder,
|
|
|
144
128
|
if (!col) {
|
|
145
129
|
return;
|
|
146
130
|
}
|
|
147
|
-
|
|
148
131
|
const expr = (0, _isString.default)(col) ? sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(col)}` : typeof col === "function" ? col({
|
|
149
132
|
queryBuilder
|
|
150
133
|
}) : col;
|
|
@@ -153,24 +136,20 @@ var PgMutationPayloadEdgePlugin = function PgMutationPayloadEdgePlugin(builder,
|
|
|
153
136
|
if (alias == null) return;
|
|
154
137
|
aliases.push(alias);
|
|
155
138
|
});
|
|
156
|
-
|
|
157
139
|
if (!unique && primaryKeys) {
|
|
158
140
|
// Add PKs
|
|
159
141
|
primaryKeys.forEach(key => {
|
|
160
142
|
expressions.push(sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(key.name)}`);
|
|
161
143
|
});
|
|
162
144
|
}
|
|
163
|
-
|
|
164
145
|
if (aliases.length) {
|
|
165
146
|
queryBuilder.select(sql.fragment`json_build_array(${sql.join(aliases.map(a => sql.fragment`${sql.literal(a)}::text`), ", ")}, json_build_array(${sql.join(expressions, ", ")}))`, "__order_" + aliases.join("__"));
|
|
166
147
|
}
|
|
167
148
|
}
|
|
168
149
|
}
|
|
169
|
-
|
|
170
150
|
})
|
|
171
151
|
}, `Adding edge field for table ${describePgEntity(table)} to mutation payload '${Self.name}'`);
|
|
172
152
|
}, ["PgMutationPayloadEdge"]);
|
|
173
153
|
};
|
|
174
|
-
|
|
175
154
|
exports.default = PgMutationPayloadEdgePlugin;
|
|
176
155
|
//# sourceMappingURL=PgMutationPayloadEdgePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/PgMutationPayloadEdgePlugin.js"],"names":["PgMutationPayloadEdgePlugin","builder","pgSimpleCollections","disableIssue397Fix","hook","fields","build","context","extend","getSafeAliasFromResolveInfo","getTypeByName","pgGetGqlTypeByTypeIdAndModifier","pgSql","sql","graphql","GraphQLList","GraphQLNonNull","inflection","pgOmit","omit","describePgEntity","pgField","scope","isMutationPayload","pgIntrospection","pgIntrospectionTable","fieldWithHooks","Self","table","kind","namespace","isSelectable","returnTypeId","typeId","returnsSet","simpleCollections","tags","hasConnections","TableType","type","id","tableTypeName","name","TableOrderByType","orderByType","TableEdgeType","edge","primaryKeyConstraint","primaryKeys","keyAttributes","canOrderBy","fieldName","edgeField","primaryKeyAsc","builtin","defaultValueEnum","getValues","find","v","description","wrapDescription","args","orderBy","defaultValue","value","resolve","data","rawOrderBy","_context","resolveInfo","safeAlias","Array","isArray","order","some","item","alias","filter","__identifiers","__cursor","map","join","isPgMutationPayloadEdgeField","pgFieldIntrospection","withQueryBuilder","queryBuilder","parsedResolveInfoFragment","aliases","expressions","unique","forEach","specs","itemIsUnique","orders","col","_ascending","expr","fragment","getTableAlias","identifier","push","key","length","select","a","literal"],"mappings":"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","sourcesContent":["// @flow\nimport type { Plugin } from \"graphile-build\";\nimport isString from \"lodash/isString\";\n\nexport default (function PgMutationPayloadEdgePlugin(\n builder,\n { pgSimpleCollections, disableIssue397Fix }\n) {\n builder.hook(\n \"GraphQLObjectType:fields\",\n (fields, build, context) => {\n const {\n extend,\n getSafeAliasFromResolveInfo,\n getTypeByName,\n pgGetGqlTypeByTypeIdAndModifier,\n pgSql: sql,\n graphql: { GraphQLList, GraphQLNonNull },\n inflection,\n pgOmit: omit,\n describePgEntity,\n pgField,\n } = build;\n const {\n scope: { isMutationPayload, pgIntrospection, pgIntrospectionTable },\n fieldWithHooks,\n Self,\n } = context;\n\n const table = pgIntrospectionTable || pgIntrospection;\n if (\n !isMutationPayload ||\n !table ||\n table.kind !== \"class\" ||\n !table.namespace ||\n !table.isSelectable ||\n (omit(table, \"all\") && omit(table, \"many\"))\n ) {\n return fields;\n }\n if (\n pgIntrospection.kind === \"procedure\" &&\n (pgIntrospection.returnTypeId !== table.typeId ||\n pgIntrospection.returnsSet)\n ) {\n return fields;\n }\n const simpleCollections =\n table.tags.simpleCollections || pgSimpleCollections;\n const hasConnections = simpleCollections !== \"only\";\n if (!hasConnections && !disableIssue397Fix) {\n return fields;\n }\n\n const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n const tableTypeName = TableType.name;\n const TableOrderByType = getTypeByName(\n inflection.orderByType(tableTypeName)\n );\n const TableEdgeType = getTypeByName(inflection.edge(tableTypeName));\n if (!TableEdgeType) {\n return fields;\n }\n\n const primaryKeyConstraint = table.primaryKeyConstraint;\n const primaryKeys =\n primaryKeyConstraint && primaryKeyConstraint.keyAttributes;\n const canOrderBy = !omit(table, \"order\");\n\n const fieldName = inflection.edgeField(table);\n const primaryKeyAsc = inflection.builtin(\"PRIMARY_KEY_ASC\");\n const defaultValueEnum =\n canOrderBy &&\n (TableOrderByType.getValues().find(v => v.name === primaryKeyAsc) ||\n TableOrderByType.getValues()[0]);\n return extend(\n fields,\n {\n [fieldName]: pgField(\n build,\n fieldWithHooks,\n fieldName,\n {\n description: build.wrapDescription(\n `An edge for our \\`${tableTypeName}\\`. May be used by Relay 1.`,\n \"field\"\n ),\n type: TableEdgeType,\n args: canOrderBy\n ? {\n orderBy: {\n description: build.wrapDescription(\n `The method to use when ordering \\`${tableTypeName}\\`.`,\n \"arg\"\n ),\n type: new GraphQLList(\n new GraphQLNonNull(TableOrderByType)\n ),\n defaultValue: defaultValueEnum\n ? [defaultValueEnum.value]\n : null,\n },\n }\n : {},\n resolve(data, { orderBy: rawOrderBy }, _context, resolveInfo) {\n if (!data.data) {\n return null;\n }\n const safeAlias = getSafeAliasFromResolveInfo(resolveInfo);\n const edge = data.data[safeAlias];\n if (!edge) {\n return null;\n }\n const orderBy =\n canOrderBy && rawOrderBy\n ? Array.isArray(rawOrderBy)\n ? rawOrderBy\n : [rawOrderBy]\n : null;\n const order =\n orderBy && orderBy.some(item => item.alias)\n ? orderBy.filter(item => item.alias)\n : null;\n\n if (!order) {\n if (edge.__identifiers) {\n return {\n ...edge,\n __cursor: [\"primary_key_asc\", edge.__identifiers],\n };\n } else {\n return edge;\n }\n }\n\n return {\n ...edge,\n __cursor:\n edge[`__order_${order.map(item => item.alias).join(\"__\")}`],\n };\n },\n },\n {\n isPgMutationPayloadEdgeField: true,\n pgFieldIntrospection: table,\n },\n false,\n {\n withQueryBuilder(queryBuilder, { parsedResolveInfoFragment }) {\n const {\n args: { orderBy: rawOrderBy },\n } = parsedResolveInfoFragment;\n const orderBy =\n canOrderBy && rawOrderBy\n ? Array.isArray(rawOrderBy)\n ? rawOrderBy\n : [rawOrderBy]\n : null;\n if (orderBy != null) {\n const aliases = [];\n const expressions = [];\n let unique = false;\n orderBy.forEach(item => {\n const { alias, specs, unique: itemIsUnique } = item;\n unique = unique || itemIsUnique;\n const orders = Array.isArray(specs[0]) ? specs : [specs];\n orders.forEach(([col, _ascending]) => {\n if (!col) {\n return;\n }\n const expr = isString(col)\n ? sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(\n col\n )}`\n : typeof col === \"function\"\n ? col({ queryBuilder })\n : col;\n expressions.push(expr);\n });\n if (alias == null) return;\n aliases.push(alias);\n });\n if (!unique && primaryKeys) {\n // Add PKs\n primaryKeys.forEach(key => {\n expressions.push(\n sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(\n key.name\n )}`\n );\n });\n }\n if (aliases.length) {\n queryBuilder.select(\n sql.fragment`json_build_array(${sql.join(\n aliases.map(a => sql.fragment`${sql.literal(a)}::text`),\n \", \"\n )}, json_build_array(${sql.join(expressions, \", \")}))`,\n \"__order_\" + aliases.join(\"__\")\n );\n }\n }\n },\n }\n ),\n },\n `Adding edge field for table ${describePgEntity(\n table\n )} to mutation payload '${Self.name}'`\n );\n },\n [\"PgMutationPayloadEdge\"]\n );\n}: Plugin);\n"],"file":"PgMutationPayloadEdgePlugin.js"}
|
|
1
|
+
{"version":3,"file":"PgMutationPayloadEdgePlugin.js","names":["_isString","_interopRequireDefault","require","obj","__esModule","default","PgMutationPayloadEdgePlugin","builder","pgSimpleCollections","disableIssue397Fix","hook","fields","build","context","extend","getSafeAliasFromResolveInfo","getTypeByName","pgGetGqlTypeByTypeIdAndModifier","pgSql","sql","graphql","GraphQLList","GraphQLNonNull","inflection","pgOmit","omit","describePgEntity","pgField","scope","isMutationPayload","pgIntrospection","pgIntrospectionTable","fieldWithHooks","Self","table","kind","namespace","isSelectable","returnTypeId","typeId","returnsSet","simpleCollections","tags","hasConnections","TableType","type","id","tableTypeName","name","TableOrderByType","orderByType","TableEdgeType","edge","primaryKeyConstraint","primaryKeys","keyAttributes","canOrderBy","fieldName","edgeField","primaryKeyAsc","builtin","defaultValueEnum","getValues","find","v","description","wrapDescription","args","orderBy","defaultValue","value","resolve","data","rawOrderBy","_context","resolveInfo","safeAlias","Array","isArray","order","some","item","alias","filter","__identifiers","__cursor","map","join","isPgMutationPayloadEdgeField","pgFieldIntrospection","withQueryBuilder","queryBuilder","parsedResolveInfoFragment","aliases","expressions","unique","forEach","specs","itemIsUnique","orders","col","_ascending","expr","isString","fragment","getTableAlias","identifier","push","key","length","select","a","literal","exports"],"sources":["../../src/plugins/PgMutationPayloadEdgePlugin.js"],"sourcesContent":["// @flow\nimport type { Plugin } from \"graphile-build\";\nimport isString from \"lodash/isString\";\n\nexport default (function PgMutationPayloadEdgePlugin(\n builder,\n { pgSimpleCollections, disableIssue397Fix }\n) {\n builder.hook(\n \"GraphQLObjectType:fields\",\n (fields, build, context) => {\n const {\n extend,\n getSafeAliasFromResolveInfo,\n getTypeByName,\n pgGetGqlTypeByTypeIdAndModifier,\n pgSql: sql,\n graphql: { GraphQLList, GraphQLNonNull },\n inflection,\n pgOmit: omit,\n describePgEntity,\n pgField,\n } = build;\n const {\n scope: { isMutationPayload, pgIntrospection, pgIntrospectionTable },\n fieldWithHooks,\n Self,\n } = context;\n\n const table = pgIntrospectionTable || pgIntrospection;\n if (\n !isMutationPayload ||\n !table ||\n table.kind !== \"class\" ||\n !table.namespace ||\n !table.isSelectable ||\n (omit(table, \"all\") && omit(table, \"many\"))\n ) {\n return fields;\n }\n if (\n pgIntrospection.kind === \"procedure\" &&\n (pgIntrospection.returnTypeId !== table.typeId ||\n pgIntrospection.returnsSet)\n ) {\n return fields;\n }\n const simpleCollections =\n table.tags.simpleCollections || pgSimpleCollections;\n const hasConnections = simpleCollections !== \"only\";\n if (!hasConnections && !disableIssue397Fix) {\n return fields;\n }\n\n const TableType = pgGetGqlTypeByTypeIdAndModifier(table.type.id, null);\n const tableTypeName = TableType.name;\n const TableOrderByType = getTypeByName(\n inflection.orderByType(tableTypeName)\n );\n const TableEdgeType = getTypeByName(inflection.edge(tableTypeName));\n if (!TableEdgeType) {\n return fields;\n }\n\n const primaryKeyConstraint = table.primaryKeyConstraint;\n const primaryKeys =\n primaryKeyConstraint && primaryKeyConstraint.keyAttributes;\n const canOrderBy = !omit(table, \"order\");\n\n const fieldName = inflection.edgeField(table);\n const primaryKeyAsc = inflection.builtin(\"PRIMARY_KEY_ASC\");\n const defaultValueEnum =\n canOrderBy &&\n (TableOrderByType.getValues().find(v => v.name === primaryKeyAsc) ||\n TableOrderByType.getValues()[0]);\n return extend(\n fields,\n {\n [fieldName]: pgField(\n build,\n fieldWithHooks,\n fieldName,\n {\n description: build.wrapDescription(\n `An edge for our \\`${tableTypeName}\\`. May be used by Relay 1.`,\n \"field\"\n ),\n type: TableEdgeType,\n args: canOrderBy\n ? {\n orderBy: {\n description: build.wrapDescription(\n `The method to use when ordering \\`${tableTypeName}\\`.`,\n \"arg\"\n ),\n type: new GraphQLList(\n new GraphQLNonNull(TableOrderByType)\n ),\n defaultValue: defaultValueEnum\n ? [defaultValueEnum.value]\n : null,\n },\n }\n : {},\n resolve(data, { orderBy: rawOrderBy }, _context, resolveInfo) {\n if (!data.data) {\n return null;\n }\n const safeAlias = getSafeAliasFromResolveInfo(resolveInfo);\n const edge = data.data[safeAlias];\n if (!edge) {\n return null;\n }\n const orderBy =\n canOrderBy && rawOrderBy\n ? Array.isArray(rawOrderBy)\n ? rawOrderBy\n : [rawOrderBy]\n : null;\n const order =\n orderBy && orderBy.some(item => item.alias)\n ? orderBy.filter(item => item.alias)\n : null;\n\n if (!order) {\n if (edge.__identifiers) {\n return {\n ...edge,\n __cursor: [\"primary_key_asc\", edge.__identifiers],\n };\n } else {\n return edge;\n }\n }\n\n return {\n ...edge,\n __cursor:\n edge[`__order_${order.map(item => item.alias).join(\"__\")}`],\n };\n },\n },\n {\n isPgMutationPayloadEdgeField: true,\n pgFieldIntrospection: table,\n },\n false,\n {\n withQueryBuilder(queryBuilder, { parsedResolveInfoFragment }) {\n const {\n args: { orderBy: rawOrderBy },\n } = parsedResolveInfoFragment;\n const orderBy =\n canOrderBy && rawOrderBy\n ? Array.isArray(rawOrderBy)\n ? rawOrderBy\n : [rawOrderBy]\n : null;\n if (orderBy != null) {\n const aliases = [];\n const expressions = [];\n let unique = false;\n orderBy.forEach(item => {\n const { alias, specs, unique: itemIsUnique } = item;\n unique = unique || itemIsUnique;\n const orders = Array.isArray(specs[0]) ? specs : [specs];\n orders.forEach(([col, _ascending]) => {\n if (!col) {\n return;\n }\n const expr = isString(col)\n ? sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(\n col\n )}`\n : typeof col === \"function\"\n ? col({ queryBuilder })\n : col;\n expressions.push(expr);\n });\n if (alias == null) return;\n aliases.push(alias);\n });\n if (!unique && primaryKeys) {\n // Add PKs\n primaryKeys.forEach(key => {\n expressions.push(\n sql.fragment`${queryBuilder.getTableAlias()}.${sql.identifier(\n key.name\n )}`\n );\n });\n }\n if (aliases.length) {\n queryBuilder.select(\n sql.fragment`json_build_array(${sql.join(\n aliases.map(a => sql.fragment`${sql.literal(a)}::text`),\n \", \"\n )}, json_build_array(${sql.join(expressions, \", \")}))`,\n \"__order_\" + aliases.join(\"__\")\n );\n }\n }\n },\n }\n ),\n },\n `Adding edge field for table ${describePgEntity(\n table\n )} to mutation payload '${Self.name}'`\n );\n },\n [\"PgMutationPayloadEdge\"]\n );\n}: Plugin);\n"],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var PgMutationProceduresPlugin = function PgMutationProceduresPlugin(builder) {
|
|
9
8
|
builder.hook("GraphQLObjectType:fields", (fields, build, context) => {
|
|
10
9
|
const {
|
|
@@ -23,18 +22,15 @@ var PgMutationProceduresPlugin = function PgMutationProceduresPlugin(builder) {
|
|
|
23
22
|
},
|
|
24
23
|
fieldWithHooks
|
|
25
24
|
} = context;
|
|
26
|
-
|
|
27
25
|
if (!isRootMutation) {
|
|
28
26
|
return fields;
|
|
29
27
|
}
|
|
30
|
-
|
|
31
28
|
return extend(fields, introspectionResultsByKind.procedure.reduce((memo, proc) => {
|
|
32
29
|
// PERFORMANCE: These used to be .filter(...) calls
|
|
33
30
|
if (proc.isStable) return memo;
|
|
34
31
|
if (!proc.namespace) return memo;
|
|
35
32
|
if (omit(proc, "execute")) return memo;
|
|
36
33
|
const fieldName = inflection.functionMutationName(proc);
|
|
37
|
-
|
|
38
34
|
try {
|
|
39
35
|
memo = extend(memo, {
|
|
40
36
|
[fieldName]: makeProcField(fieldName, proc, build, {
|
|
@@ -47,11 +43,9 @@ var PgMutationProceduresPlugin = function PgMutationProceduresPlugin(builder) {
|
|
|
47
43
|
} catch (e) {
|
|
48
44
|
swallowError(e);
|
|
49
45
|
}
|
|
50
|
-
|
|
51
46
|
return memo;
|
|
52
47
|
}, {}), `Adding mutation procedure to root Mutation field`);
|
|
53
48
|
}, ["PgMutationProcedures"]);
|
|
54
49
|
};
|
|
55
|
-
|
|
56
50
|
exports.default = PgMutationProceduresPlugin;
|
|
57
51
|
//# sourceMappingURL=PgMutationProceduresPlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"PgMutationProceduresPlugin.js","names":["PgMutationProceduresPlugin","builder","hook","fields","build","context","extend","pgIntrospectionResultsByKind","introspectionResultsByKind","inflection","pgMakeProcField","makeProcField","pgOmit","omit","swallowError","describePgEntity","sqlCommentByAddingTags","scope","isRootMutation","fieldWithHooks","procedure","reduce","memo","proc","isStable","namespace","fieldName","functionMutationName","isMutation","name","e","exports","default"],"sources":["../../src/plugins/PgMutationProceduresPlugin.js"],"sourcesContent":["// @flow\nimport type { Plugin } from \"graphile-build\";\n\nexport default (function PgMutationProceduresPlugin(builder) {\n builder.hook(\n \"GraphQLObjectType:fields\",\n (fields, build, context) => {\n const {\n extend,\n pgIntrospectionResultsByKind: introspectionResultsByKind,\n inflection,\n pgMakeProcField: makeProcField,\n pgOmit: omit,\n swallowError,\n describePgEntity,\n sqlCommentByAddingTags,\n } = build;\n const {\n scope: { isRootMutation },\n fieldWithHooks,\n } = context;\n\n if (!isRootMutation) {\n return fields;\n }\n\n return extend(\n fields,\n introspectionResultsByKind.procedure.reduce((memo, proc) => {\n // PERFORMANCE: These used to be .filter(...) calls\n if (proc.isStable) return memo;\n if (!proc.namespace) return memo;\n if (omit(proc, \"execute\")) return memo;\n\n const fieldName = inflection.functionMutationName(proc);\n try {\n memo = extend(\n memo,\n {\n [fieldName]: makeProcField(fieldName, proc, build, {\n fieldWithHooks,\n isMutation: true,\n }),\n },\n `Adding mutation field for ${describePgEntity(\n proc\n )}. You can rename this field with a 'Smart Comment':\\n\\n ${sqlCommentByAddingTags(\n proc,\n {\n name: \"newNameHere\",\n }\n )}`\n );\n } catch (e) {\n swallowError(e);\n }\n return memo;\n }, {}),\n `Adding mutation procedure to root Mutation field`\n );\n },\n [\"PgMutationProcedures\"]\n );\n}: Plugin);\n"],"mappings":";;;;;;IAGyBA,0BAA0B,GAAnC,SAASA,0BAA0BA,CAACC,OAAO,EAAE;EAC3DA,OAAO,CAACC,IAAI,CACV,0BAA0B,EAC1B,CAACC,MAAM,EAAEC,KAAK,EAAEC,OAAO,KAAK;IAC1B,MAAM;MACJC,MAAM;MACNC,4BAA4B,EAAEC,0BAA0B;MACxDC,UAAU;MACVC,eAAe,EAAEC,aAAa;MAC9BC,MAAM,EAAEC,IAAI;MACZC,YAAY;MACZC,gBAAgB;MAChBC;IACF,CAAC,GAAGZ,KAAK;IACT,MAAM;MACJa,KAAK,EAAE;QAAEC;MAAe,CAAC;MACzBC;IACF,CAAC,GAAGd,OAAO;IAEX,IAAI,CAACa,cAAc,EAAE;MACnB,OAAOf,MAAM;IACf;IAEA,OAAOG,MAAM,CACXH,MAAM,EACNK,0BAA0B,CAACY,SAAS,CAACC,MAAM,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;MAC1D;MACA,IAAIA,IAAI,CAACC,QAAQ,EAAE,OAAOF,IAAI;MAC9B,IAAI,CAACC,IAAI,CAACE,SAAS,EAAE,OAAOH,IAAI;MAChC,IAAIT,IAAI,CAACU,IAAI,EAAE,SAAS,CAAC,EAAE,OAAOD,IAAI;MAEtC,MAAMI,SAAS,GAAGjB,UAAU,CAACkB,oBAAoB,CAACJ,IAAI,CAAC;MACvD,IAAI;QACFD,IAAI,GAAGhB,MAAM,CACXgB,IAAI,EACJ;UACE,CAACI,SAAS,GAAGf,aAAa,CAACe,SAAS,EAAEH,IAAI,EAAEnB,KAAK,EAAE;YACjDe,cAAc;YACdS,UAAU,EAAE;UACd,CAAC;QACH,CAAC,EACA,6BAA4Bb,gBAAgB,CAC3CQ,IACF,CAAE,4DAA2DP,sBAAsB,CACjFO,IAAI,EACJ;UACEM,IAAI,EAAE;QACR,CACF,CAAE,EACJ,CAAC;MACH,CAAC,CAAC,OAAOC,CAAC,EAAE;QACVhB,YAAY,CAACgB,CAAC,CAAC;MACjB;MACA,OAAOR,IAAI;IACb,CAAC,EAAE,CAAC,CAAC,CAAC,EACL,kDACH,CAAC;EACH,CAAC,EACD,CAAC,sBAAsB,CACzB,CAAC;AACH,CAAC;AAAAS,OAAA,CAAAC,OAAA,GAAAhC,0BAAA"}
|