Skip to content

Commit

Permalink
Add example of using an expression with external value via .select()
Browse files Browse the repository at this point in the history
  • Loading branch information
benjie committed Nov 22, 2023
1 parent 775af9c commit 6c3a101
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
2 changes: 1 addition & 1 deletion babel.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Babel config, used by Jest?
// Babel config, used by Jest
module.exports = {
plugins: ["@babel/plugin-transform-modules-commonjs"],
presets: [
Expand Down
24 changes: 24 additions & 0 deletions postgraphile/postgraphile/graphile.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* eslint-disable import/no-unresolved */
import type { PgSelectSingleStep } from "@dataplan/pg";
import { TYPES } from "@dataplan/pg";
import PersistedPlugin from "@grafserv/persisted";
import { EXPORTABLE, exportSchema } from "graphile-export";
import { gql, makeExtendSchemaPlugin } from "graphile-utils";
Expand Down Expand Up @@ -199,6 +201,28 @@ const NonNullRelationsPlugin: GraphileConfig.Plugin = {
const preset: GraphileConfig.Preset = {
plugins: [
StreamDeferPlugin,
makeExtendSchemaPlugin((build) => {
const { sql } = build;
return {
typeDefs: gql`
extend type Person {
greet(greeting: String! = "Hello"): String
}
`,
plans: {
Person: {
greet($user: PgSelectSingleStep, { $greeting }) {
const placeholderSql = $user.placeholder($greeting, TYPES.text);
const alias = $user.getClassStep().alias;
return $user.select(
sql`${placeholderSql} || ', ' || ${alias}.name`,
TYPES.text,
);
},
},
},
};
}),
makeExtendSchemaPlugin({
typeDefs: gql`
extend type Query {
Expand Down

0 comments on commit 6c3a101

Please sign in to comment.