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.
- package/CHANGELOG.md +4 -0
- package/cli.js +0 -0
- package/dist/bootstrap/create-graphql-runner.d.ts +11 -11
- package/dist/bootstrap/get-config-file.d.ts +4 -4
- package/dist/bootstrap/load-plugins/index.d.ts +2 -2
- package/dist/bootstrap/load-plugins/load.d.ts +11 -11
- package/dist/bootstrap/load-plugins/types.d.ts +40 -40
- package/dist/bootstrap/load-plugins/validate.d.ts +39 -39
- package/dist/bootstrap/prefer-default.d.ts +1 -1
- package/dist/bootstrap/redirects-writer.d.ts +2 -2
- package/dist/bootstrap/remove-stale-jobs.d.ts +2 -2
- package/dist/bootstrap/requires-writer.d.ts +10 -10
- package/dist/bootstrap/resolve-module-exports.d.ts +15 -15
- package/dist/commands/develop-static.d.ts +3 -3
- package/dist/commands/types.d.ts +48 -48
- package/dist/db/common/query.d.ts +37 -37
- package/dist/internal.d.ts +5 -5
- package/dist/joi-schemas/joi.d.ts +6 -6
- package/dist/query/error-parser.d.ts +19 -19
- package/dist/query/graphql-runner.d.ts +30 -30
- package/dist/query/graphql-span-tracer.d.ts +19 -19
- package/dist/query/query-watcher.d.ts +17 -17
- package/dist/query/types.d.ts +34 -34
- package/dist/query/utils.d.ts +4 -4
- package/dist/redux/actions/add-page-dependency.d.ts +5 -5
- package/dist/redux/actions/index.d.ts +13 -13
- package/dist/redux/actions/internal.d.ts +109 -109
- package/dist/redux/actions/restricted.d.ts +293 -293
- package/dist/redux/index.d.ts +12 -12
- package/dist/redux/nodes.d.ts +92 -92
- package/dist/redux/persist.d.ts +3 -3
- package/dist/redux/plugin-runner.d.ts +1 -1
- package/dist/redux/reducers/babelrc.d.ts +9 -9
- package/dist/redux/reducers/components.d.ts +7 -7
- package/dist/redux/reducers/config.d.ts +2 -2
- package/dist/redux/reducers/definitions.d.ts +2 -2
- package/dist/redux/reducers/flattened-plugins.d.ts +15 -15
- package/dist/redux/reducers/index.d.ts +34 -34
- package/dist/redux/reducers/inference-metadata.d.ts +7 -7
- package/dist/redux/reducers/jobs.d.ts +5 -5
- package/dist/redux/reducers/jobsv2.d.ts +5 -5
- package/dist/redux/reducers/last-action.d.ts +2 -2
- package/dist/redux/reducers/nodes-by-type.d.ts +2 -2
- package/dist/redux/reducers/nodes-touched.d.ts +3 -3
- package/dist/redux/reducers/nodes.d.ts +2 -2
- package/dist/redux/reducers/page-data-stats.d.ts +2 -2
- package/dist/redux/reducers/page-data.d.ts +2 -2
- package/dist/redux/reducers/pages.d.ts +2 -2
- package/dist/redux/reducers/pending-page-data-writes.d.ts +4 -4
- package/dist/redux/reducers/program.d.ts +2 -2
- package/dist/redux/reducers/queries.d.ts +26 -26
- package/dist/redux/reducers/redirects.d.ts +2 -2
- package/dist/redux/reducers/resolved-nodes.d.ts +2 -2
- package/dist/redux/reducers/schema-customization.d.ts +23 -23
- package/dist/redux/reducers/schema.d.ts +3 -3
- package/dist/redux/reducers/static-queries-by-template.d.ts +2 -2
- package/dist/redux/reducers/static-query-components.d.ts +2 -2
- package/dist/redux/reducers/status.d.ts +5 -5
- package/dist/redux/reducers/themes.d.ts +2 -2
- package/dist/redux/reducers/visited-page.d.ts +2 -2
- package/dist/redux/reducers/webpack-compilation-hash.d.ts +2 -2
- package/dist/redux/reducers/webpack.d.ts +2 -2
- package/dist/redux/types.d.ts +667 -667
- package/dist/schema/context.d.ts +13 -13
- package/dist/schema/infer/inference-metadata.d.ts +72 -72
- package/dist/schema/infer/type-conflict-reporter.d.ts +28 -28
- package/dist/schema/resolvers.d.ts +34 -34
- package/dist/schema/type-definitions.d.ts +42 -42
- package/dist/schema/types/date.d.ts +40 -40
- package/dist/schema/types/derived-types.d.ts +42 -42
- package/dist/schema/types/filter.d.ts +12 -12
- package/dist/schema/types/node-interface.d.ts +14 -14
- package/dist/schema/types/sort.d.ts +18 -18
- package/dist/schema/types/type-builders.d.ts +36 -36
- package/dist/services/build-schema.d.ts +2 -2
- package/dist/services/calculate-dirty-queries.d.ts +5 -5
- package/dist/services/create-pages-statefully.d.ts +2 -2
- package/dist/services/create-pages.d.ts +5 -5
- package/dist/services/customize-schema.d.ts +2 -2
- package/dist/services/extract-queries.d.ts +2 -2
- package/dist/services/index.d.ts +19 -19
- package/dist/services/initialize.d.ts +8 -8
- package/dist/services/listen-for-mutations.d.ts +2 -2
- package/dist/services/listen-to-webpack.d.ts +3 -3
- package/dist/services/post-bootstrap.d.ts +2 -2
- package/dist/services/rebuild-schema-with-site-pages.d.ts +2 -2
- package/dist/services/recompile.d.ts +3 -3
- package/dist/services/run-mutation-batch.d.ts +2 -2
- package/dist/services/run-page-queries.d.ts +2 -2
- package/dist/services/run-static-queries.d.ts +2 -2
- package/dist/services/source-nodes.d.ts +5 -5
- package/dist/services/start-webpack-server.d.ts +9 -9
- package/dist/services/types.d.ts +45 -45
- package/dist/services/write-out-redirects.d.ts +2 -2
- package/dist/services/write-out-requires.d.ts +2 -2
- package/dist/state-machines/data-layer/actions.d.ts +8 -8
- package/dist/state-machines/data-layer/index.d.ts +24 -24
- package/dist/state-machines/data-layer/services.d.ts +3 -3
- package/dist/state-machines/data-layer/types.d.ts +30 -30
- package/dist/state-machines/develop/actions.d.ts +37 -37
- package/dist/state-machines/index.d.ts +7 -7
- package/dist/state-machines/query-running/actions.d.ts +9 -9
- package/dist/state-machines/query-running/index.d.ts +7 -7
- package/dist/state-machines/query-running/services.d.ts +3 -3
- package/dist/state-machines/query-running/types.d.ts +23 -23
- package/dist/state-machines/waiting/actions.d.ts +11 -11
- package/dist/state-machines/waiting/index.d.ts +12 -12
- package/dist/state-machines/waiting/services.d.ts +3 -3
- package/dist/state-machines/waiting/types.d.ts +12 -12
- package/dist/types.d.ts +9 -9
- package/dist/utils/api-browser-docs.d.ts +252 -252
- package/dist/utils/api-node-docs.d.ts +443 -443
- package/dist/utils/assert-store.d.ts +2 -2
- package/dist/utils/babel-parse-to-ast.d.ts +4 -4
- package/dist/utils/browserslist.d.ts +1 -1
- package/dist/utils/call-deferred-api.d.ts +8 -8
- package/dist/utils/changed-pages.d.ts +6 -6
- package/dist/utils/create-node-id.d.ts +24 -24
- package/dist/utils/create-schema-customization.d.ts +6 -6
- package/dist/utils/develop-preload-headers.d.ts +7 -7
- package/dist/utils/did-you-mean.d.ts +3 -3
- package/dist/utils/find-page-by-path.d.ts +2 -2
- package/dist/utils/flags.d.ts +34 -34
- package/dist/utils/gatsby-dependents.d.ts +8 -8
- package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -6
- package/dist/utils/get-latest-apis.d.ts +6 -6
- package/dist/utils/get-page-data.d.ts +3 -3
- package/dist/utils/get-react-hot-loader-strategy.d.ts +1 -1
- package/dist/utils/get-value-at.d.ts +1 -1
- package/dist/utils/handle-flags.d.ts +7 -7
- package/dist/utils/is-32-bit-integer.d.ts +1 -1
- package/dist/utils/jobs-manager.d.ts +61 -61
- package/dist/utils/loading-indicator.d.ts +3 -3
- package/dist/utils/map-templates-to-static-query-hashes.d.ts +16 -16
- package/dist/utils/mett.d.ts +10 -10
- package/dist/utils/page-data.d.ts +22 -22
- package/dist/utils/path.d.ts +5 -5
- package/dist/utils/prepare-urls.d.ts +7 -7
- package/dist/utils/print-deprecation-warnings.d.ts +1 -1
- package/dist/utils/print-instructions.d.ts +2 -2
- package/dist/utils/sample-site-for-experiment.d.ts +2 -2
- package/dist/utils/show-experiment-notice.d.ts +6 -6
- package/dist/utils/source-nodes.d.ts +8 -8
- package/dist/utils/stack-trace-utils.d.ts +22 -22
- package/dist/utils/start-server.d.ts +25 -25
- package/dist/utils/test-require-error.d.ts +1 -1
- package/dist/utils/wait-until-jobs-complete.d.ts +1 -1
- package/dist/utils/webpack-error-utils.d.ts +18 -18
- package/dist/utils/webpack-status.d.ts +3 -3
- package/dist/utils/websocket-manager.d.ts +39 -39
- package/dist/utils/worker/pool.d.ts +2 -2
- package/gatsby-admin-public/4c744e84-6c27fb4a13dc8c8c3e88.js.map +1 -1
- package/gatsby-admin-public/69bd6bf3-00a5b50945cce68e041c.js.map +1 -1
- package/gatsby-admin-public/784b2cee55c07b638f20445dec340adf9f1888a3-d690a55f56dedc0f95b3.js.map +1 -1
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-30cef3c004238987a416.js.map +1 -1
- package/gatsby-admin-public/{app-d9751648e893ba210043.js → app-74fe4789160202707c96.js} +2 -2
- package/gatsby-admin-public/{app-d9751648e893ba210043.js.LICENSE.txt → app-74fe4789160202707c96.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/app-74fe4789160202707c96.js.map +1 -0
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-976ea4aa8380d4a68cb1.js.map +1 -1
- package/gatsby-admin-public/chunk-map.json +1 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-70aa31e4e1eca0a560a8.js.map +1 -1
- package/gatsby-admin-public/component---src-pages-plugins-tsx-c6700b48ed9ac88a9768.js.map +1 -1
- package/gatsby-admin-public/{component---src-pages-recipe-js-91150640d438410a1a0b.js → component---src-pages-recipe-js-4e8fdacf3e36393b3739.js} +1 -1
- package/gatsby-admin-public/component---src-pages-recipe-js-4e8fdacf3e36393b3739.js.map +1 -0
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-fbd253211b90ee4d944c.js.map +1 -1
- package/gatsby-admin-public/framework-b5530edc347e85dd3979.js.map +1 -1
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/page-data/app-data.json +1 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/polyfill-bb3950ad41cd96a6ba64.js.map +1 -1
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/gatsby-admin-public/{webpack-runtime-0a97eab52901d3d030d8.js → webpack-runtime-ce59e1ba33a41c65ea97.js} +2 -2
- package/gatsby-admin-public/{webpack-runtime-0a97eab52901d3d030d8.js.map → webpack-runtime-ce59e1ba33a41c65ea97.js.map} +1 -1
- package/gatsby-admin-public/webpack.stats.json +1 -1
- package/package.json +3 -3
- package/gatsby-admin-public/app-d9751648e893ba210043.js.map +0 -1
- 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 {};
|
package/dist/redux/index.d.ts
CHANGED
|
@@ -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;
|