graphile-build 5.0.0-beta.24 → 5.0.0-beta.26

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 (113) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +2 -0
  3. package/dist/SchemaBuilder.d.ts +1 -0
  4. package/dist/SchemaBuilder.d.ts.map +1 -1
  5. package/dist/SchemaBuilder.js +10 -4
  6. package/dist/SchemaBuilder.js.map +1 -1
  7. package/dist/behavior.d.ts +26 -6
  8. package/dist/behavior.d.ts.map +1 -1
  9. package/dist/behavior.js +406 -88
  10. package/dist/behavior.js.map +1 -1
  11. package/dist/global.d.ts +7 -0
  12. package/dist/global.d.ts.map +1 -1
  13. package/dist/index.d.ts +23 -5
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +4 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/makeNewBuild.d.ts.map +1 -1
  18. package/dist/makeNewBuild.js +12 -5
  19. package/dist/makeNewBuild.js.map +1 -1
  20. package/dist/newWithHooks/index.d.ts.map +1 -1
  21. package/dist/newWithHooks/index.js +4 -1
  22. package/dist/newWithHooks/index.js.map +1 -1
  23. package/dist/plugins/AddInterfaceSubtypesToTypesPlugin.d.ts +10 -0
  24. package/dist/plugins/AddInterfaceSubtypesToTypesPlugin.d.ts.map +1 -0
  25. package/dist/plugins/AddInterfaceSubtypesToTypesPlugin.js +31 -0
  26. package/dist/plugins/AddInterfaceSubtypesToTypesPlugin.js.map +1 -0
  27. package/dist/plugins/AddNodeInterfaceToSuitableTypesPlugin.d.ts +7 -0
  28. package/dist/plugins/AddNodeInterfaceToSuitableTypesPlugin.d.ts.map +1 -1
  29. package/dist/plugins/AddNodeInterfaceToSuitableTypesPlugin.js +2 -1
  30. package/dist/plugins/AddNodeInterfaceToSuitableTypesPlugin.js.map +1 -1
  31. package/dist/plugins/BuiltinScalarConnectionsPlugin.d.ts +7 -0
  32. package/dist/plugins/BuiltinScalarConnectionsPlugin.d.ts.map +1 -1
  33. package/dist/plugins/BuiltinScalarConnectionsPlugin.js.map +1 -1
  34. package/dist/plugins/ClientMutationIdDescriptionPlugin.d.ts +10 -0
  35. package/dist/plugins/ClientMutationIdDescriptionPlugin.d.ts.map +1 -1
  36. package/dist/plugins/ClientMutationIdDescriptionPlugin.js.map +1 -1
  37. package/dist/plugins/CollectReferencedTypesPlugin.d.ts +10 -0
  38. package/dist/plugins/CollectReferencedTypesPlugin.d.ts.map +1 -0
  39. package/dist/plugins/CollectReferencedTypesPlugin.js +34 -0
  40. package/dist/plugins/CollectReferencedTypesPlugin.js.map +1 -0
  41. package/dist/plugins/CommonBehaviorsPlugin.d.ts +16 -0
  42. package/dist/plugins/CommonBehaviorsPlugin.d.ts.map +1 -0
  43. package/dist/plugins/CommonBehaviorsPlugin.js +44 -0
  44. package/dist/plugins/CommonBehaviorsPlugin.js.map +1 -0
  45. package/dist/plugins/CommonTypesPlugin.d.ts +5 -0
  46. package/dist/plugins/CommonTypesPlugin.d.ts.map +1 -1
  47. package/dist/plugins/CommonTypesPlugin.js.map +1 -1
  48. package/dist/plugins/ConnectionPlugin.d.ts +5 -0
  49. package/dist/plugins/ConnectionPlugin.d.ts.map +1 -1
  50. package/dist/plugins/ConnectionPlugin.js.map +1 -1
  51. package/dist/plugins/CursorTypePlugin.d.ts +8 -0
  52. package/dist/plugins/CursorTypePlugin.d.ts.map +1 -1
  53. package/dist/plugins/CursorTypePlugin.js.map +1 -1
  54. package/dist/plugins/MutationPayloadQueryPlugin.d.ts +10 -0
  55. package/dist/plugins/MutationPayloadQueryPlugin.d.ts.map +1 -1
  56. package/dist/plugins/MutationPayloadQueryPlugin.js.map +1 -1
  57. package/dist/plugins/MutationPlugin.d.ts +10 -0
  58. package/dist/plugins/MutationPlugin.d.ts.map +1 -1
  59. package/dist/plugins/MutationPlugin.js.map +1 -1
  60. package/dist/plugins/NodeAccessorPlugin.d.ts +5 -0
  61. package/dist/plugins/NodeAccessorPlugin.d.ts.map +1 -1
  62. package/dist/plugins/NodeAccessorPlugin.js.map +1 -1
  63. package/dist/plugins/NodeIdCodecBase64JSONPlugin.d.ts +7 -0
  64. package/dist/plugins/NodeIdCodecBase64JSONPlugin.d.ts.map +1 -1
  65. package/dist/plugins/NodeIdCodecBase64JSONPlugin.js.map +1 -1
  66. package/dist/plugins/NodeIdCodecPipeStringPlugin.d.ts +7 -0
  67. package/dist/plugins/NodeIdCodecPipeStringPlugin.d.ts.map +1 -1
  68. package/dist/plugins/NodeIdCodecPipeStringPlugin.js.map +1 -1
  69. package/dist/plugins/NodePlugin.d.ts +5 -0
  70. package/dist/plugins/NodePlugin.d.ts.map +1 -1
  71. package/dist/plugins/NodePlugin.js.map +1 -1
  72. package/dist/plugins/PageInfoStartEndCursorPlugin.d.ts +5 -0
  73. package/dist/plugins/PageInfoStartEndCursorPlugin.d.ts.map +1 -1
  74. package/dist/plugins/PageInfoStartEndCursorPlugin.js.map +1 -1
  75. package/dist/plugins/QueryPlugin.d.ts +10 -0
  76. package/dist/plugins/QueryPlugin.d.ts.map +1 -1
  77. package/dist/plugins/QueryPlugin.js.map +1 -1
  78. package/dist/plugins/QueryQueryPlugin.d.ts +7 -0
  79. package/dist/plugins/QueryQueryPlugin.d.ts.map +1 -1
  80. package/dist/plugins/QueryQueryPlugin.js.map +1 -1
  81. package/dist/plugins/RegisterQueryNodePlugin.d.ts +7 -0
  82. package/dist/plugins/RegisterQueryNodePlugin.d.ts.map +1 -1
  83. package/dist/plugins/RegisterQueryNodePlugin.js.map +1 -1
  84. package/dist/plugins/StreamDeferPlugin.d.ts +7 -0
  85. package/dist/plugins/StreamDeferPlugin.d.ts.map +1 -1
  86. package/dist/plugins/StreamDeferPlugin.js.map +1 -1
  87. package/dist/plugins/SubscriptionPlugin.d.ts +10 -0
  88. package/dist/plugins/SubscriptionPlugin.d.ts.map +1 -1
  89. package/dist/plugins/SubscriptionPlugin.js.map +1 -1
  90. package/dist/plugins/SwallowErrorsPlugin.d.ts +10 -0
  91. package/dist/plugins/SwallowErrorsPlugin.d.ts.map +1 -1
  92. package/dist/plugins/SwallowErrorsPlugin.js.map +1 -1
  93. package/dist/plugins/TrimEmptyDescriptionsPlugin.d.ts +7 -0
  94. package/dist/plugins/TrimEmptyDescriptionsPlugin.d.ts.map +1 -1
  95. package/dist/plugins/TrimEmptyDescriptionsPlugin.js.map +1 -1
  96. package/dist/plugins/index.d.ts +4 -1
  97. package/dist/plugins/index.d.ts.map +1 -1
  98. package/dist/plugins/index.js +7 -1
  99. package/dist/plugins/index.js.map +1 -1
  100. package/dist/preset.d.ts.map +1 -1
  101. package/dist/preset.js +4 -0
  102. package/dist/preset.js.map +1 -1
  103. package/dist/utils.d.ts +2 -2
  104. package/dist/utils.d.ts.map +1 -1
  105. package/dist/utils.js +3 -0
  106. package/dist/utils.js.map +1 -1
  107. package/dist/vendor/collectReferencedTypes.d.ts +3 -0
  108. package/dist/vendor/collectReferencedTypes.d.ts.map +1 -0
  109. package/dist/vendor/collectReferencedTypes.js +62 -0
  110. package/dist/vendor/collectReferencedTypes.js.map +1 -0
  111. package/dist/version.d.ts +1 -1
  112. package/dist/version.js +1 -1
  113. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,98 @@
1
1
  # graphile-build
2
2
 
3
+ ## 5.0.0-beta.26
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2207](https://github.com/graphile/crystal/pull/2207)
8
+ [`0b1f7b577`](https://github.com/graphile/crystal/commit/0b1f7b577114a49b8e3283823845ec6e37484240)
9
+ Thanks [@benjie](https://github.com/benjie)! - Fix overwhelming logs and
10
+ errors being output by the new behavior system
11
+
12
+ ## 5.0.0-beta.25
13
+
14
+ ### Patch Changes
15
+
16
+ - [#2156](https://github.com/graphile/crystal/pull/2156)
17
+ [`653929af0`](https://github.com/graphile/crystal/commit/653929af0a99a8a4d52b66e66c736be668b8700a)
18
+ Thanks [@benjie](https://github.com/benjie)! - Improve error message when
19
+ `build.getTypeByName` and related methods are called before the 'init' phase
20
+ is complete.
21
+
22
+ - [#2198](https://github.com/graphile/crystal/pull/2198)
23
+ [`eb69c7361`](https://github.com/graphile/crystal/commit/eb69c7361fc7bf8c5b1ce342eeb698bd28c9e013)
24
+ Thanks [@benjie](https://github.com/benjie)! - Fix incorrect context type used
25
+ for GraphQLSchema_types hook, and add `config` to same context.
26
+
27
+ - [#2160](https://github.com/graphile/crystal/pull/2160)
28
+ [`54054b873`](https://github.com/graphile/crystal/commit/54054b8733236ba7b2f2fa47d84e085f7196e3f9)
29
+ Thanks [@benjie](https://github.com/benjie)! - Fix bug where creating the
30
+ build object also initialized it; this is incorrect since if you just want the
31
+ build object you don't necessarily want to register all of the GraphQL types
32
+ (and potentially discover naming conflicts) at that moment. Introduced new
33
+ `schemaBuilder.initBuild(schemaBuilder.createBuild(input))` API to explicitly
34
+ handle initing if you need an initialized build object.
35
+
36
+ - [#2160](https://github.com/graphile/crystal/pull/2160)
37
+ [`426e9320e`](https://github.com/graphile/crystal/commit/426e9320e76ef95927eebb6fe4072050b6208771)
38
+ Thanks [@benjie](https://github.com/benjie)! - Massive overhaul of the
39
+ behavior system which now has a centralized registry of known behaviors and
40
+ applies behaviors in a more careful and nuanced way, removing many hacks and
41
+ workarounds, and ultimately meaning that `defaultBehavior: "-*"` should now
42
+ operate correctly. Importantly, `addBehaviorToTags()` has been removed - you
43
+ should use `plugin.schema.entityBehaviors` to indicate behaviors as shown in
44
+ this PR - do not mod the tags directly unless they're explicitly meant to be
45
+ overrides.
46
+
47
+ Technically this is a significant breaking change (besides the removal of the
48
+ `addBehaviorToTags()` helper) because the order in which behaviors are applied
49
+ has changed, and so a different behavior might ultimately "win". This shows up
50
+ in places where there is ambiguity, for example if you add `@filterable` to a
51
+ function that you don't have execute permissions on, that function will now
52
+ show up in the schema since user overrides (smart tags) "win" versus inferred
53
+ behaviors such as introspected permissions; this wasn't the case before.
54
+ Hopefully most users will not notice any difference, and for those who do, the
55
+ `graphile behavior debug` CLI may be able to help you figure out what's going
56
+ on.
57
+
58
+ Be sure to print your schema before and after this update and look for
59
+ changes; if there are changes then you likely need to fix the relevant
60
+ behaviors/smart tags. (Hopefully there's no changes for you!)
61
+
62
+ You'll also need to change any places where you're specifying behaviors that
63
+ will be type checked; you can either cast your existing strings e.g.
64
+ `defaultBehavior: "+connection -list" as GraphileBuild.BehaviorString`, or
65
+ preferably you can specify your behaviors as an array, which should give you
66
+ auto-complete on each entry; e.g. `defaultBehavior: ["connection", "-list"]`.
67
+
68
+ - [#2199](https://github.com/graphile/crystal/pull/2199)
69
+ [`3b09b414f`](https://github.com/graphile/crystal/commit/3b09b414ff43c34593373fa1f242481b0c7ada70)
70
+ Thanks [@benjie](https://github.com/benjie)! - Database enum comments are now
71
+ reflected in the schema.
72
+
73
+ - [#2155](https://github.com/graphile/crystal/pull/2155)
74
+ [`8b472cd51`](https://github.com/graphile/crystal/commit/8b472cd51cd66d8227f9f2722d09c0a774792b0f)
75
+ Thanks [@benjie](https://github.com/benjie)! - `disablePlugins` now supports
76
+ TypeScript auto-completion of known plugin names. Other names are still
77
+ accepted without error, so this is just a minor DX improvement rather than
78
+ type safety.
79
+
80
+ - [#2198](https://github.com/graphile/crystal/pull/2198)
81
+ [`ba637b56d`](https://github.com/graphile/crystal/commit/ba637b56d79a14f82fe555739921724eab0c07f7)
82
+ Thanks [@benjie](https://github.com/benjie)! - Ensure that interface subtypes
83
+ are added to schema even if not referenced directly.
84
+ - Updated dependencies
85
+ [[`d5834def1`](https://github.com/graphile/crystal/commit/d5834def1fb84f3e2c0c0a6f146f8249a6df890a),
86
+ [`42b982463`](https://github.com/graphile/crystal/commit/42b9824637a6c05e02935f2b05b5e8e0c61965a6),
87
+ [`884a4b429`](https://github.com/graphile/crystal/commit/884a4b4297af90fdadaf73addd524f1fbbcfdcce),
88
+ [`38835313a`](https://github.com/graphile/crystal/commit/38835313ad93445206dccdd4cf07b90c5a6e4377),
89
+ [`cc0941731`](https://github.com/graphile/crystal/commit/cc0941731a1679bc04ce7b7fd4254009bb5f1f62),
90
+ [`b0865d169`](https://github.com/graphile/crystal/commit/b0865d1691105b5419009954c98c8109a27a5d81),
91
+ [`8b472cd51`](https://github.com/graphile/crystal/commit/8b472cd51cd66d8227f9f2722d09c0a774792b0f),
92
+ [`9cd9bb522`](https://github.com/graphile/crystal/commit/9cd9bb5222a9f0398ee4b8bfa4f741b6de2a2192)]:
93
+ - grafast@0.1.1-beta.15
94
+ - graphile-config@0.0.1-beta.10
95
+
3
96
  ## 5.0.0-beta.24
4
97
 
5
98
  ### Patch Changes
package/README.md CHANGED
@@ -42,6 +42,8 @@ And please give some love to our featured sponsors 🤩:
42
42
  <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>
43
43
  <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>
44
44
  <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>
45
+ </tr><tr>
46
+ <td align="center"><a href=""><img src="https://graphile.org/images/sponsors/latchbio.jpg" width="90" height="90" alt="LatchBio" /><br />LatchBio</a> *</td>
45
47
  </tr></table>
46
48
 
47
49
  <em>\* Sponsors the entire Graphile suite</em>
@@ -45,6 +45,7 @@ declare class SchemaBuilder<TBuild extends GraphileBuild.Build = GraphileBuild.B
45
45
  * Create the 'Build' object.
46
46
  */
47
47
  createBuild(input: GraphileBuild.BuildInput): TBuild;
48
+ initBuild(build: TBuild): TBuild;
48
49
  /**
49
50
  * Given the `input` (result of the "gather" phase), builds the GraphQL
50
51
  * schema synchronously.
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.d.ts","sourceRoot":"","sources":["../src/SchemaBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAOhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAepE;;;GAGG;AACH,cAAM,aAAa,CACjB,MAAM,SAAS,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CACxD,SAAQ,YAAY;IAclB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAdpB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhD,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9C;;;OAGG;IACH,YAAY,EAAE,oBAAoB,CAAC;gBAGzB,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,UAAU,EAAE,aAAa,CAAC,UAAU;IAwB9C,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAAS,SAAS,MAAM,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACnE,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACtD,IAAI;IAWP;;;OAGG;IACH,UAAU,CAAC,SAAS,SAAS,MAAM,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzE,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,UAAU,CACf,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,KAAK,EAAE,UAAU,CACf,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,OAAO,EAAE,UAAU,CACjB,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,QAAQ,SAAK,GACZ,UAAU,CACX,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC;IAkFJ;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,GAAG,MAAM;IAsCpD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,GAAG,aAAa;CAgD5D;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SchemaBuilder.d.ts","sourceRoot":"","sources":["../src/SchemaBuilder.ts"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAOhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAepE;;;GAGG;AACH,cAAM,aAAa,CACjB,MAAM,SAAS,aAAa,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CACxD,SAAQ,YAAY;IAclB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;IAdpB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEhD,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE9C;;;OAGG;IACH,YAAY,EAAE,oBAAoB,CAAC;gBAGzB,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,UAAU,EAAE,aAAa,CAAC,UAAU;IAwB9C,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,SAAS,SAAS,MAAM,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACnE,QAAQ,EAAE,SAAS,EACnB,EAAE,EAAE,aAAa,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GACtD,IAAI;IAWP;;;OAGG;IACH,UAAU,CAAC,SAAS,SAAS,MAAM,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzE,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,UAAU,CACf,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,KAAK,EAAE,UAAU,CACf,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,OAAO,EAAE,UAAU,CACjB,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC,EACJ,QAAQ,SAAK,GACZ,UAAU,CACX,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAC5D,CAAC,CAAC,CAAC;IAkFJ;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,GAAG,MAAM;IAgCpD,SAAS,CAAC,KAAK,EAAE,MAAM;IAavB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,GAAG,aAAa;CAgD5D;AAED,eAAe,aAAa,CAAC"}
@@ -138,20 +138,26 @@ class SchemaBuilder extends events_1.EventEmitter {
138
138
  Object.freeze(finalBuild);
139
139
  finalBuild.behavior.freeze();
140
140
  finalBuild.status.isBuildPhaseComplete = true;
141
+ return finalBuild;
142
+ }
143
+ initBuild(build) {
144
+ if (build.status.isInitPhaseComplete) {
145
+ return build;
146
+ }
141
147
  const initContext = {
142
148
  scope: Object.create(null),
143
149
  type: "init",
144
150
  };
145
- this.applyHooks("init", INIT_OBJECT, finalBuild, initContext);
146
- finalBuild.status.isInitPhaseComplete = true;
147
- return finalBuild;
151
+ this.applyHooks("init", INIT_OBJECT, build, initContext);
152
+ build.status.isInitPhaseComplete = true;
153
+ return build;
148
154
  }
149
155
  /**
150
156
  * Given the `input` (result of the "gather" phase), builds the GraphQL
151
157
  * schema synchronously.
152
158
  */
153
159
  buildSchema(input) {
154
- const build = this.createBuild(input);
160
+ const build = this.initBuild(this.createBuild(input));
155
161
  const schemaSpec = {
156
162
  directives: [...build.graphql.specifiedDirectives],
157
163
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.js","sourceRoot":"","sources":["../src/SchemaBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaBuilder.js","sourceRoot":"","sources":["../src/SchemaBuilder.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,15 @@ interface BehaviorSpec {
4
4
  scope: BehaviorScope;
5
5
  }
6
6
  export type BehaviorDynamicMethods = {
7
- [entityType in keyof GraphileBuild.BehaviorEntities as `${entityType}Matches`]: (entity: GraphileBuild.BehaviorEntities[entityType], filter: string) => boolean | undefined;
7
+ [entityType in keyof GraphileBuild.BehaviorEntities as `${entityType}Matches`]: (entity: GraphileBuild.BehaviorEntities[entityType], filter: keyof GraphileBuild.BehaviorStrings) => boolean | undefined;
8
8
  } & {
9
- [entityType in keyof GraphileBuild.BehaviorEntities as `${entityType}Behavior`]: (entity: GraphileBuild.BehaviorEntities[entityType], applyDefaultBehavior?: boolean) => string;
9
+ [entityType in keyof GraphileBuild.BehaviorEntities as `${entityType}Behavior`]: (entity: GraphileBuild.BehaviorEntities[entityType]) => string;
10
10
  };
11
11
  export declare class Behavior {
12
12
  private resolvedPreset;
13
13
  private build;
14
14
  private behaviorEntities;
15
+ private behaviorRegistry;
15
16
  behaviorEntityTypes: (keyof GraphileBuild.BehaviorEntities)[];
16
17
  private globalDefaultBehavior;
17
18
  constructor(resolvedPreset: GraphileConfig.ResolvedPreset, build: GraphileBuild.Build);
@@ -25,7 +26,7 @@ export declare class Behavior {
25
26
  * @param localBehaviorSpecsString - the behavior of the entity as determined by details on the entity itself and any applicable ancestors
26
27
  * @param filter - the behavior the plugin specifies
27
28
  */
28
- entityMatches<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, entity: GraphileBuild.BehaviorEntities[TEntityType], filter: string): boolean | undefined;
29
+ entityMatches<TEntityType extends keyof GraphileBuild.BehaviorEntities, TFilter extends keyof GraphileBuild.BehaviorStrings>(entityType: TEntityType, entity: GraphileBuild.BehaviorEntities[TEntityType], filter: TFilter): boolean | undefined;
29
30
  /**
30
31
  * Given the entity `rawEntity` of type `entityType`, this function will
31
32
  * return the final behavior string for this entity, respecting all the
@@ -38,13 +39,24 @@ export declare class Behavior {
38
39
  * entities) then you should represent it as a tuple and we'll automatically
39
40
  * cache that.
40
41
  */
41
- getBehaviorForEntity<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, rawEntity: GraphileBuild.BehaviorEntities[TEntityType], applyDefaultBehavior?: boolean): ResolvedBehavior;
42
+ getBehaviorForEntity<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, rawEntity: GraphileBuild.BehaviorEntities[TEntityType]): ResolvedBehavior;
43
+ getInferredBehaviorForEntity<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, rawEntity: GraphileBuild.BehaviorEntities[TEntityType]): ResolvedBehavior;
44
+ getOverrideBehaviorForEntity<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, rawEntity: GraphileBuild.BehaviorEntities[TEntityType]): ResolvedBehavior;
45
+ getCombinedBehaviorForEntities<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, sources: {
46
+ [entityType in keyof GraphileBuild.BehaviorEntities]?: GraphileBuild.BehaviorEntities[entityType];
47
+ }): ResolvedBehavior;
48
+ getPreferencesAppliedBehaviors<TEntityType extends keyof GraphileBuild.BehaviorEntities>(entityType: TEntityType, inferredBehavior: ResolvedBehavior, overrideBehavior: ResolvedBehavior): ResolvedBehavior;
42
49
  /** @deprecated Please use entityMatches or stringMatches instead */
43
50
  matches(localBehaviorSpecsString: string | string[] | null | undefined, filter: string, defaultBehavior?: string): boolean | undefined;
44
51
  parseBehaviorString(behaviorString: string): BehaviorSpec[];
45
52
  parseScope(filter: string): BehaviorScope;
53
+ private resolveBehavior;
54
+ private validateBehavior;
55
+ _defaultBehaviorByEntityTypeCache: Map<"string", string>;
56
+ getDefaultBehaviorFor(entityType: keyof GraphileBuild.BehaviorEntities): string;
46
57
  }
47
- export declare function joinBehaviors(strings: ReadonlyArray<string | null | undefined>): string;
58
+ export declare function joinBehaviors(strings: ReadonlyArray<string | null | undefined>): GraphileBuild.BehaviorString;
59
+ export declare function joinResolvedBehaviors(behaviors: ReadonlyArray<ResolvedBehavior>): ResolvedBehavior;
48
60
  interface StackItem {
49
61
  source: string;
50
62
  prefix: string;
@@ -52,7 +64,15 @@ interface StackItem {
52
64
  }
53
65
  interface ResolvedBehavior {
54
66
  stack: ReadonlyArray<StackItem>;
55
- behaviorString: string;
67
+ behaviorString: GraphileBuild.BehaviorString;
68
+ toString(): string;
56
69
  }
70
+ /**
71
+ * We're strict with this because we want to be able to expand this in future.
72
+ * For example I want to allow `@behavior all some` to operate the same as
73
+ * `@behavior all\n@behavior some`. I also want to be able to add
74
+ * `@behavior -all` to remove a previously enabled behavior.
75
+ */
76
+ export declare function isValidBehaviorString(behavior: unknown): behavior is GraphileBuild.BehaviorString;
57
77
  export {};
58
78
  //# sourceMappingURL=behavior.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"AAGA,KAAK,aAAa,GAAG,MAAM,EAAE,CAAC;AAC9B,UAAU,YAAY;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,aAAa,CAAC;CACtB;AAqCD,MAAM,MAAM,sBAAsB,GAAG;KAClC,UAAU,IAAI,MAAM,aAAa,CAAC,gBAAgB,IAAI,GAAG,UAAU,SAAS,GAAG,CAC9E,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAClD,MAAM,EAAE,MAAM,KACX,OAAO,GAAG,SAAS;CACzB,GAAG;KACD,UAAU,IAAI,MAAM,aAAa,CAAC,gBAAgB,IAAI,GAAG,UAAU,UAAU,GAAG,CAC/E,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAClD,oBAAoB,CAAC,EAAE,OAAO,KAC3B,MAAM;CACZ,CAAC;AAEF,qBAAa,QAAQ;IA6BjB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,KAAK;IA7Bf,OAAO,CAAC,gBAAgB,CAsBtB;IAEK,mBAAmB,EAAE,CAAC,MAAM,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAM;IAE1E,OAAO,CAAC,qBAAqB,CAAmB;gBAEtC,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,KAAK,EAAE,aAAa,CAAC,KAAK;IAQpC;;OAEG;IACI,MAAM,IAAI,QAAQ,GAAG,sBAAsB;IAmDlD,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,YAAY;IAkBpB;;;OAGG;IACI,aAAa,CAClB,WAAW,SAAS,MAAM,aAAa,CAAC,gBAAgB,EAExD,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,EACnD,MAAM,EAAE,MAAM,GACb,OAAO,GAAG,SAAS;IAQtB;;;;;;;;;;;OAWG;IACI,oBAAoB,CACzB,WAAW,SAAS,MAAM,aAAa,CAAC,gBAAgB,EAExD,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,WAAW,CAAC,EACtD,oBAAoB,UAAO;IAwB7B,oEAAoE;IAC7D,OAAO,CACZ,wBAAwB,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAC9D,MAAM,EAAE,MAAM,EACd,eAAe,SAAK,GACnB,OAAO,GAAG,SAAS;IAuBtB,mBAAmB,CAAC,cAAc,EAAE,MAAM;IAI1C,UAAU,CAAC,MAAM,EAAE,MAAM;CAG1B;AAqFD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAChD,MAAM,CAYR;AAED,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"behavior.d.ts","sourceRoot":"","sources":["../src/behavior.ts"],"names":[],"mappings":"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"}