graphile-utils 5.0.0-beta.8 → 5.0.0-rc.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +1074 -1
  2. package/README.md +87 -72
  3. package/dist/exportable.d.ts +4 -1
  4. package/dist/exportable.d.ts.map +1 -1
  5. package/dist/exportable.js +15 -4
  6. package/dist/exportable.js.map +1 -1
  7. package/dist/gql.js +1 -2
  8. package/dist/gql.js.map +1 -1
  9. package/dist/index.d.ts +42 -7
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +11 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/makeAddInflectorsPlugin.js +2 -3
  14. package/dist/makeAddInflectorsPlugin.js.map +1 -1
  15. package/dist/makeAddPgTableConditionPlugin.d.ts +32 -6
  16. package/dist/makeAddPgTableConditionPlugin.d.ts.map +1 -1
  17. package/dist/makeAddPgTableConditionPlugin.js +28 -11
  18. package/dist/makeAddPgTableConditionPlugin.js.map +1 -1
  19. package/dist/makeAddPgTableOrderByPlugin.d.ts +15 -10
  20. package/dist/makeAddPgTableOrderByPlugin.d.ts.map +1 -1
  21. package/dist/makeAddPgTableOrderByPlugin.js +43 -35
  22. package/dist/makeAddPgTableOrderByPlugin.js.map +1 -1
  23. package/dist/makeChangeNullabilityPlugin.d.ts +3 -1
  24. package/dist/makeChangeNullabilityPlugin.d.ts.map +1 -1
  25. package/dist/makeChangeNullabilityPlugin.js +98 -18
  26. package/dist/makeChangeNullabilityPlugin.js.map +1 -1
  27. package/dist/makeExtendSchemaPlugin.d.ts +55 -26
  28. package/dist/makeExtendSchemaPlugin.d.ts.map +1 -1
  29. package/dist/makeExtendSchemaPlugin.js +402 -105
  30. package/dist/makeExtendSchemaPlugin.js.map +1 -1
  31. package/dist/makePgSmartTagsPlugin.d.ts +16 -3
  32. package/dist/makePgSmartTagsPlugin.d.ts.map +1 -1
  33. package/dist/makePgSmartTagsPlugin.js +24 -18
  34. package/dist/makePgSmartTagsPlugin.js.map +1 -1
  35. package/dist/makeProcessSchemaPlugin.d.ts +3 -1
  36. package/dist/makeProcessSchemaPlugin.d.ts.map +1 -1
  37. package/dist/makeProcessSchemaPlugin.js +4 -2
  38. package/dist/makeProcessSchemaPlugin.js.map +1 -1
  39. package/dist/makeWrapPlansPlugin.d.ts +6 -3
  40. package/dist/makeWrapPlansPlugin.d.ts.map +1 -1
  41. package/dist/makeWrapPlansPlugin.js +40 -18
  42. package/dist/makeWrapPlansPlugin.js.map +1 -1
  43. package/dist/parseIdentifierParts.js +1 -2
  44. package/dist/parseIdentifierParts.js.map +1 -1
  45. package/package.json +29 -23
package/README.md CHANGED
@@ -1,5 +1,3 @@
1
- # V5: NOT YET FULLY IMPLEMENTED
2
-
3
1
  # graphile-utils
4
2
 
5
3
  <span class="badge-patreon"><a href="https://patreon.com/benjie" title="Support Graphile development on Patreon"><img src="https://img.shields.io/badge/sponsor-via%20Patreon-orange.svg" alt="Patreon sponsor button" /></a></span>
@@ -21,9 +19,9 @@ PRs to improve documentation are always welcome!
21
19
 
22
20
  ## Crowd-funded open-source software
23
21
 
24
- To help us develop this software sustainably under the MIT license, we ask all
25
- individuals and businesses that use it to help support its ongoing maintenance
26
- and development via sponsorship.
22
+ To help us develop this software sustainably, we ask all individuals and
23
+ businesses that use it to help support its ongoing maintenance and development
24
+ via sponsorship.
27
25
 
28
26
  ### [Click here to find out more about sponsors and sponsorship.](https://www.graphile.org/sponsor/)
29
27
 
@@ -31,112 +29,129 @@ And please give some love to our featured sponsors 🤩:
31
29
 
32
30
  <table><tr>
33
31
  <td align="center"><a href="https://www.the-guild.dev/"><img src="https://graphile.org/images/sponsors/theguild.png" width="90" height="90" alt="The Guild" /><br />The Guild</a> *</td>
34
- <td align="center"><a href="https://dovetailapp.com/"><img src="https://graphile.org/images/sponsors/dovetail.png" width="90" height="90" alt="Dovetail" /><br />Dovetail</a> *</td>
35
- <td align="center"><a href="https://qwick.com/"><img src="https://graphile.org/images/sponsors/qwick.png" width="90" height="90" alt="Qwick" /><br />Qwick</a> *</td>
36
- <td align="center"><a href="https://www.netflix.com/"><img src="https://graphile.org/images/sponsors/Netflix.png" width="90" height="90" alt="Netflix" /><br />Netflix</a> *</td>
37
- </tr><tr>
38
- <td align="center"><a href=""><img src="https://graphile.org/images/sponsors/chadf.png" width="90" height="90" alt="Chad Furman" /><br />Chad Furman</a> *</td>
39
- <td align="center"><a href="https://stellate.co/"><img src="https://graphile.org/images/sponsors/Stellate.png" width="90" height="90" alt="Stellate" /><br />Stellate</a> *</td>
40
- <td align="center"><a href="https://www.accenture.com/"><img src="https://graphile.org/images/sponsors/accenture.svg" width="90" height="90" alt="Accenture" /><br />Accenture</a> *</td>
32
+ <td align="center"><a href="https://gosteelhead.com/"><img src="https://graphile.org/images/sponsors/steelhead.svg" width="90" height="90" alt="Steelhead" /><br />Steelhead</a> *</td>
41
33
  </tr></table>
42
34
 
43
35
  <em>\* Sponsors the entire Graphile suite</em>
44
36
 
45
37
  <!-- SPONSORS_END -->
46
38
 
47
- ### `gql`
48
-
49
- Similar to the default export from `graphql-tag`, this export can be used to
50
- form tagged template literals that are useful when building schema extensions.
51
- `gql` in `graphile-utils` differs from `graphql-tag` in a number of ways, most
52
- notably: it can use interpolation to generate dynamically named fields and
53
- types, and it can embed raw values using the `embed` helper.
54
-
55
- ### `embed`
39
+ ### `extendSchema`
56
40
 
57
- Used to wrap a value to be included in a `gql` AST, e.g. for use in GraphQL
58
- directives.
59
-
60
- ### `makeExtendSchemaPlugin`
61
-
62
- Docs: https://postgraphile.org/postgraphile/next/make-extend-schema-plugin
41
+ Docs: https://postgraphile.org/postgraphile/next/extend-schema
63
42
 
64
43
  Enables you to add additonal types or extend existing types within your Graphile
65
44
  Engine GraphQL schema.
66
45
 
67
46
  ```js
68
- const {
69
- makeExtendSchemaPlugin,
70
- gql,
71
- } = require('graphile-utils');
47
+ import { extendSchema } from 'graphile-utils';
72
48
 
73
49
  const MySchemaExtensionPlugin =
74
- makeExtendSchemaPlugin(
50
+ extendSchema(
75
51
  build => ({
76
- typeDefs: gql`...`,
77
- resolvers: ...
52
+ typeDefs: /* GraphQL */ `...`,
53
+ objects: {...},
54
+ interfaces: {...},
55
+ unions: {...},
78
56
  })
79
57
  );
80
58
 
81
- module.exports = MySchemaExtensionPlugin;
59
+ export default MySchemaExtensionPlugin;
82
60
  ```
83
61
 
84
62
  e.g.:
85
63
 
86
64
  ```js
87
- makeExtendSchemaPlugin((build) => ({
88
- typeDefs: gql`
89
- type Random {
90
- float: Float!
91
- number(min: Int!, max: Int!): Int!
92
- }
93
- extend type Query {
94
- random: Random
95
- }
96
- `,
97
- resolvers: {
98
- Query: {
99
- random() {
100
- return {};
65
+ export default extendSchema((build) => {
66
+ const {
67
+ grafast: { constant },
68
+ } = build;
69
+ return {
70
+ typeDefs: /* GraphQL */ `
71
+ type Random {
72
+ float: Float!
73
+ number(min: Int!, max: Int!): Int!
74
+ }
75
+ extend type Query {
76
+ random: Random
77
+ }
78
+ `,
79
+ objects: {
80
+ Query: {
81
+ plans: {
82
+ random() {
83
+ return constant({});
84
+ },
85
+ },
101
86
  },
102
- },
103
- Random: {
104
- float() {
105
- return Math.random();
106
- },
107
- number(_parent, { min, max }) {
108
- return min + Math.floor(Math.random() * (max - min + 1));
87
+ Random: {
88
+ plans: {
89
+ float() {
90
+ return lambda(null, () => Math.random());
91
+ },
92
+ number(_parent, { $min, $max }) {
93
+ return lambda(
94
+ [$min, $max],
95
+ ([min, max]) => min + Math.floor(Math.random() * (max - min + 1)),
96
+ );
97
+ },
98
+ },
109
99
  },
110
100
  },
111
- },
112
- }));
101
+ };
102
+ });
113
103
  ```
114
104
 
115
- ### `makeAddInflectorsPlugin`
105
+ #### `gql`
116
106
 
117
- Docs: https://postgraphile.org/postgraphile/next/make-add-inflectors-plugin
107
+ Similar to the default export from `graphql-tag`, this export can be used to
108
+ form tagged template literals that are useful when building schema extensions.
109
+ `gql` in `graphile-utils` differs from `graphql-tag` in a number of ways, most
110
+ notably: it can use interpolation to generate dynamically named fields and
111
+ types, and it can embed raw values using the `embed` helper.
112
+
113
+ ```ts
114
+ extendSchema({ typeDefs: gql`...` });
115
+ ```
118
116
 
119
- If you don't like the default naming conventions that come with a Graphile
120
- Engine GraphQL schema then it's easy for you to override them using the
121
- inflector.
117
+ #### `embed`
122
118
 
123
- ### `makeChangeNullabilityPlugin`
119
+ Used to wrap a value to be included in a `gql` AST, e.g. for use in GraphQL
120
+ directives.
124
121
 
125
- Docs: https://postgraphile.org/postgraphile/next/make-change-nullability-plugin
122
+ ```ts
123
+ extendSchema({ typeDefs: gql`...${embed(...)}...` });
124
+ ```
125
+
126
+ ### `changeNullability`
127
+
128
+ Docs: https://postgraphile.org/postgraphile/next/change-nullability
126
129
 
127
130
  Use this plugin to override the nullability of fields in your GraphQL schema.
128
131
 
129
- ### `makeProcessSchemaPlugin`
132
+ ### `processSchema`
130
133
 
131
- Docs: https://postgraphile.org/postgraphile/next/make-process-schema-plugin
134
+ Docs: https://postgraphile.org/postgraphile/next/process-schema
132
135
 
133
136
  Enables you to process the schema after it's built, e.g. print it to a file,
134
137
  augment it with a third party library (e.g. graphql-shield), etc.
135
138
 
136
- ### `makeWrapResolversPlugin`
139
+ ### `wrapPlans`
140
+
141
+ Docs: https://postgraphile.org/postgraphile/next/wrap-plans
142
+
143
+ Enables you to wrap the field plan resolvers in the generated Grafast schema,
144
+ allowing you to augment the way in which existing fields operate.
137
145
 
138
- Docs: https://www.graphile.org/postgraphile/make-wrap-resolvers-plugin/
146
+ ## Developing
139
147
 
140
- Enables you to wrap the field resolvers in the generated GraphQL API, allowing
141
- you to take an action before or after the resolver, or even modify the resolver
142
- result.
148
+ ### Testing
149
+
150
+ Make sure you first follow the instructions in the
151
+ [CONTRIBUTING.md file at the root of the repository](../../CONTRIBUTING.md),
152
+ then run the test with the following commands:
153
+
154
+ ```bash
155
+ yarn prepack
156
+ yarn test
157
+ ```
@@ -1,2 +1,5 @@
1
- export declare function EXPORTABLE<T, TScope extends any[]>(factory: (...args: TScope) => T, args: [...TScope]): T;
1
+ export declare function EXPORTABLE<T, TScope extends any[]>(factory: (...args: TScope) => T, args: [...TScope], nameHint?: string): T;
2
+ export declare function isForbidden(thing: unknown): thing is {
3
+ $$export: false;
4
+ };
2
5
  //# sourceMappingURL=exportable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exportable.d.ts","sourceRoot":"","sources":["../src/exportable.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,SAAS,GAAG,EAAE,EAChD,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,CAAC,EAC/B,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,GAChB,CAAC,CAYH"}
1
+ {"version":3,"file":"exportable.d.ts","sourceRoot":"","sources":["../src/exportable.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,SAAS,GAAG,EAAE,EAChD,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,KAAK,CAAC,EAC/B,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,CAAC,CAmBH;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,QAAQ,EAAE,KAAK,CAAA;CAAE,CAOxE"}
@@ -1,16 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXPORTABLE = void 0;
4
- function EXPORTABLE(factory, args) {
3
+ exports.EXPORTABLE = EXPORTABLE;
4
+ exports.isForbidden = isForbidden;
5
+ function EXPORTABLE(factory, args, nameHint) {
6
+ const forbiddenIndex = args.findIndex(isForbidden);
7
+ if (forbiddenIndex >= 0) {
8
+ throw new Error(`${nameHint ?? "Anonymous"} EXPORTABLE call's args[${forbiddenIndex}] is not allowed to be exported.`);
9
+ }
5
10
  const fn = factory(...args);
6
- if ((typeof fn === "function" || (typeof fn === "object" && fn !== null)) &&
11
+ if (((typeof fn === "object" && fn !== null) || typeof fn === "function") &&
7
12
  !("$exporter$factory" in fn)) {
8
13
  Object.defineProperties(fn, {
9
14
  $exporter$args: { value: args },
10
15
  $exporter$factory: { value: factory },
16
+ $exporter$name: { writable: true, value: nameHint },
11
17
  });
12
18
  }
13
19
  return fn;
14
20
  }
15
- exports.EXPORTABLE = EXPORTABLE;
21
+ function isForbidden(thing) {
22
+ return ((typeof thing === "object" || typeof thing === "function") &&
23
+ thing !== null &&
24
+ "$$export" in thing &&
25
+ thing.$$export === false);
26
+ }
16
27
  //# sourceMappingURL=exportable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exportable.js","sourceRoot":"","sources":["../src/exportable.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CACxB,OAA+B,EAC/B,IAAiB;IAEjB,MAAM,EAAE,GAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,IACE,CAAC,OAAO,EAAE,KAAK,UAAU,IAAI,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;QACrE,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAC5B;QACA,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE;YAC1B,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YAC/B,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SACtC,CAAC,CAAC;KACJ;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAfD,gCAeC"}
1
+ {"version":3,"file":"exportable.js","sourceRoot":"","sources":["../src/exportable.ts"],"names":[],"mappings":";;AAAA,gCAuBC;AAED,kCAOC;AAhCD,SAAgB,UAAU,CACxB,OAA+B,EAC/B,IAAiB,EACjB,QAAiB;IAEjB,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,IAAI,WAAW,2BAA2B,cAAc,kCAAkC,CACtG,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,GAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,IACE,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE,KAAK,UAAU,CAAC;QACrE,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAC5B,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE;YAC1B,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YAC/B,iBAAiB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;YACrC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,CACL,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;QAC1D,KAAK,KAAK,IAAI;QACd,UAAU,IAAI,KAAK;QACnB,KAAK,CAAC,QAAQ,KAAK,KAAK,CACzB,CAAC;AACJ,CAAC"}
package/dist/gql.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gql = void 0;
3
+ exports.gql = gql;
4
4
  // eslint-disable-next-line no-restricted-syntax
5
5
  const graphql_1 = require("grafast/graphql");
6
6
  function isGraphQLDocument(input) {
@@ -56,5 +56,4 @@ function gql(strings, ...interpolatedValues) {
56
56
  const astWithPlaceholdersReplaced = (0, graphql_1.visit)(ast, visitor);
57
57
  return astWithPlaceholdersReplaced;
58
58
  }
59
- exports.gql = gql;
60
59
  //# sourceMappingURL=gql.js.map
package/dist/gql.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gql.js","sourceRoot":"","sources":["../src/gql.ts"],"names":[],"mappings":";;;AACA,gDAAgD;AAChD,6CAA+C;AAE/C,SAAS,iBAAiB,CAAC,KAAU;IACnC,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAgB,GAAG,CACjB,OAA6B,EAC7B,GAAG,kBAAgD;IAEnD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,qBAAqB,GAA0B,EAAE,CAAC;IACxD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE;QAC9D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,EAAE;YACtB,uDAAuD;SACxD;aAAM;YACL,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE;gBACzC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;aAC5C;iBAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;gBAC/C,qBAAqB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;aAC9D;iBAAM;gBACL,MAAM,IAAI,KAAK,CACb,eACE,GAAG,GAAG,CACR,+DAA+D,OAAO,iBAAiB,sBAAsB,UAAU,CAAC,IAAI,CAC1H,EAAE,CACH,GAAG,CACL,CAAC;aACH;SACF;KACF;IACD,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,OAAO;oBACL,GAAG,IAAI;oBACP,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,qBAAqB,CAAC;iBAC7D,CAAC;aACH;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBACnC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;oBACrC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;wBAClC,OAAO;4BACL,GAAG,IAAI;4BACP,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBACtC,CAAC;qBACH;iBACF;aACF;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;IACF,MAAM,2BAA2B,GAAG,IAAA,eAAK,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAnDD,kBAmDC"}
1
+ {"version":3,"file":"gql.js","sourceRoot":"","sources":["../src/gql.ts"],"names":[],"mappings":";;AAaA,kBAmDC;AA/DD,gDAAgD;AAChD,6CAA+C;AAE/C,SAAS,iBAAiB,CAAC,KAAU;IACnC,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,IAAI,KAAK,UAAU;QACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAgB,GAAG,CACjB,OAA6B,EAC7B,GAAG,kBAAgD;IAEnD,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,qBAAqB,GAA0B,EAAE,CAAC;IACxD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAC/D,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,uDAAuD;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChD,qBAAqB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,eACE,GAAG,GAAG,CACR,+DAA+D,OAAO,iBAAiB,sBAAsB,UAAU,CAAC,IAAI,CAC1H,EAAE,CACH,GAAG,CACL,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO;oBACL,GAAG,IAAI;oBACP,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,qBAAqB,CAAC;iBAC7D,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACtC,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBACnC,OAAO;4BACL,GAAG,IAAI;4BACP,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBACtC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC;IACF,MAAM,2BAA2B,GAAG,IAAA,eAAK,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,2BAA2B,CAAC;AACrC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,46 @@
1
+ import type { BaseGraphQLArguments, Step } from "grafast";
1
2
  export { EXPORTABLE } from "./exportable.js";
2
3
  export { gql } from "./gql.js";
3
4
  export { makeAddInflectorsPlugin } from "./makeAddInflectorsPlugin.js";
4
- export { makeAddPgTableConditionPlugin } from "./makeAddPgTableConditionPlugin.js";
5
- export { makeAddPgTableOrderByPlugin, MakeAddPgTableOrderByPluginOrders, NullsSortMethod, orderByAscDesc, OrderByAscDescOptions, } from "./makeAddPgTableOrderByPlugin.js";
6
- export { ChangeNullabilityRules, ChangeNullabilityTypeRules, makeChangeNullabilityPlugin, NullabilitySpec, NullabilitySpecString, } from "./makeChangeNullabilityPlugin.js";
7
- export { EnumResolver, ExtensionDefinition, makeExtendSchemaPlugin, ObjectFieldConfig, ObjectPlan, ObjectResolver, Plans, Resolvers, } from "./makeExtendSchemaPlugin.js";
8
- export { makeJSONPgSmartTagsPlugin, makePgSmartTagsFromFilePlugin, makePgSmartTagsPlugin, TagsFilePlugin, } from "./makePgSmartTagsPlugin.js";
9
- export { makeProcessSchemaPlugin } from "./makeProcessSchemaPlugin.js";
10
- export { makeWrapPlansPlugin, PlanWrapperFilter, PlanWrapperFilterRule, PlanWrapperFn, PlanWrapperRule, PlanWrapperRules, PlanWrapperRulesGenerator, } from "./makeWrapPlansPlugin.js";
5
+ export { addPgTableCondition, makeAddPgTableConditionPlugin, } from "./makeAddPgTableConditionPlugin.js";
6
+ export { addPgTableOrderBy, makeAddPgTableOrderByPlugin, MakeAddPgTableOrderByPluginOrders, NullsSortMethod, orderByAscDesc, OrderByAscDescOptions, } from "./makeAddPgTableOrderByPlugin.js";
7
+ export { changeNullability, ChangeNullabilityRules, ChangeNullabilityTypeRules, makeChangeNullabilityPlugin, NullabilitySpec, NullabilitySpecString, } from "./makeChangeNullabilityPlugin.js";
8
+ export { EnumResolver, extendSchema, ExtensionDefinition, makeExtendSchemaPlugin, ObjectPlan, ObjectResolver, Plans, Resolvers, } from "./makeExtendSchemaPlugin.js";
9
+ export { jsonPgSmartTags, makeJSONPgSmartTagsPlugin, makePgSmartTagsFromFilePlugin, makePgSmartTagsPlugin, pgSmartTags, pgSmartTagsFromFile, TagsFilePlugin, } from "./makePgSmartTagsPlugin.js";
10
+ export { makeProcessSchemaPlugin, processSchema, } from "./makeProcessSchemaPlugin.js";
11
+ export { makeWrapPlansPlugin, PlanWrapperFilter, PlanWrapperFilterRule, PlanWrapperFn, PlanWrapperRule, PlanWrapperRules, PlanWrapperRulesGenerator, wrapPlans, } from "./makeWrapPlansPlugin.js";
12
+ declare module "grafast" {
13
+ interface ScalarPlan<TInternal = any, TExternal = any> {
14
+ scope?: GraphileBuild.ScopeScalar;
15
+ }
16
+ interface EnumPlan {
17
+ scope?: GraphileBuild.ScopeEnum;
18
+ }
19
+ interface EnumValueConfig {
20
+ scope?: Omit<GraphileBuild.ScopeEnumValuesValue, "valueName">;
21
+ }
22
+ interface ObjectPlan<TSource extends Step = Step> {
23
+ scope?: GraphileBuild.ScopeObject;
24
+ }
25
+ interface ObjectFieldConfig<TSource extends Step = Step, TArgs extends BaseGraphQLArguments = any, TResultStep extends Step = Step> {
26
+ scope?: Omit<GraphileBuild.ScopeObjectFieldsField, "fieldName">;
27
+ }
28
+ interface UnionPlan<TSpecifier = any, TSource extends Step = Step> {
29
+ scope?: GraphileBuild.ScopeUnion;
30
+ }
31
+ interface InterfacePlan<TSpecifier = any, TSource extends Step = Step> {
32
+ scope?: GraphileBuild.ScopeInterface;
33
+ fields?: {
34
+ [fieldName: string]: {
35
+ scope?: GraphileBuild.ScopeInterfaceFieldsField;
36
+ };
37
+ };
38
+ }
39
+ interface InputObjectPlan {
40
+ scope?: GraphileBuild.ScopeInputObject;
41
+ }
42
+ interface InputObjectFieldConfig<TParent = any, TData = any> {
43
+ scope?: Omit<GraphileBuild.ScopeInputObjectFieldsField, "fieldName">;
44
+ }
45
+ }
11
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,eAAe,EACf,cAAc,EACd,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,KAAK,EACL,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,iCAAiC,EACjC,eAAe,EACf,cAAc,EACd,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,KAAK,EACL,SAAS,GACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC7B,qBAAqB,EACrB,WAAW,EACX,mBAAmB,EACnB,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,yBAAyB,EACzB,SAAS,GACV,MAAM,0BAA0B,CAAC;AAGlC,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;QACnD,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;KACnC;IACD,UAAU,QAAQ;QAChB,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC;KACjC;IACD,UAAU,eAAe;QACvB,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;KAC/D;IACD,UAAU,UAAU,CAAC,OAAO,SAAS,IAAI,GAAG,IAAI;QAC9C,KAAK,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC;KACnC;IACD,UAAU,iBAAiB,CACzB,OAAO,SAAS,IAAI,GAAG,IAAI,EAC3B,KAAK,SAAS,oBAAoB,GAAG,GAAG,EACxC,WAAW,SAAS,IAAI,GAAG,IAAI;QAE/B,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,WAAW,CAAC,CAAC;KACjE;IACD,UAAU,SAAS,CAAC,UAAU,GAAG,GAAG,EAAE,OAAO,SAAS,IAAI,GAAG,IAAI;QAC/D,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC;KAClC;IACD,UAAU,aAAa,CAAC,UAAU,GAAG,GAAG,EAAE,OAAO,SAAS,IAAI,GAAG,IAAI;QACnE,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;QACrC,MAAM,CAAC,EAAE;YACP,CAAC,SAAS,EAAE,MAAM,GAAG;gBACnB,KAAK,CAAC,EAAE,aAAa,CAAC,yBAAyB,CAAC;aACjD,CAAC;SACH,CAAC;KACH;IACD,UAAU,eAAe;QACvB,KAAK,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC;KACxC;IACD,UAAU,sBAAsB,CAAC,OAAO,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG;QACzD,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;KACtE;CACF"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeWrapPlansPlugin = exports.makeProcessSchemaPlugin = exports.TagsFilePlugin = exports.makePgSmartTagsPlugin = exports.makePgSmartTagsFromFilePlugin = exports.makeJSONPgSmartTagsPlugin = exports.makeExtendSchemaPlugin = exports.makeChangeNullabilityPlugin = exports.orderByAscDesc = exports.makeAddPgTableOrderByPlugin = exports.makeAddPgTableConditionPlugin = exports.makeAddInflectorsPlugin = exports.gql = exports.EXPORTABLE = void 0;
3
+ exports.wrapPlans = exports.makeWrapPlansPlugin = exports.processSchema = exports.makeProcessSchemaPlugin = exports.TagsFilePlugin = exports.pgSmartTagsFromFile = exports.pgSmartTags = exports.makePgSmartTagsPlugin = exports.makePgSmartTagsFromFilePlugin = exports.makeJSONPgSmartTagsPlugin = exports.jsonPgSmartTags = exports.makeExtendSchemaPlugin = exports.extendSchema = exports.makeChangeNullabilityPlugin = exports.changeNullability = exports.orderByAscDesc = exports.makeAddPgTableOrderByPlugin = exports.addPgTableOrderBy = exports.makeAddPgTableConditionPlugin = exports.addPgTableCondition = exports.makeAddInflectorsPlugin = exports.gql = exports.EXPORTABLE = void 0;
4
4
  var exportable_js_1 = require("./exportable.js");
5
5
  Object.defineProperty(exports, "EXPORTABLE", { enumerable: true, get: function () { return exportable_js_1.EXPORTABLE; } });
6
6
  var gql_js_1 = require("./gql.js");
@@ -8,21 +8,31 @@ Object.defineProperty(exports, "gql", { enumerable: true, get: function () { ret
8
8
  var makeAddInflectorsPlugin_js_1 = require("./makeAddInflectorsPlugin.js");
9
9
  Object.defineProperty(exports, "makeAddInflectorsPlugin", { enumerable: true, get: function () { return makeAddInflectorsPlugin_js_1.makeAddInflectorsPlugin; } });
10
10
  var makeAddPgTableConditionPlugin_js_1 = require("./makeAddPgTableConditionPlugin.js");
11
+ Object.defineProperty(exports, "addPgTableCondition", { enumerable: true, get: function () { return makeAddPgTableConditionPlugin_js_1.addPgTableCondition; } });
11
12
  Object.defineProperty(exports, "makeAddPgTableConditionPlugin", { enumerable: true, get: function () { return makeAddPgTableConditionPlugin_js_1.makeAddPgTableConditionPlugin; } });
12
13
  var makeAddPgTableOrderByPlugin_js_1 = require("./makeAddPgTableOrderByPlugin.js");
14
+ Object.defineProperty(exports, "addPgTableOrderBy", { enumerable: true, get: function () { return makeAddPgTableOrderByPlugin_js_1.addPgTableOrderBy; } });
13
15
  Object.defineProperty(exports, "makeAddPgTableOrderByPlugin", { enumerable: true, get: function () { return makeAddPgTableOrderByPlugin_js_1.makeAddPgTableOrderByPlugin; } });
14
16
  Object.defineProperty(exports, "orderByAscDesc", { enumerable: true, get: function () { return makeAddPgTableOrderByPlugin_js_1.orderByAscDesc; } });
15
17
  var makeChangeNullabilityPlugin_js_1 = require("./makeChangeNullabilityPlugin.js");
18
+ Object.defineProperty(exports, "changeNullability", { enumerable: true, get: function () { return makeChangeNullabilityPlugin_js_1.changeNullability; } });
16
19
  Object.defineProperty(exports, "makeChangeNullabilityPlugin", { enumerable: true, get: function () { return makeChangeNullabilityPlugin_js_1.makeChangeNullabilityPlugin; } });
17
20
  var makeExtendSchemaPlugin_js_1 = require("./makeExtendSchemaPlugin.js");
21
+ Object.defineProperty(exports, "extendSchema", { enumerable: true, get: function () { return makeExtendSchemaPlugin_js_1.extendSchema; } });
18
22
  Object.defineProperty(exports, "makeExtendSchemaPlugin", { enumerable: true, get: function () { return makeExtendSchemaPlugin_js_1.makeExtendSchemaPlugin; } });
19
23
  var makePgSmartTagsPlugin_js_1 = require("./makePgSmartTagsPlugin.js");
24
+ Object.defineProperty(exports, "jsonPgSmartTags", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.jsonPgSmartTags; } });
20
25
  Object.defineProperty(exports, "makeJSONPgSmartTagsPlugin", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.makeJSONPgSmartTagsPlugin; } });
21
26
  Object.defineProperty(exports, "makePgSmartTagsFromFilePlugin", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.makePgSmartTagsFromFilePlugin; } });
22
27
  Object.defineProperty(exports, "makePgSmartTagsPlugin", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.makePgSmartTagsPlugin; } });
28
+ Object.defineProperty(exports, "pgSmartTags", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.pgSmartTags; } });
29
+ Object.defineProperty(exports, "pgSmartTagsFromFile", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.pgSmartTagsFromFile; } });
23
30
  Object.defineProperty(exports, "TagsFilePlugin", { enumerable: true, get: function () { return makePgSmartTagsPlugin_js_1.TagsFilePlugin; } });
24
31
  var makeProcessSchemaPlugin_js_1 = require("./makeProcessSchemaPlugin.js");
25
32
  Object.defineProperty(exports, "makeProcessSchemaPlugin", { enumerable: true, get: function () { return makeProcessSchemaPlugin_js_1.makeProcessSchemaPlugin; } });
33
+ Object.defineProperty(exports, "processSchema", { enumerable: true, get: function () { return makeProcessSchemaPlugin_js_1.processSchema; } });
26
34
  var makeWrapPlansPlugin_js_1 = require("./makeWrapPlansPlugin.js");
27
35
  Object.defineProperty(exports, "makeWrapPlansPlugin", { enumerable: true, get: function () { return makeWrapPlansPlugin_js_1.makeWrapPlansPlugin; } });
36
+ Object.defineProperty(exports, "wrapPlans", { enumerable: true, get: function () { return makeWrapPlansPlugin_js_1.wrapPlans; } });
37
+ /* eslint-enable @typescript-eslint/no-unused-vars */
28
38
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,mCAA+B;AAAtB,6FAAA,GAAG,OAAA;AACZ,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,uFAAmF;AAA1E,iJAAA,6BAA6B,OAAA;AACtC,mFAM0C;AALxC,6IAAA,2BAA2B,OAAA;AAG3B,gIAAA,cAAc,OAAA;AAGhB,mFAM0C;AAHxC,6IAAA,2BAA2B,OAAA;AAI7B,yEASqC;AANnC,mIAAA,sBAAsB,OAAA;AAOxB,uEAKoC;AAJlC,qIAAA,yBAAyB,OAAA;AACzB,yIAAA,6BAA6B,OAAA;AAC7B,iIAAA,qBAAqB,OAAA;AACrB,0HAAA,cAAc,OAAA;AAEhB,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,mEAQkC;AAPhC,6HAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,mCAA+B;AAAtB,6FAAA,GAAG,OAAA;AACZ,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,uFAG4C;AAF1C,uIAAA,mBAAmB,OAAA;AACnB,iJAAA,6BAA6B,OAAA;AAE/B,mFAO0C;AANxC,mIAAA,iBAAiB,OAAA;AACjB,6IAAA,2BAA2B,OAAA;AAG3B,gIAAA,cAAc,OAAA;AAGhB,mFAO0C;AANxC,mIAAA,iBAAiB,OAAA;AAGjB,6IAAA,2BAA2B,OAAA;AAI7B,yEASqC;AAPnC,yHAAA,YAAY,OAAA;AAEZ,mIAAA,sBAAsB,OAAA;AAMxB,uEAQoC;AAPlC,2HAAA,eAAe,OAAA;AACf,qIAAA,yBAAyB,OAAA;AACzB,yIAAA,6BAA6B,OAAA;AAC7B,iIAAA,qBAAqB,OAAA;AACrB,uHAAA,WAAW,OAAA;AACX,+HAAA,mBAAmB,OAAA;AACnB,0HAAA,cAAc,OAAA;AAEhB,2EAGsC;AAFpC,qIAAA,uBAAuB,OAAA;AACvB,2HAAA,aAAa,OAAA;AAEf,mEASkC;AARhC,6HAAA,mBAAmB,OAAA;AAOnB,mHAAA,SAAS,OAAA;AA0CX,qDAAqD"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeAddInflectorsPlugin = void 0;
3
+ exports.makeAddInflectorsPlugin = makeAddInflectorsPlugin;
4
4
  /** @deprecated Build a plugin directly */
5
5
  function makeAddInflectorsPlugin() {
6
6
  throw new Error(`makeAddInflectorsPlugin is no longer supported; the new plugin system makes it a little easier to write it yourself:
@@ -29,7 +29,7 @@ export const MyInflectorPlugin: GraphileConfig.Plugin = {
29
29
  ...args
30
30
  ) {
31
31
  if (name === "Query") return "RootQuery";
32
- return previous.call(this, ...args);
32
+ return previous(...args);
33
33
  }
34
34
  }
35
35
  }
@@ -38,5 +38,4 @@ export const MyInflectorPlugin: GraphileConfig.Plugin = {
38
38
 
39
39
  `);
40
40
  }
41
- exports.makeAddInflectorsPlugin = makeAddInflectorsPlugin;
42
41
  //# sourceMappingURL=makeAddInflectorsPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAddInflectorsPlugin.js","sourceRoot":"","sources":["../src/makeAddInflectorsPlugin.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,SAAgB,uBAAuB;IACrC,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjB,CAAC,CAAC;AACH,CAAC;AAnCD,0DAmCC"}
1
+ {"version":3,"file":"makeAddInflectorsPlugin.js","sourceRoot":"","sources":["../src/makeAddInflectorsPlugin.ts"],"names":[],"mappings":";;AACA,0DAmCC;AApCD,0CAA0C;AAC1C,SAAgB,uBAAuB;IACrC,MAAM,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCjB,CAAC,CAAC;AACH,CAAC"}
@@ -1,14 +1,40 @@
1
- import type { PgConditionStep, PgSelectStep } from "@dataplan/pg";
2
- import type { FieldArgs, GrafastInputFieldConfig } from "grafast";
1
+ import { sqlValueWithCodec } from "@dataplan/pg";
2
+ import type { GrafastInputFieldConfig } from "grafast";
3
3
  import type { SQL, sql } from "pg-sql2";
4
- export declare function makeAddPgTableConditionPlugin(match: {
4
+ export declare function addPgTableCondition(match: {
5
5
  serviceName?: string;
6
6
  schemaName: string;
7
7
  tableName: string;
8
- }, conditionFieldName: string, conditionFieldSpecGenerator: (build: GraphileBuild.Build) => GrafastInputFieldConfig<any, any, any, any, any>, conditionGenerator?: (value: FieldArgs, helpers: {
9
- $condition: PgConditionStep<PgSelectStep>;
8
+ }, conditionFieldName: string, conditionFieldSpecGenerator: (build: GraphileBuild.Build) => GrafastInputFieldConfig, conditionGenerator?: (value: unknown, helpers: {
10
9
  sql: typeof sql;
11
10
  sqlTableAlias: SQL;
12
- build: GraphileBuild.Build;
11
+ sqlValueWithCodec: typeof sqlValueWithCodec;
12
+ build: ReturnType<typeof pruneBuild>;
13
13
  }) => SQL | null | undefined): GraphileConfig.Plugin;
14
+ /** @deprecated renamed to addPgTableCondition */
15
+ export declare const makeAddPgTableConditionPlugin: typeof addPgTableCondition;
16
+ declare function pruneBuild(build: GraphileBuild.Build): {
17
+ sql: import("pg-sql2").PgSQL<never>;
18
+ grafast: typeof import("grafast");
19
+ graphql: typeof import("graphql");
20
+ dataplanPg: typeof import("@dataplan/pg");
21
+ input: {
22
+ pgRegistry: import("@dataplan/pg").PgRegistry<Record<string, import("@dataplan/pg").PgCodec<string, {
23
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
24
+ } | undefined, any, any, any, any, any>>, Record<string, import("@dataplan/pg").PgResourceOptions<string, import("@dataplan/pg").PgCodecWithAttributes<{
25
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
26
+ }>, readonly import("@dataplan/pg").PgResourceUnique<{
27
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
28
+ }>[], readonly import("@dataplan/pg").PgResourceParameter<string | null, import("@dataplan/pg").PgCodec<string, {
29
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
30
+ } | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>>[] | undefined>>, Record<string, Record<string, import("@dataplan/pg").PgCodecRelationConfig<import("@dataplan/pg").PgCodec<string, {
31
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
32
+ }, any, any, undefined, any, undefined>, import("@dataplan/pg").PgResourceOptions<any, import("@dataplan/pg").PgCodecWithAttributes<{
33
+ [x: string]: import("@dataplan/pg").PgCodecAttribute<import("@dataplan/pg").PgCodec<string, /*elided*/ any | undefined, any, any, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, any, any, any, any, any, any> | undefined, import("@dataplan/pg").PgCodec<string, undefined, any, any, undefined, any, undefined> | undefined>, boolean>;
34
+ }>, any, any>>>>, {
35
+ [executorName: string]: import("@dataplan/pg").PgExecutor<any, any>;
36
+ }>;
37
+ };
38
+ };
39
+ export {};
14
40
  //# sourceMappingURL=makeAddPgTableConditionPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAddPgTableConditionPlugin.d.ts","sourceRoot":"","sources":["../src/makeAddPgTableConditionPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAIxC,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACtE,kBAAkB,EAAE,MAAM,EAC1B,2BAA2B,EAAE,CAC3B,KAAK,EAAE,aAAa,CAAC,KAAK,KACvB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE;IACP,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1C,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;CAC5B,KACE,GAAG,GAAG,IAAI,GAAG,SAAS,GAC1B,cAAc,CAAC,MAAM,CAqGvB"}
1
+ {"version":3,"file":"makeAddPgTableConditionPlugin.d.ts","sourceRoot":"","sources":["../src/makeAddPgTableConditionPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAIxC,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACtE,kBAAkB,EAAE,MAAM,EAC1B,2BAA2B,EAAE,CAC3B,KAAK,EAAE,aAAa,CAAC,KAAK,KACvB,uBAAuB,EAE5B,kBAAkB,CAAC,EAAE,CACnB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;IACP,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,aAAa,EAAE,GAAG,CAAC;IACnB,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAG5C,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAGtC,KACE,GAAG,GAAG,IAAI,GAAG,SAAS,GAC1B,cAAc,CAAC,MAAM,CAqGvB;AAED,iDAAiD;AACjD,eAAO,MAAM,6BAA6B,4BAAsB,CAAC;AAEjE,iBAAS,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;EAkB7C"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeAddPgTableConditionPlugin = void 0;
4
+ exports.addPgTableCondition = addPgTableCondition;
5
+ const pg_1 = require("@dataplan/pg");
4
6
  const exportable_js_1 = require("./exportable.js");
5
- function makeAddPgTableConditionPlugin(match, conditionFieldName, conditionFieldSpecGenerator, conditionGenerator) {
7
+ function addPgTableCondition(match, conditionFieldName, conditionFieldSpecGenerator,
8
+ // DEPRECATED! Use `apply` instead.
9
+ conditionGenerator) {
6
10
  const { serviceName = "main", schemaName, tableName } = match;
7
11
  const displayName = `makeAddPgTableConditionPlugin__${schemaName}__${tableName}__${conditionFieldName}`;
8
12
  const plugin = {
@@ -39,10 +43,10 @@ function makeAddPgTableConditionPlugin(match, conditionFieldName, conditionField
39
43
  return fields;
40
44
  }
41
45
  const conditionFieldSpec = conditionFieldSpecGenerator(build);
42
- if (conditionFieldSpec.applyPlan ||
43
- conditionFieldSpec.extensions?.grafast?.applyPlan) {
46
+ if (conditionFieldSpec.apply ||
47
+ conditionFieldSpec.extensions?.grafast?.apply) {
44
48
  if (conditionGenerator) {
45
- throw new Error(`${displayName}: You supplied 'applyPlan' for your field spec, so you cannot also supply a 'conditionGenerator'`);
49
+ throw new Error(`${displayName}: You supplied 'apply' for your field spec, so you cannot also supply a 'conditionGenerator'`);
46
50
  }
47
51
  // Done.
48
52
  }
@@ -51,17 +55,19 @@ function makeAddPgTableConditionPlugin(match, conditionFieldName, conditionField
51
55
  throw new Error(`${displayName}: You have not supplied 'applyPlan' for your field spec, nor a 'conditionGenerator', so we don't know what to do with this condition`);
52
56
  }
53
57
  // build applyPlan
54
- conditionFieldSpec.applyPlan = (0, exportable_js_1.EXPORTABLE)((build, conditionGenerator, sql) => function applyPlan($condition, val) {
58
+ const _build = pruneBuild(build);
59
+ conditionFieldSpec.apply = (0, exportable_js_1.EXPORTABLE)((_build, conditionGenerator, sql, sqlValueWithCodec) => function apply(condition, val) {
55
60
  const expression = conditionGenerator(val, {
56
- $condition,
57
61
  sql,
58
- sqlTableAlias: $condition.alias,
59
- build,
62
+ sqlTableAlias: condition.alias,
63
+ sqlValueWithCodec,
64
+ build: _build,
65
+ condition,
60
66
  });
61
67
  if (expression) {
62
- $condition.where(expression);
68
+ condition.where(expression);
63
69
  }
64
- }, [build, conditionGenerator, sql]);
70
+ }, [_build, conditionGenerator, sql, pg_1.sqlValueWithCodec], "addPgTableCondition_generator");
65
71
  }
66
72
  const meta = build._pluginMeta[displayName];
67
73
  meta.seen = true;
@@ -76,5 +82,16 @@ function makeAddPgTableConditionPlugin(match, conditionFieldName, conditionField
76
82
  };
77
83
  return plugin;
78
84
  }
79
- exports.makeAddPgTableConditionPlugin = makeAddPgTableConditionPlugin;
85
+ /** @deprecated renamed to addPgTableCondition */
86
+ exports.makeAddPgTableConditionPlugin = addPgTableCondition;
87
+ function pruneBuild(build) {
88
+ const { sql, grafast, graphql, dataplanPg, input: { pgRegistry }, } = build;
89
+ return (0, exportable_js_1.EXPORTABLE)((dataplanPg, grafast, graphql, pgRegistry, sql) => ({
90
+ sql,
91
+ grafast,
92
+ graphql,
93
+ dataplanPg,
94
+ input: { pgRegistry },
95
+ }), [dataplanPg, grafast, graphql, pgRegistry, sql]);
96
+ }
80
97
  //# sourceMappingURL=makeAddPgTableConditionPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"makeAddPgTableConditionPlugin.js","sourceRoot":"","sources":["../src/makeAddPgTableConditionPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"makeAddPgTableConditionPlugin.js","sourceRoot":"","sources":["../src/makeAddPgTableConditionPlugin.ts"],"names":[],"mappings":"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"}