gatsby 2.32.2 → 2.32.3

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 (179) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/cli.js +0 -0
  3. package/dist/bootstrap/create-graphql-runner.d.ts +11 -11
  4. package/dist/bootstrap/get-config-file.d.ts +4 -4
  5. package/dist/bootstrap/load-plugins/index.d.ts +2 -2
  6. package/dist/bootstrap/load-plugins/load.d.ts +11 -11
  7. package/dist/bootstrap/load-plugins/types.d.ts +40 -40
  8. package/dist/bootstrap/load-plugins/validate.d.ts +39 -39
  9. package/dist/bootstrap/prefer-default.d.ts +1 -1
  10. package/dist/bootstrap/redirects-writer.d.ts +2 -2
  11. package/dist/bootstrap/remove-stale-jobs.d.ts +2 -2
  12. package/dist/bootstrap/requires-writer.d.ts +10 -10
  13. package/dist/bootstrap/resolve-module-exports.d.ts +15 -15
  14. package/dist/commands/develop-static.d.ts +3 -3
  15. package/dist/commands/types.d.ts +48 -48
  16. package/dist/db/common/query.d.ts +37 -37
  17. package/dist/internal.d.ts +5 -5
  18. package/dist/joi-schemas/joi.d.ts +6 -6
  19. package/dist/query/error-parser.d.ts +19 -19
  20. package/dist/query/graphql-runner.d.ts +30 -30
  21. package/dist/query/graphql-span-tracer.d.ts +19 -19
  22. package/dist/query/query-watcher.d.ts +17 -17
  23. package/dist/query/types.d.ts +34 -34
  24. package/dist/query/utils.d.ts +4 -4
  25. package/dist/redux/actions/add-page-dependency.d.ts +5 -5
  26. package/dist/redux/actions/index.d.ts +13 -13
  27. package/dist/redux/actions/internal.d.ts +109 -109
  28. package/dist/redux/actions/restricted.d.ts +293 -293
  29. package/dist/redux/index.d.ts +12 -12
  30. package/dist/redux/nodes.d.ts +92 -92
  31. package/dist/redux/persist.d.ts +3 -3
  32. package/dist/redux/plugin-runner.d.ts +1 -1
  33. package/dist/redux/reducers/babelrc.d.ts +9 -9
  34. package/dist/redux/reducers/components.d.ts +7 -7
  35. package/dist/redux/reducers/config.d.ts +2 -2
  36. package/dist/redux/reducers/definitions.d.ts +2 -2
  37. package/dist/redux/reducers/flattened-plugins.d.ts +15 -15
  38. package/dist/redux/reducers/index.d.ts +34 -34
  39. package/dist/redux/reducers/inference-metadata.d.ts +7 -7
  40. package/dist/redux/reducers/jobs.d.ts +5 -5
  41. package/dist/redux/reducers/jobsv2.d.ts +5 -5
  42. package/dist/redux/reducers/last-action.d.ts +2 -2
  43. package/dist/redux/reducers/nodes-by-type.d.ts +2 -2
  44. package/dist/redux/reducers/nodes-touched.d.ts +3 -3
  45. package/dist/redux/reducers/nodes.d.ts +2 -2
  46. package/dist/redux/reducers/page-data-stats.d.ts +2 -2
  47. package/dist/redux/reducers/page-data.d.ts +2 -2
  48. package/dist/redux/reducers/pages.d.ts +2 -2
  49. package/dist/redux/reducers/pending-page-data-writes.d.ts +4 -4
  50. package/dist/redux/reducers/program.d.ts +2 -2
  51. package/dist/redux/reducers/queries.d.ts +26 -26
  52. package/dist/redux/reducers/redirects.d.ts +2 -2
  53. package/dist/redux/reducers/resolved-nodes.d.ts +2 -2
  54. package/dist/redux/reducers/schema-customization.d.ts +23 -23
  55. package/dist/redux/reducers/schema.d.ts +3 -3
  56. package/dist/redux/reducers/static-queries-by-template.d.ts +2 -2
  57. package/dist/redux/reducers/static-query-components.d.ts +2 -2
  58. package/dist/redux/reducers/status.d.ts +5 -5
  59. package/dist/redux/reducers/themes.d.ts +2 -2
  60. package/dist/redux/reducers/visited-page.d.ts +2 -2
  61. package/dist/redux/reducers/webpack-compilation-hash.d.ts +2 -2
  62. package/dist/redux/reducers/webpack.d.ts +2 -2
  63. package/dist/redux/types.d.ts +667 -667
  64. package/dist/schema/context.d.ts +13 -13
  65. package/dist/schema/infer/inference-metadata.d.ts +72 -72
  66. package/dist/schema/infer/type-conflict-reporter.d.ts +28 -28
  67. package/dist/schema/resolvers.d.ts +34 -34
  68. package/dist/schema/type-definitions.d.ts +42 -42
  69. package/dist/schema/types/date.d.ts +40 -40
  70. package/dist/schema/types/derived-types.d.ts +42 -42
  71. package/dist/schema/types/filter.d.ts +12 -12
  72. package/dist/schema/types/node-interface.d.ts +14 -14
  73. package/dist/schema/types/sort.d.ts +18 -18
  74. package/dist/schema/types/type-builders.d.ts +36 -36
  75. package/dist/services/build-schema.d.ts +2 -2
  76. package/dist/services/calculate-dirty-queries.d.ts +5 -5
  77. package/dist/services/create-pages-statefully.d.ts +2 -2
  78. package/dist/services/create-pages.d.ts +5 -5
  79. package/dist/services/customize-schema.d.ts +2 -2
  80. package/dist/services/extract-queries.d.ts +2 -2
  81. package/dist/services/index.d.ts +19 -19
  82. package/dist/services/initialize.d.ts +8 -8
  83. package/dist/services/listen-for-mutations.d.ts +2 -2
  84. package/dist/services/listen-to-webpack.d.ts +3 -3
  85. package/dist/services/post-bootstrap.d.ts +2 -2
  86. package/dist/services/rebuild-schema-with-site-pages.d.ts +2 -2
  87. package/dist/services/recompile.d.ts +3 -3
  88. package/dist/services/run-mutation-batch.d.ts +2 -2
  89. package/dist/services/run-page-queries.d.ts +2 -2
  90. package/dist/services/run-static-queries.d.ts +2 -2
  91. package/dist/services/source-nodes.d.ts +5 -5
  92. package/dist/services/start-webpack-server.d.ts +9 -9
  93. package/dist/services/types.d.ts +45 -45
  94. package/dist/services/write-out-redirects.d.ts +2 -2
  95. package/dist/services/write-out-requires.d.ts +2 -2
  96. package/dist/state-machines/data-layer/actions.d.ts +8 -8
  97. package/dist/state-machines/data-layer/index.d.ts +24 -24
  98. package/dist/state-machines/data-layer/services.d.ts +3 -3
  99. package/dist/state-machines/data-layer/types.d.ts +30 -30
  100. package/dist/state-machines/develop/actions.d.ts +37 -37
  101. package/dist/state-machines/index.d.ts +7 -7
  102. package/dist/state-machines/query-running/actions.d.ts +9 -9
  103. package/dist/state-machines/query-running/index.d.ts +7 -7
  104. package/dist/state-machines/query-running/services.d.ts +3 -3
  105. package/dist/state-machines/query-running/types.d.ts +23 -23
  106. package/dist/state-machines/waiting/actions.d.ts +11 -11
  107. package/dist/state-machines/waiting/index.d.ts +12 -12
  108. package/dist/state-machines/waiting/services.d.ts +3 -3
  109. package/dist/state-machines/waiting/types.d.ts +12 -12
  110. package/dist/types.d.ts +9 -9
  111. package/dist/utils/api-browser-docs.d.ts +252 -252
  112. package/dist/utils/api-node-docs.d.ts +443 -443
  113. package/dist/utils/assert-store.d.ts +2 -2
  114. package/dist/utils/babel-parse-to-ast.d.ts +4 -4
  115. package/dist/utils/browserslist.d.ts +1 -1
  116. package/dist/utils/call-deferred-api.d.ts +8 -8
  117. package/dist/utils/changed-pages.d.ts +6 -6
  118. package/dist/utils/create-node-id.d.ts +24 -24
  119. package/dist/utils/create-schema-customization.d.ts +6 -6
  120. package/dist/utils/develop-preload-headers.d.ts +7 -7
  121. package/dist/utils/did-you-mean.d.ts +3 -3
  122. package/dist/utils/find-page-by-path.d.ts +2 -2
  123. package/dist/utils/flags.d.ts +34 -34
  124. package/dist/utils/gatsby-dependents.d.ts +8 -8
  125. package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -6
  126. package/dist/utils/get-latest-apis.d.ts +6 -6
  127. package/dist/utils/get-page-data.d.ts +3 -3
  128. package/dist/utils/get-react-hot-loader-strategy.d.ts +1 -1
  129. package/dist/utils/get-value-at.d.ts +1 -1
  130. package/dist/utils/handle-flags.d.ts +7 -7
  131. package/dist/utils/is-32-bit-integer.d.ts +1 -1
  132. package/dist/utils/jobs-manager.d.ts +61 -61
  133. package/dist/utils/loading-indicator.d.ts +3 -3
  134. package/dist/utils/map-templates-to-static-query-hashes.d.ts +16 -16
  135. package/dist/utils/mett.d.ts +10 -10
  136. package/dist/utils/page-data.d.ts +22 -22
  137. package/dist/utils/path.d.ts +5 -5
  138. package/dist/utils/prepare-urls.d.ts +7 -7
  139. package/dist/utils/print-deprecation-warnings.d.ts +1 -1
  140. package/dist/utils/print-instructions.d.ts +2 -2
  141. package/dist/utils/sample-site-for-experiment.d.ts +2 -2
  142. package/dist/utils/show-experiment-notice.d.ts +6 -6
  143. package/dist/utils/source-nodes.d.ts +8 -8
  144. package/dist/utils/stack-trace-utils.d.ts +22 -22
  145. package/dist/utils/start-server.d.ts +25 -25
  146. package/dist/utils/test-require-error.d.ts +1 -1
  147. package/dist/utils/wait-until-jobs-complete.d.ts +1 -1
  148. package/dist/utils/webpack-error-utils.d.ts +18 -18
  149. package/dist/utils/webpack-status.d.ts +3 -3
  150. package/dist/utils/websocket-manager.d.ts +39 -39
  151. package/dist/utils/worker/pool.d.ts +2 -2
  152. package/gatsby-admin-public/4c744e84-6c27fb4a13dc8c8c3e88.js.map +1 -1
  153. package/gatsby-admin-public/69bd6bf3-00a5b50945cce68e041c.js.map +1 -1
  154. package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-d690a55f56dedc0f95b3.js.map +1 -1
  155. package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-30cef3c004238987a416.js.map +1 -1
  156. package/gatsby-admin-public/{app-d9751648e893ba210043.js → app-74fe4789160202707c96.js} +2 -2
  157. package/gatsby-admin-public/{app-d9751648e893ba210043.js.LICENSE.txt → app-74fe4789160202707c96.js.LICENSE.txt} +0 -0
  158. package/gatsby-admin-public/app-74fe4789160202707c96.js.map +1 -0
  159. package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-976ea4aa8380d4a68cb1.js.map +1 -1
  160. package/gatsby-admin-public/chunk-map.json +1 -1
  161. package/gatsby-admin-public/component---src-pages-index-tsx-70aa31e4e1eca0a560a8.js.map +1 -1
  162. package/gatsby-admin-public/component---src-pages-plugins-tsx-c6700b48ed9ac88a9768.js.map +1 -1
  163. package/gatsby-admin-public/{component---src-pages-recipe-js-91150640d438410a1a0b.js → component---src-pages-recipe-js-4e8fdacf3e36393b3739.js} +1 -1
  164. package/gatsby-admin-public/component---src-pages-recipe-js-4e8fdacf3e36393b3739.js.map +1 -0
  165. package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fbd253211b90ee4d944c.js.map +1 -1
  166. package/gatsby-admin-public/framework-b5530edc347e85dd3979.js.map +1 -1
  167. package/gatsby-admin-public/index.html +1 -1
  168. package/gatsby-admin-public/page-data/app-data.json +1 -1
  169. package/gatsby-admin-public/pages/index.html +1 -1
  170. package/gatsby-admin-public/plugins/index.html +1 -1
  171. package/gatsby-admin-public/polyfill-bb3950ad41cd96a6ba64.js.map +1 -1
  172. package/gatsby-admin-public/recipe/index.html +1 -1
  173. package/gatsby-admin-public/recipes/index.html +1 -1
  174. package/gatsby-admin-public/{webpack-runtime-0a97eab52901d3d030d8.js → webpack-runtime-ce59e1ba33a41c65ea97.js} +2 -2
  175. package/gatsby-admin-public/{webpack-runtime-0a97eab52901d3d030d8.js.map → webpack-runtime-ce59e1ba33a41c65ea97.js.map} +1 -1
  176. package/gatsby-admin-public/webpack.stats.json +1 -1
  177. package/package.json +3 -3
  178. package/gatsby-admin-public/app-d9751648e893ba210043.js.map +0 -1
  179. package/gatsby-admin-public/component---src-pages-recipe-js-91150640d438410a1a0b.js.map +0 -1
@@ -1,293 +1,293 @@
1
- import { GraphQLSchema, GraphQLOutputType } from "graphql";
2
- import { ActionCreator } from "redux";
3
- import { ThunkAction } from "redux-thunk";
4
- import { GatsbyGraphQLType } from "../../schema/types/type-builders";
5
- import { IGatsbyPlugin, ActionsUnion, IAddThirdPartySchema, ICreateTypes, IGatsbyState, ICreateFieldExtension, IPrintTypeDefinitions, ICreateResolverContext, IGatsbyPluginContext } from "../types";
6
- declare type SomeActionCreator = ActionCreator<ActionsUnion> | ActionCreator<ThunkAction<any, IGatsbyState, any, ActionsUnion>>;
7
- export declare const actions: {
8
- /**
9
- * Add a third-party schema to be merged into main schema. Schema has to be a
10
- * graphql-js GraphQLSchema object.
11
- *
12
- * This schema is going to be merged as-is. This can easily break the main
13
- * Gatsby schema, so it's user's responsibility to make sure it doesn't happen
14
- * (by e.g. namespacing the schema).
15
- *
16
- * @availableIn [createSchemaCustomization, sourceNodes]
17
- *
18
- * @param {Object} $0
19
- * @param {GraphQLSchema} $0.schema GraphQL schema to add
20
- */
21
- addThirdPartySchema: ({ schema }: {
22
- schema: GraphQLSchema;
23
- }, plugin: IGatsbyPlugin, traceId?: string | undefined) => IAddThirdPartySchema;
24
- /**
25
- * Add type definitions to the GraphQL schema.
26
- *
27
- * @availableIn [createSchemaCustomization, sourceNodes]
28
- *
29
- * @param {string | GraphQLOutputType | GatsbyGraphQLType | string[] | GraphQLOutputType[] | GatsbyGraphQLType[]} types Type definitions
30
- *
31
- * Type definitions can be provided either as
32
- * [`graphql-js` types](https://graphql.org/graphql-js/), in
33
- * [GraphQL schema definition language (SDL)](https://graphql.org/learn/)
34
- * or using Gatsby Type Builders available on the `schema` API argument.
35
- *
36
- * Things to note:
37
- * * type definitions targeting node types, i.e. `MarkdownRemark` and others
38
- * added in `sourceNodes` or `onCreateNode` APIs, need to implement the
39
- * `Node` interface. Interface fields will be added automatically, but it
40
- * is mandatory to label those types with `implements Node`.
41
- * * by default, explicit type definitions from `createTypes` will be merged
42
- * with inferred field types, and default field resolvers for `Date` (which
43
- * adds formatting options) and `File` (which resolves the field value as
44
- * a `relativePath` foreign-key field) are added. This behavior can be
45
- * customised with `@infer`, `@dontInfer` directives or extensions. Fields
46
- * may be assigned resolver (and other option like args) with additional
47
- * directives. Currently `@dateformat`, `@link`, `@fileByRelativePath` and
48
- * `@proxy` are available.
49
- *
50
- *
51
- * Schema customization controls:
52
- * * `@infer` - run inference on the type and add fields that don't exist on the
53
- * defined type to it.
54
- * * `@dontInfer` - don't run any inference on the type
55
- *
56
- * Extensions to add resolver options:
57
- * * `@dateformat` - add date formatting arguments. Accepts `formatString` and
58
- * `locale` options that sets the defaults for this field
59
- * * `@link` - connect to a different Node. Arguments `by` and `from`, which
60
- * define which field to compare to on a remote node and which field to use on
61
- * the source node
62
- * * `@fileByRelativePath` - connect to a File node. Same arguments. The
63
- * difference from link is that this normalizes the relative path to be
64
- * relative from the path where source node is found.
65
- * * `@proxy` - in case the underlying node data contains field names with
66
- * characters that are invalid in GraphQL, `proxy` allows to explicitly
67
- * proxy those properties to fields with valid field names. Takes a `from` arg.
68
- *
69
- *
70
- * @example
71
- * exports.createSchemaCustomization = ({ actions }) => {
72
- * const { createTypes } = actions
73
- * const typeDefs = `
74
- * """
75
- * Markdown Node
76
- * """
77
- * type MarkdownRemark implements Node @infer {
78
- * frontmatter: Frontmatter!
79
- * }
80
- *
81
- * """
82
- * Markdown Frontmatter
83
- * """
84
- * type Frontmatter @infer {
85
- * title: String!
86
- * author: AuthorJson! @link
87
- * date: Date! @dateformat
88
- * published: Boolean!
89
- * tags: [String!]!
90
- * }
91
- *
92
- * """
93
- * Author information
94
- * """
95
- * # Does not include automatically inferred fields
96
- * type AuthorJson implements Node @dontInfer {
97
- * name: String!
98
- * birthday: Date! @dateformat(locale: "ru")
99
- * }
100
- * `
101
- * createTypes(typeDefs)
102
- * }
103
- *
104
- * // using Gatsby Type Builder API
105
- * exports.createSchemaCustomization = ({ actions, schema }) => {
106
- * const { createTypes } = actions
107
- * const typeDefs = [
108
- * schema.buildObjectType({
109
- * name: 'MarkdownRemark',
110
- * fields: {
111
- * frontmatter: 'Frontmatter!'
112
- * },
113
- * interfaces: ['Node'],
114
- * extensions: {
115
- * infer: true,
116
- * },
117
- * }),
118
- * schema.buildObjectType({
119
- * name: 'Frontmatter',
120
- * fields: {
121
- * title: {
122
- * type: 'String!',
123
- * resolve(parent) {
124
- * return parent.title || '(Untitled)'
125
- * }
126
- * },
127
- * author: {
128
- * type: 'AuthorJson'
129
- * extensions: {
130
- * link: {},
131
- * },
132
- * }
133
- * date: {
134
- * type: 'Date!'
135
- * extensions: {
136
- * dateformat: {},
137
- * },
138
- * },
139
- * published: 'Boolean!',
140
- * tags: '[String!]!',
141
- * }
142
- * }),
143
- * schema.buildObjectType({
144
- * name: 'AuthorJson',
145
- * fields: {
146
- * name: 'String!'
147
- * birthday: {
148
- * type: 'Date!'
149
- * extensions: {
150
- * dateformat: {
151
- * locale: 'ru',
152
- * },
153
- * },
154
- * },
155
- * },
156
- * interfaces: ['Node'],
157
- * extensions: {
158
- * infer: false,
159
- * },
160
- * }),
161
- * ]
162
- * createTypes(typeDefs)
163
- * }
164
- */
165
- createTypes: (types: string | GraphQLOutputType | GatsbyGraphQLType<any, any> | Array<string | GraphQLOutputType | GatsbyGraphQLType<any, any>>, plugin: IGatsbyPlugin, traceId?: string | undefined) => ICreateTypes;
166
- /**
167
- * Add a field extension to the GraphQL schema.
168
- *
169
- * Extensions allow defining custom behavior which can be added to fields
170
- * via directive (in SDL) or on the `extensions` prop (with Type Builders).
171
- *
172
- * The extension definition takes a `name`, an `extend` function, and optional
173
- * extension `args` for options. The `extend` function has to return a (partial)
174
- * field config, and receives the extension options and the previous field config
175
- * as arguments.
176
- *
177
- * @availableIn [createSchemaCustomization, sourceNodes]
178
- *
179
- * @param {GraphQLFieldExtensionDefinition} extension The field extension definition
180
- * @example
181
- * exports.createSchemaCustomization = ({ actions }) => {
182
- * const { createFieldExtension } = actions
183
- * createFieldExtension({
184
- * name: 'motivate',
185
- * args: {
186
- * caffeine: 'Int'
187
- * },
188
- * extend(options, prevFieldConfig) {
189
- * return {
190
- * type: 'String',
191
- * args: {
192
- * sunshine: {
193
- * type: 'Int',
194
- * defaultValue: 0,
195
- * },
196
- * },
197
- * resolve(source, args, context, info) {
198
- * const motivation = (options.caffeine || 0) - args.sunshine
199
- * if (motivation > 5) return 'Work! Work! Work!'
200
- * return 'Maybe tomorrow.'
201
- * },
202
- * }
203
- * },
204
- * })
205
- * }
206
- */
207
- createFieldExtension: (extension: any, plugin: IGatsbyPlugin, traceId?: string | undefined) => ThunkAction<void, IGatsbyState, {}, ICreateFieldExtension>;
208
- /**
209
- * Write GraphQL schema to file
210
- *
211
- * Writes out inferred and explicitly specified type definitions. This is not
212
- * the full GraphQL schema, but only the types necessary to recreate all type
213
- * definitions, i.e. it does not include directives, built-ins, and derived
214
- * types for filtering, sorting, pagination etc. Optionally, you can define a
215
- * list of types to include/exclude. This is recommended to avoid including
216
- * definitions for plugin-created types.
217
- *
218
- * The first object parameter is required, however all the fields in the object are optional.
219
- *
220
- * @availableIn [createSchemaCustomization]
221
- *
222
- * @param {object} $0
223
- * @param {string} [$0.path] The path to the output file, defaults to `schema.gql`
224
- * @param {object} [$0.include] Configure types to include
225
- * @param {string[]} [$0.include.types] Only include these types
226
- * @param {string[]} [$0.include.plugins] Only include types owned by these plugins
227
- * @param {object} [$0.exclude] Configure types to exclude
228
- * @param {string[]} [$0.exclude.types] Do not include these types
229
- * @param {string[]} [$0.exclude.plugins] Do not include types owned by these plugins
230
- * @param {boolean} [$0.withFieldTypes] Include field types, defaults to `true`
231
- * @example
232
- * exports.createSchemaCustomization = ({ actions }) => {
233
- * // This code writes a GraphQL schema to a file named `schema.gql`.
234
- * actions.printTypeDefinitions({})
235
- * }
236
- * @example
237
- * exports.createSchemaCustomization = ({ actions }) => {
238
- * // This code writes a GraphQL schema to a file named `schema.gql`, but this time it does not include field types.
239
- * actions.printTypeDefinitions({ withFieldTypes: false })
240
- * }
241
- */
242
- printTypeDefinitions: ({ path, include, exclude, withFieldTypes, }: {
243
- path?: string | undefined;
244
- include?: {
245
- types?: string[] | undefined;
246
- plugins?: string[] | undefined;
247
- } | undefined;
248
- exclude?: {
249
- types?: string[] | undefined;
250
- plugins?: string[] | undefined;
251
- } | undefined;
252
- withFieldTypes?: boolean | undefined;
253
- }, plugin: IGatsbyPlugin, traceId?: string | undefined) => IPrintTypeDefinitions;
254
- /**
255
- * Make functionality available on field resolver `context`
256
- *
257
- * @availableIn [createSchemaCustomization]
258
- *
259
- * @param {object} context Object to make available on `context`.
260
- * When called from a plugin, the context value will be namespaced under
261
- * the camel-cased plugin name without the "gatsby-" prefix
262
- * @example
263
- * const getHtml = md => remark().use(html).process(md)
264
- * exports.createSchemaCustomization = ({ actions }) => {
265
- * actions.createResolverContext({ getHtml })
266
- * }
267
- * // The context value can then be accessed in any field resolver like this:
268
- * exports.createSchemaCustomization = ({ actions, schema }) => {
269
- * actions.createTypes(schema.buildObjectType({
270
- * name: 'Test',
271
- * interfaces: ['Node'],
272
- * fields: {
273
- * md: {
274
- * type: 'String!',
275
- * async resolve(source, args, context, info) {
276
- * const processed = await context.transformerRemark.getHtml(source.internal.contents)
277
- * return processed.contents
278
- * }
279
- * }
280
- * }
281
- * }))
282
- * }
283
- */
284
- createResolverContext: (context: IGatsbyPluginContext, plugin: IGatsbyPlugin, traceId?: string | undefined) => ThunkAction<void, IGatsbyState, {}, ICreateResolverContext>;
285
- };
286
- export declare const availableActionsByAPI: Record<string, {
287
- createFieldExtension: SomeActionCreator;
288
- createTypes: SomeActionCreator;
289
- createResolverContext: SomeActionCreator;
290
- addThirdPartySchema: SomeActionCreator;
291
- printTypeDefinitions: SomeActionCreator;
292
- }>;
293
- export {};
1
+ import { GraphQLSchema, GraphQLOutputType } from "graphql";
2
+ import { ActionCreator } from "redux";
3
+ import { ThunkAction } from "redux-thunk";
4
+ import { GatsbyGraphQLType } from "../../schema/types/type-builders";
5
+ import { IGatsbyPlugin, ActionsUnion, IAddThirdPartySchema, ICreateTypes, IGatsbyState, ICreateFieldExtension, IPrintTypeDefinitions, ICreateResolverContext, IGatsbyPluginContext } from "../types";
6
+ declare type SomeActionCreator = ActionCreator<ActionsUnion> | ActionCreator<ThunkAction<any, IGatsbyState, any, ActionsUnion>>;
7
+ export declare const actions: {
8
+ /**
9
+ * Add a third-party schema to be merged into main schema. Schema has to be a
10
+ * graphql-js GraphQLSchema object.
11
+ *
12
+ * This schema is going to be merged as-is. This can easily break the main
13
+ * Gatsby schema, so it's user's responsibility to make sure it doesn't happen
14
+ * (by e.g. namespacing the schema).
15
+ *
16
+ * @availableIn [createSchemaCustomization, sourceNodes]
17
+ *
18
+ * @param {Object} $0
19
+ * @param {GraphQLSchema} $0.schema GraphQL schema to add
20
+ */
21
+ addThirdPartySchema: ({ schema }: {
22
+ schema: GraphQLSchema;
23
+ }, plugin: IGatsbyPlugin, traceId?: string | undefined) => IAddThirdPartySchema;
24
+ /**
25
+ * Add type definitions to the GraphQL schema.
26
+ *
27
+ * @availableIn [createSchemaCustomization, sourceNodes]
28
+ *
29
+ * @param {string | GraphQLOutputType | GatsbyGraphQLType | string[] | GraphQLOutputType[] | GatsbyGraphQLType[]} types Type definitions
30
+ *
31
+ * Type definitions can be provided either as
32
+ * [`graphql-js` types](https://graphql.org/graphql-js/), in
33
+ * [GraphQL schema definition language (SDL)](https://graphql.org/learn/)
34
+ * or using Gatsby Type Builders available on the `schema` API argument.
35
+ *
36
+ * Things to note:
37
+ * * type definitions targeting node types, i.e. `MarkdownRemark` and others
38
+ * added in `sourceNodes` or `onCreateNode` APIs, need to implement the
39
+ * `Node` interface. Interface fields will be added automatically, but it
40
+ * is mandatory to label those types with `implements Node`.
41
+ * * by default, explicit type definitions from `createTypes` will be merged
42
+ * with inferred field types, and default field resolvers for `Date` (which
43
+ * adds formatting options) and `File` (which resolves the field value as
44
+ * a `relativePath` foreign-key field) are added. This behavior can be
45
+ * customised with `@infer`, `@dontInfer` directives or extensions. Fields
46
+ * may be assigned resolver (and other option like args) with additional
47
+ * directives. Currently `@dateformat`, `@link`, `@fileByRelativePath` and
48
+ * `@proxy` are available.
49
+ *
50
+ *
51
+ * Schema customization controls:
52
+ * * `@infer` - run inference on the type and add fields that don't exist on the
53
+ * defined type to it.
54
+ * * `@dontInfer` - don't run any inference on the type
55
+ *
56
+ * Extensions to add resolver options:
57
+ * * `@dateformat` - add date formatting arguments. Accepts `formatString` and
58
+ * `locale` options that sets the defaults for this field
59
+ * * `@link` - connect to a different Node. Arguments `by` and `from`, which
60
+ * define which field to compare to on a remote node and which field to use on
61
+ * the source node
62
+ * * `@fileByRelativePath` - connect to a File node. Same arguments. The
63
+ * difference from link is that this normalizes the relative path to be
64
+ * relative from the path where source node is found.
65
+ * * `@proxy` - in case the underlying node data contains field names with
66
+ * characters that are invalid in GraphQL, `proxy` allows to explicitly
67
+ * proxy those properties to fields with valid field names. Takes a `from` arg.
68
+ *
69
+ *
70
+ * @example
71
+ * exports.createSchemaCustomization = ({ actions }) => {
72
+ * const { createTypes } = actions
73
+ * const typeDefs = `
74
+ * """
75
+ * Markdown Node
76
+ * """
77
+ * type MarkdownRemark implements Node @infer {
78
+ * frontmatter: Frontmatter!
79
+ * }
80
+ *
81
+ * """
82
+ * Markdown Frontmatter
83
+ * """
84
+ * type Frontmatter @infer {
85
+ * title: String!
86
+ * author: AuthorJson! @link
87
+ * date: Date! @dateformat
88
+ * published: Boolean!
89
+ * tags: [String!]!
90
+ * }
91
+ *
92
+ * """
93
+ * Author information
94
+ * """
95
+ * # Does not include automatically inferred fields
96
+ * type AuthorJson implements Node @dontInfer {
97
+ * name: String!
98
+ * birthday: Date! @dateformat(locale: "ru")
99
+ * }
100
+ * `
101
+ * createTypes(typeDefs)
102
+ * }
103
+ *
104
+ * // using Gatsby Type Builder API
105
+ * exports.createSchemaCustomization = ({ actions, schema }) => {
106
+ * const { createTypes } = actions
107
+ * const typeDefs = [
108
+ * schema.buildObjectType({
109
+ * name: 'MarkdownRemark',
110
+ * fields: {
111
+ * frontmatter: 'Frontmatter!'
112
+ * },
113
+ * interfaces: ['Node'],
114
+ * extensions: {
115
+ * infer: true,
116
+ * },
117
+ * }),
118
+ * schema.buildObjectType({
119
+ * name: 'Frontmatter',
120
+ * fields: {
121
+ * title: {
122
+ * type: 'String!',
123
+ * resolve(parent) {
124
+ * return parent.title || '(Untitled)'
125
+ * }
126
+ * },
127
+ * author: {
128
+ * type: 'AuthorJson'
129
+ * extensions: {
130
+ * link: {},
131
+ * },
132
+ * }
133
+ * date: {
134
+ * type: 'Date!'
135
+ * extensions: {
136
+ * dateformat: {},
137
+ * },
138
+ * },
139
+ * published: 'Boolean!',
140
+ * tags: '[String!]!',
141
+ * }
142
+ * }),
143
+ * schema.buildObjectType({
144
+ * name: 'AuthorJson',
145
+ * fields: {
146
+ * name: 'String!'
147
+ * birthday: {
148
+ * type: 'Date!'
149
+ * extensions: {
150
+ * dateformat: {
151
+ * locale: 'ru',
152
+ * },
153
+ * },
154
+ * },
155
+ * },
156
+ * interfaces: ['Node'],
157
+ * extensions: {
158
+ * infer: false,
159
+ * },
160
+ * }),
161
+ * ]
162
+ * createTypes(typeDefs)
163
+ * }
164
+ */
165
+ createTypes: (types: string | GraphQLOutputType | GatsbyGraphQLType<any, any> | Array<string | GraphQLOutputType | GatsbyGraphQLType<any, any>>, plugin: IGatsbyPlugin, traceId?: string | undefined) => ICreateTypes;
166
+ /**
167
+ * Add a field extension to the GraphQL schema.
168
+ *
169
+ * Extensions allow defining custom behavior which can be added to fields
170
+ * via directive (in SDL) or on the `extensions` prop (with Type Builders).
171
+ *
172
+ * The extension definition takes a `name`, an `extend` function, and optional
173
+ * extension `args` for options. The `extend` function has to return a (partial)
174
+ * field config, and receives the extension options and the previous field config
175
+ * as arguments.
176
+ *
177
+ * @availableIn [createSchemaCustomization, sourceNodes]
178
+ *
179
+ * @param {GraphQLFieldExtensionDefinition} extension The field extension definition
180
+ * @example
181
+ * exports.createSchemaCustomization = ({ actions }) => {
182
+ * const { createFieldExtension } = actions
183
+ * createFieldExtension({
184
+ * name: 'motivate',
185
+ * args: {
186
+ * caffeine: 'Int'
187
+ * },
188
+ * extend(options, prevFieldConfig) {
189
+ * return {
190
+ * type: 'String',
191
+ * args: {
192
+ * sunshine: {
193
+ * type: 'Int',
194
+ * defaultValue: 0,
195
+ * },
196
+ * },
197
+ * resolve(source, args, context, info) {
198
+ * const motivation = (options.caffeine || 0) - args.sunshine
199
+ * if (motivation > 5) return 'Work! Work! Work!'
200
+ * return 'Maybe tomorrow.'
201
+ * },
202
+ * }
203
+ * },
204
+ * })
205
+ * }
206
+ */
207
+ createFieldExtension: (extension: any, plugin: IGatsbyPlugin, traceId?: string | undefined) => ThunkAction<void, IGatsbyState, {}, ICreateFieldExtension>;
208
+ /**
209
+ * Write GraphQL schema to file
210
+ *
211
+ * Writes out inferred and explicitly specified type definitions. This is not
212
+ * the full GraphQL schema, but only the types necessary to recreate all type
213
+ * definitions, i.e. it does not include directives, built-ins, and derived
214
+ * types for filtering, sorting, pagination etc. Optionally, you can define a
215
+ * list of types to include/exclude. This is recommended to avoid including
216
+ * definitions for plugin-created types.
217
+ *
218
+ * The first object parameter is required, however all the fields in the object are optional.
219
+ *
220
+ * @availableIn [createSchemaCustomization]
221
+ *
222
+ * @param {object} $0
223
+ * @param {string} [$0.path] The path to the output file, defaults to `schema.gql`
224
+ * @param {object} [$0.include] Configure types to include
225
+ * @param {string[]} [$0.include.types] Only include these types
226
+ * @param {string[]} [$0.include.plugins] Only include types owned by these plugins
227
+ * @param {object} [$0.exclude] Configure types to exclude
228
+ * @param {string[]} [$0.exclude.types] Do not include these types
229
+ * @param {string[]} [$0.exclude.plugins] Do not include types owned by these plugins
230
+ * @param {boolean} [$0.withFieldTypes] Include field types, defaults to `true`
231
+ * @example
232
+ * exports.createSchemaCustomization = ({ actions }) => {
233
+ * // This code writes a GraphQL schema to a file named `schema.gql`.
234
+ * actions.printTypeDefinitions({})
235
+ * }
236
+ * @example
237
+ * exports.createSchemaCustomization = ({ actions }) => {
238
+ * // This code writes a GraphQL schema to a file named `schema.gql`, but this time it does not include field types.
239
+ * actions.printTypeDefinitions({ withFieldTypes: false })
240
+ * }
241
+ */
242
+ printTypeDefinitions: ({ path, include, exclude, withFieldTypes, }: {
243
+ path?: string | undefined;
244
+ include?: {
245
+ types?: string[] | undefined;
246
+ plugins?: string[] | undefined;
247
+ } | undefined;
248
+ exclude?: {
249
+ types?: string[] | undefined;
250
+ plugins?: string[] | undefined;
251
+ } | undefined;
252
+ withFieldTypes?: boolean | undefined;
253
+ }, plugin: IGatsbyPlugin, traceId?: string | undefined) => IPrintTypeDefinitions;
254
+ /**
255
+ * Make functionality available on field resolver `context`
256
+ *
257
+ * @availableIn [createSchemaCustomization]
258
+ *
259
+ * @param {object} context Object to make available on `context`.
260
+ * When called from a plugin, the context value will be namespaced under
261
+ * the camel-cased plugin name without the "gatsby-" prefix
262
+ * @example
263
+ * const getHtml = md => remark().use(html).process(md)
264
+ * exports.createSchemaCustomization = ({ actions }) => {
265
+ * actions.createResolverContext({ getHtml })
266
+ * }
267
+ * // The context value can then be accessed in any field resolver like this:
268
+ * exports.createSchemaCustomization = ({ actions, schema }) => {
269
+ * actions.createTypes(schema.buildObjectType({
270
+ * name: 'Test',
271
+ * interfaces: ['Node'],
272
+ * fields: {
273
+ * md: {
274
+ * type: 'String!',
275
+ * async resolve(source, args, context, info) {
276
+ * const processed = await context.transformerRemark.getHtml(source.internal.contents)
277
+ * return processed.contents
278
+ * }
279
+ * }
280
+ * }
281
+ * }))
282
+ * }
283
+ */
284
+ createResolverContext: (context: IGatsbyPluginContext, plugin: IGatsbyPlugin, traceId?: string | undefined) => ThunkAction<void, IGatsbyState, {}, ICreateResolverContext>;
285
+ };
286
+ export declare const availableActionsByAPI: Record<string, {
287
+ createFieldExtension: SomeActionCreator;
288
+ createTypes: SomeActionCreator;
289
+ createResolverContext: SomeActionCreator;
290
+ addThirdPartySchema: SomeActionCreator;
291
+ printTypeDefinitions: SomeActionCreator;
292
+ }>;
293
+ export {};
@@ -1,12 +1,12 @@
1
- import { IGatsbyState, ActionsUnion } from "./types";
2
- export declare const emitter: import("../utils/mett").IMett;
3
- export declare const readState: () => IGatsbyState;
4
- export interface IMultiDispatch {
5
- <T extends ActionsUnion>(action: Array<T>): Array<T>;
6
- }
7
- export declare const configureStore: (initialState: IGatsbyState) => import("redux").Store<import("redux").CombinedState<IGatsbyState>, import("redux").AnyAction> & {
8
- dispatch: import("redux-thunk").ThunkDispatch<IGatsbyState, undefined, ActionsUnion> & IMultiDispatch;
9
- };
10
- export declare type GatsbyReduxStore = ReturnType<typeof configureStore>;
11
- export declare const store: GatsbyReduxStore;
12
- export declare const saveState: () => void;
1
+ import { IGatsbyState, ActionsUnion } from "./types";
2
+ export declare const emitter: import("../utils/mett").IMett;
3
+ export declare const readState: () => IGatsbyState;
4
+ export interface IMultiDispatch {
5
+ <T extends ActionsUnion>(action: Array<T>): Array<T>;
6
+ }
7
+ export declare const configureStore: (initialState: IGatsbyState) => import("redux").Store<import("redux").CombinedState<IGatsbyState>, import("redux").AnyAction> & {
8
+ dispatch: import("redux-thunk").ThunkDispatch<IGatsbyState, undefined, ActionsUnion> & IMultiDispatch;
9
+ };
10
+ export declare type GatsbyReduxStore = ReturnType<typeof configureStore>;
11
+ export declare const store: GatsbyReduxStore;
12
+ export declare const saveState: () => void;