gatsby 4.1.0-next.1 → 4.1.2
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/cache-dir/commonjs/production-app.js +1 -1
- package/cache-dir/production-app.js +9 -3
- package/cli.js +0 -0
- package/dist/bootstrap/__mocks__/resolve-module-exports.d.ts +1 -1
- package/dist/bootstrap/create-graphql-runner.d.ts +10 -10
- package/dist/bootstrap/get-config-file.d.ts +4 -4
- package/dist/bootstrap/index.d.ts +10 -10
- package/dist/bootstrap/load-config-and-plugins.d.ts +10 -10
- package/dist/bootstrap/load-plugins/index.d.ts +2 -2
- package/dist/bootstrap/load-plugins/index.js +1 -0
- package/dist/bootstrap/load-plugins/index.js.map +1 -1
- package/dist/bootstrap/load-plugins/load.d.ts +14 -14
- package/dist/bootstrap/load-plugins/load.js +1 -0
- package/dist/bootstrap/load-plugins/load.js.map +1 -1
- package/dist/bootstrap/load-plugins/types.d.ts +46 -46
- package/dist/bootstrap/load-plugins/validate.d.ts +40 -40
- package/dist/bootstrap/load-plugins/validate.js +18 -12
- package/dist/bootstrap/load-plugins/validate.js.map +1 -1
- 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/bootstrap/schema-hot-reloader.d.ts +3 -3
- package/dist/cache/cache-fs.d.ts +1 -1
- package/dist/cache/json-file-store.d.ts +8 -8
- package/dist/commands/build-html.d.ts +55 -55
- package/dist/commands/build-javascript.d.ts +4 -4
- package/dist/commands/build-utils.d.ts +8 -8
- package/dist/commands/build.d.ts +1 -1
- package/dist/commands/build.js +15 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -1
- package/dist/commands/develop-process.d.ts +1 -1
- package/dist/commands/develop-static.d.ts +3 -3
- package/dist/commands/develop.d.ts +2 -2
- package/dist/commands/feedback.d.ts +1 -1
- package/dist/commands/repl.d.ts +1 -1
- package/dist/commands/serve.d.ts +1 -1
- package/dist/commands/types.d.ts +48 -48
- package/dist/constants.d.ts +1 -1
- package/dist/datastore/common/iterable.d.ts +48 -48
- package/dist/datastore/common/query.d.ts +69 -69
- package/dist/datastore/datastore.d.ts +4 -4
- package/dist/datastore/in-memory/in-memory-datastore.d.ts +2 -2
- package/dist/datastore/in-memory/indexing.d.ts +59 -59
- package/dist/datastore/in-memory/run-fast-filters.d.ts +28 -28
- package/dist/datastore/index.d.ts +20 -20
- package/dist/datastore/lmdb/lmdb-datastore.d.ts +4 -4
- package/dist/datastore/lmdb/query/common.d.ts +23 -23
- package/dist/datastore/lmdb/query/create-index.d.ts +25 -25
- package/dist/datastore/lmdb/query/filter-using-index.d.ts +43 -43
- package/dist/datastore/lmdb/query/run-query.d.ts +9 -9
- package/dist/datastore/lmdb/query/suggest-index.d.ts +15 -15
- package/dist/datastore/lmdb/updates/nodes-by-type.d.ts +3 -3
- package/dist/datastore/lmdb/updates/nodes.d.ts +5 -5
- package/dist/datastore/types.d.ts +47 -47
- package/dist/internal-plugins/functions/gatsby-node.d.ts +3 -3
- package/dist/internal.d.ts +5 -5
- package/dist/joi-schemas/joi.d.ts +5 -5
- package/dist/joi-schemas/joi.js +3 -1
- package/dist/joi-schemas/joi.js.map +1 -1
- package/dist/query/error-parser.d.ts +19 -19
- package/dist/query/file-parser.js +34 -10
- package/dist/query/file-parser.js.map +1 -1
- package/dist/query/graphql-errors-codeframe.d.ts +1 -1
- package/dist/query/graphql-runner.d.ts +38 -38
- package/dist/query/graphql-span-tracer.d.ts +19 -19
- package/dist/query/index.d.ts +26 -26
- package/dist/query/query-compiler.js +15 -5
- package/dist/query/query-compiler.js.map +1 -1
- package/dist/query/query-runner.d.ts +13 -13
- package/dist/query/query-watcher.d.ts +17 -17
- package/dist/query/types.d.ts +35 -35
- 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 +14 -14
- package/dist/redux/actions/internal.d.ts +120 -120
- package/dist/redux/actions/restricted.d.ts +292 -292
- package/dist/redux/index.d.ts +20 -20
- package/dist/redux/persist.d.ts +5 -5
- 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 +2 -2
- package/dist/redux/reducers/components.js +4 -2
- package/dist/redux/reducers/components.js.map +1 -1
- 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 +17 -17
- package/dist/redux/reducers/functions.d.ts +2 -2
- package/dist/redux/reducers/html.d.ts +8 -8
- package/dist/redux/reducers/index.d.ts +36 -36
- 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 +6 -6
- package/dist/redux/reducers/last-action.d.ts +2 -2
- package/dist/redux/reducers/node-manifest.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/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 +6 -6
- 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 +797 -793
- package/dist/redux/types.js.map +1 -1
- package/dist/schema/context.d.ts +14 -14
- package/dist/schema/graphql-engine/bundle-webpack.d.ts +5 -5
- package/dist/schema/graphql-engine/entry.d.ts +19 -19
- package/dist/schema/graphql-engine/print-plugins.d.ts +1 -1
- package/dist/schema/graphql-engine/print-plugins.js +1 -0
- package/dist/schema/graphql-engine/print-plugins.js.map +1 -1
- package/dist/schema/infer/build-example-data.d.ts +5 -5
- package/dist/schema/infer/inference-metadata.d.ts +72 -72
- package/dist/schema/infer/is-file.d.ts +1 -1
- package/dist/schema/infer/type-conflict-reporter.d.ts +28 -28
- package/dist/schema/resolvers.d.ts +37 -37
- package/dist/schema/schema-composer.d.ts +3 -3
- package/dist/schema/type-definitions.d.ts +47 -47
- package/dist/schema/types/built-in-types.d.ts +3 -3
- package/dist/schema/types/date.d.ts +40 -40
- package/dist/schema/types/derived-types.d.ts +45 -45
- package/dist/schema/types/filter.d.ts +12 -12
- package/dist/schema/types/node-interface.d.ts +14 -14
- package/dist/schema/types/pagination.d.ts +16 -16
- 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.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 +17 -17
- 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/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 +47 -47
- 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 +23 -23
- package/dist/state-machines/develop/actions.d.ts +38 -38
- package/dist/state-machines/develop/index.d.ts +6 -6
- package/dist/state-machines/develop/services.d.ts +3 -3
- 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 +242 -242
- package/dist/utils/api-node-docs.d.ts +456 -456
- package/dist/utils/api-runner-error-parser.d.ts +5 -5
- package/dist/utils/app-data.d.ts +2 -2
- package/dist/utils/assert-store.d.ts +2 -2
- package/dist/utils/babel/babel-plugin-remove-api.d.ts +2 -2
- package/dist/utils/babel-loader-helpers.js +5 -3
- package/dist/utils/babel-loader-helpers.js.map +1 -1
- package/dist/utils/babel-loader.js +3 -1
- package/dist/utils/babel-loader.js.map +1 -1
- package/dist/utils/babel-parse-to-ast.d.ts +4 -4
- package/dist/utils/browserslist.d.ts +2 -2
- package/dist/utils/cache-lmdb.d.ts +19 -19
- package/dist/utils/cache.d.ts +17 -17
- package/dist/utils/call-deferred-api.d.ts +8 -8
- package/dist/utils/changed-pages.d.ts +6 -6
- package/dist/utils/clear-require-cache.d.ts +1 -1
- package/dist/utils/client-assets-for-template.d.ts +9 -9
- package/dist/utils/create-node-id.d.ts +24 -24
- package/dist/utils/create-schema-customization.d.ts +6 -6
- package/dist/utils/detect-port-in-use-and-prompt.d.ts +1 -1
- package/dist/utils/dev-ssr/render-dev-html.d.ts +23 -23
- package/dist/utils/develop-preload-headers.d.ts +7 -7
- package/dist/utils/develop-proxy.d.ts +14 -14
- package/dist/utils/did-you-mean.d.ts +3 -3
- package/dist/utils/did-you-mean.js +1 -1
- package/dist/utils/did-you-mean.js.map +1 -1
- package/dist/utils/engine-context.d.ts +5 -5
- package/dist/utils/engines-fs-provider.d.ts +9 -9
- package/dist/utils/engines-helpers.d.ts +2 -2
- package/dist/utils/engines-helpers.js +2 -1
- package/dist/utils/engines-helpers.js.map +1 -1
- package/dist/utils/eslint-config.d.ts +4 -4
- package/dist/utils/eslint-config.js +3 -3
- package/dist/utils/eslint-config.js.map +1 -1
- package/dist/utils/eslint-rules/limited-exports-page-templates.d.ts +1 -1
- package/dist/utils/eslint-rules/limited-exports-page-templates.js +12 -8
- package/dist/utils/eslint-rules/limited-exports-page-templates.js.map +1 -1
- package/dist/utils/eslint-rules/no-anonymous-exports-page-templates.d.ts +1 -1
- package/dist/utils/eslint-rules-helpers.d.ts +4 -4
- package/dist/utils/fast-refresh-module.d.ts +22 -22
- package/dist/utils/feedback.d.ts +5 -5
- package/dist/utils/find-page-by-path.d.ts +2 -2
- package/dist/utils/flags.d.ts +41 -41
- package/dist/utils/gatsby-dependents.d.ts +8 -8
- package/dist/utils/gatsby-webpack-eslint-graphql-schema-reload-plugin.d.ts +8 -8
- package/dist/utils/gatsby-webpack-eslint-graphql-schema-reload-plugin.js +3 -4
- package/dist/utils/gatsby-webpack-eslint-graphql-schema-reload-plugin.js.map +1 -1
- package/dist/utils/gatsby-webpack-stats-extractor.d.ts +6 -6
- package/dist/utils/gatsby-webpack-virtual-modules.d.ts +6 -6
- package/dist/utils/get-cache.d.ts +2 -2
- package/dist/utils/get-latest-apis.d.ts +6 -6
- package/dist/utils/get-page-data.d.ts +3 -3
- package/dist/utils/get-public-path.d.ts +5 -5
- package/dist/utils/get-server-data.d.ts +18 -18
- package/dist/utils/get-ssl-cert.d.ts +9 -9
- package/dist/utils/get-static-dir.d.ts +12 -12
- package/dist/utils/get-value-at.d.ts +1 -1
- package/dist/utils/handle-flags.d.ts +8 -8
- package/dist/utils/is-32-bit-integer.d.ts +1 -1
- package/dist/utils/jobs/manager.d.ts +31 -31
- package/dist/utils/jobs/types.d.ts +63 -63
- package/dist/utils/jobs/worker-messaging.d.ts +9 -9
- package/dist/utils/js-chunk-names.d.ts +1 -1
- package/dist/utils/loading-indicator.d.ts +3 -3
- package/dist/utils/local-eslint-config-finder.d.ts +1 -1
- package/dist/utils/merge-gatsby-config.d.ts +25 -23
- package/dist/utils/merge-gatsby-config.js.map +1 -1
- package/dist/utils/mett.d.ts +10 -10
- package/dist/utils/node-manifest.d.ts +48 -48
- package/dist/utils/nodes.d.ts +13 -13
- package/dist/utils/normalize-path.d.ts +2 -2
- package/dist/utils/page-data-helpers.d.ts +13 -13
- package/dist/utils/page-data.d.ts +19 -19
- package/dist/utils/page-mode.d.ts +18 -16
- package/dist/utils/page-mode.js +59 -15
- package/dist/utils/page-mode.js.map +1 -1
- package/dist/utils/page-ssr-module/bundle-webpack.d.ts +16 -16
- package/dist/utils/page-ssr-module/entry.d.ts +38 -38
- package/dist/utils/path.d.ts +5 -5
- package/dist/utils/prepare-regex.d.ts +1 -1
- 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/reach-router-add-basecontext-export-loader.d.ts +1 -1
- package/dist/utils/report-once.d.ts +1 -1
- package/dist/utils/require-gatsby-plugin.d.ts +8 -8
- package/dist/utils/restarting-screen.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 +22 -22
- package/dist/utils/state-machine-logging.d.ts +2 -2
- package/dist/utils/static-query-utils.d.ts +16 -16
- package/dist/utils/telemetry-server.d.ts +1 -1
- package/dist/utils/test-require-error.d.ts +1 -1
- package/dist/utils/tracer/index.d.ts +12 -12
- package/dist/utils/tracer/jaeger-local.d.ts +4 -4
- package/dist/utils/tracer/zipkin-local.d.ts +11 -11
- package/dist/utils/validate-engines/child.d.ts +1 -1
- package/dist/utils/validate-engines/index.d.ts +1 -1
- package/dist/utils/validate-page-component.d.ts +12 -12
- package/dist/utils/wait-until-jobs-complete.d.ts +2 -2
- package/dist/utils/webpack/bundle.d.ts +9 -9
- package/dist/utils/webpack/plugins/cache-folder-resolver.d.ts +9 -9
- package/dist/utils/webpack/plugins/corejs-resolver.d.ts +12 -12
- package/dist/utils/webpack/plugins/force-css-hmr-for-edge-cases.d.ts +22 -22
- package/dist/utils/webpack/plugins/static-query-mapper.d.ts +7 -7
- package/dist/utils/webpack/plugins/webpack-logging.d.ts +12 -12
- package/dist/utils/webpack-error-utils.d.ts +24 -24
- package/dist/utils/webpack-plugins.d.ts +46 -46
- package/dist/utils/webpack-status.d.ts +3 -3
- package/dist/utils/webpack-utils.d.ts +121 -122
- package/dist/utils/webpack-utils.js +9 -26
- package/dist/utils/webpack-utils.js.map +1 -1
- package/dist/utils/websocket-manager.d.ts +40 -40
- package/dist/utils/worker/child/index.d.ts +4 -4
- package/dist/utils/worker/child/load-config-and-plugins.d.ts +2 -2
- package/dist/utils/worker/child/queries.d.ts +7 -7
- package/dist/utils/worker/child/render-html.d.ts +20 -20
- package/dist/utils/worker/child/schema.d.ts +2 -2
- package/dist/utils/worker/child/state.d.ts +2 -2
- package/dist/utils/worker/messaging.d.ts +8 -8
- package/dist/utils/worker/pool.d.ts +10 -10
- package/dist/utils/worker/reporter.d.ts +3 -3
- package/dist/utils/worker/types.d.ts +3 -3
- package/index.d.ts +7 -2
- package/package.json +16 -16
|
@@ -129,7 +129,7 @@ window.___loader = _loader.publicLoader;
|
|
|
129
129
|
// - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)
|
|
130
130
|
|
|
131
131
|
if (pagePath && __BASE_PATH__ + pagePath !== browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) && !(loader.findMatchPath((0, _stripPrefix.default)(browserLoc.pathname, __BASE_PATH__)) || pagePath.match(/^\/(404|500)(\/?|.html)$/) || pagePath.match(/^\/offline-plugin-app-shell-fallback\/?$/))) {
|
|
132
|
-
(0, _reachRouter.navigate)(__BASE_PATH__ + pagePath + browserLoc.hash, {
|
|
132
|
+
(0, _reachRouter.navigate)(__BASE_PATH__ + pagePath + (!pagePath.includes(`?`) ? browserLoc.search : ``) + browserLoc.hash, {
|
|
133
133
|
replace: true
|
|
134
134
|
});
|
|
135
135
|
}
|
|
@@ -149,9 +149,15 @@ apiRunnerAsync(`onClientEntry`).then(() => {
|
|
|
149
149
|
pagePath.match(/^\/offline-plugin-app-shell-fallback\/?$/)
|
|
150
150
|
)
|
|
151
151
|
) {
|
|
152
|
-
navigate(
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
navigate(
|
|
153
|
+
__BASE_PATH__ +
|
|
154
|
+
pagePath +
|
|
155
|
+
(!pagePath.includes(`?`) ? browserLoc.search : ``) +
|
|
156
|
+
browserLoc.hash,
|
|
157
|
+
{
|
|
158
|
+
replace: true,
|
|
159
|
+
}
|
|
160
|
+
)
|
|
155
161
|
}
|
|
156
162
|
|
|
157
163
|
publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {
|
package/cli.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const resolveModuleExports: (input: unknown) => Array<string> | undefined;
|
|
1
|
+
export declare const resolveModuleExports: (input: unknown) => Array<string> | undefined;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Span } from "opentracing";
|
|
2
|
-
import { ExecutionResult, Source } from "graphql";
|
|
3
|
-
import { Store } from "redux";
|
|
4
|
-
import { Reporter } from "../..";
|
|
5
|
-
import { IGatsbyState } from "../redux/types";
|
|
6
|
-
export declare type Runner = (query: string | Source, context: Record<string, any>) => Promise<ExecutionResult>;
|
|
7
|
-
export declare const createGraphQLRunner: (store: Store<IGatsbyState>, reporter: Reporter, { parentSpan, graphqlTracing, }?: {
|
|
8
|
-
parentSpan: Span | undefined;
|
|
9
|
-
graphqlTracing?: boolean | undefined;
|
|
10
|
-
}) => Runner;
|
|
1
|
+
import { Span } from "opentracing";
|
|
2
|
+
import { ExecutionResult, Source } from "graphql";
|
|
3
|
+
import { Store } from "redux";
|
|
4
|
+
import { Reporter } from "../..";
|
|
5
|
+
import { IGatsbyState } from "../redux/types";
|
|
6
|
+
export declare type Runner = (query: string | Source, context: Record<string, any>) => Promise<ExecutionResult>;
|
|
7
|
+
export declare const createGraphQLRunner: (store: Store<IGatsbyState>, reporter: Reporter, { parentSpan, graphqlTracing, }?: {
|
|
8
|
+
parentSpan: Span | undefined;
|
|
9
|
+
graphqlTracing?: boolean | undefined;
|
|
10
|
+
}) => Runner;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function getConfigFile(rootDir: string, configName: string, distance?: number): Promise<{
|
|
2
|
-
configModule: any;
|
|
3
|
-
configFilePath: string;
|
|
4
|
-
}>;
|
|
1
|
+
export declare function getConfigFile(rootDir: string, configName: string, distance?: number): Promise<{
|
|
2
|
+
configModule: any;
|
|
3
|
+
configFilePath: string;
|
|
4
|
+
}>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IBuildContext } from "../services";
|
|
2
|
-
import { Runner } from "./create-graphql-runner";
|
|
3
|
-
import type { GatsbyWorkerPool } from "../utils/worker/pool";
|
|
4
|
-
import { IProgram } from "../commands/types";
|
|
5
|
-
export declare function bootstrap(initialContext: Partial<IBuildContext> & {
|
|
6
|
-
program: IProgram;
|
|
7
|
-
}): Promise<{
|
|
8
|
-
gatsbyNodeGraphQLFunction: Runner;
|
|
9
|
-
workerPool: GatsbyWorkerPool;
|
|
10
|
-
}>;
|
|
1
|
+
import { IBuildContext } from "../services";
|
|
2
|
+
import { Runner } from "./create-graphql-runner";
|
|
3
|
+
import type { GatsbyWorkerPool } from "../utils/worker/pool";
|
|
4
|
+
import { IProgram } from "../commands/types";
|
|
5
|
+
export declare function bootstrap(initialContext: Partial<IBuildContext> & {
|
|
6
|
+
program: IProgram;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
gatsbyNodeGraphQLFunction: Runner;
|
|
9
|
+
workerPool: GatsbyWorkerPool;
|
|
10
|
+
}>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IFlattenedPlugin } from "./load-plugins/types";
|
|
2
|
-
import { IProgram } from "../commands/types";
|
|
3
|
-
export declare function loadConfigAndPlugins({ siteDirectory, processFlags, }: {
|
|
4
|
-
siteDirectory: string;
|
|
5
|
-
processFlags?: boolean;
|
|
6
|
-
program?: IProgram;
|
|
7
|
-
}): Promise<{
|
|
8
|
-
config: any;
|
|
9
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
10
|
-
}>;
|
|
1
|
+
import { IFlattenedPlugin } from "./load-plugins/types";
|
|
2
|
+
import { IProgram } from "../commands/types";
|
|
3
|
+
export declare function loadConfigAndPlugins({ siteDirectory, processFlags, }: {
|
|
4
|
+
siteDirectory: string;
|
|
5
|
+
processFlags?: boolean;
|
|
6
|
+
program?: IProgram;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
config: any;
|
|
9
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
10
|
+
}>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { IFlattenedPlugin, IRawSiteConfig } from "./types";
|
|
2
|
-
export declare function loadPlugins(rawConfig: IRawSiteConfig | undefined, rootDir: string): Promise<Array<IFlattenedPlugin>>;
|
|
1
|
+
import { IFlattenedPlugin, IRawSiteConfig } from "./types";
|
|
2
|
+
export declare function loadPlugins(rawConfig: IRawSiteConfig | undefined, rootDir: string): Promise<Array<IFlattenedPlugin>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bootstrap/load-plugins/index.ts"],"names":["getAPI","api","_","keys","reduce","merged","key","flattenPlugins","plugins","flattened","extractPlugins","plugin","subPluginPaths","subPluginPath","segments","split","roots","pluginOptions","segment","flat","map","root","forEach","subPlugin","push","normalizePlugin","resolve","options","normalizePlugins","normalizeConfig","config","loadPlugins","rawConfig","rootDir","currentAPIs","browser","browserAPIs","node","nodeAPIs","ssr","ssrAPIs","pluginInfos","pluginArray","x","flattenedPlugins","badExports","store","dispatch","type","payload"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;AAgBA,MAAMA,MAAM,GAAIC,GAAD,IAGbC,gBAAEC,IAAF,CAAOF,GAAP,EAAYG,MAAZ,CAA0C,CAACC,MAAD,EAASC,GAAT,KAAiB;AACzDD,EAAAA,MAAM,CAACC,GAAD,CAAN,GAAcJ,gBAAEC,IAAF,CAAOF,GAAG,CAACK,GAAD,CAAV,CAAd;AACA,SAAOD,MAAP;AACD,CAHD,EAGG,EAHH,CAHF,C,CAQA;AACA;AACA;;;AACA,MAAME,cAAc,GAAIC,OAAD,IAAqD;AAC1E,QAAMC,SAA6B,GAAG,EAAtC;;AACA,QAAMC,cAAc,GAAIC,MAAD,IAA+B;AACpD,QAAIA,MAAM,CAACC,cAAX,EAA2B;AACzB,WAAK,MAAMC,aAAX,IAA4BF,MAAM,CAACC,cAAnC,EAAmD;AACjD;AACA;AACA;AACA;AACA,cAAME,QAAQ,GAAGD,aAAa,CAACE,KAAd,CAAqB,GAArB,CAAjB;AACA,YAAIC,KAAiB,GAAG,CAACL,MAAM,CAACM,aAAR,CAAxB;;AACA,aAAK,MAAMC,OAAX,IAAsBJ,QAAtB,EAAgC;AAC9B,cAAII,OAAO,KAAM,IAAjB,EAAsB;AACpBF,YAAAA,KAAK,GAAGA,KAAK,CAACG,IAAN,EAAR;AACD,WAFD,MAEO;AACLH,YAAAA,KAAK,GAAGA,KAAK,CAACI,GAAN,CAAUC,IAAI,IAAIA,IAAI,CAACH,OAAD,CAAtB,CAAR;AACD;AACF;;
|
|
1
|
+
{"version":3,"sources":["../../../src/bootstrap/load-plugins/index.ts"],"names":["getAPI","api","_","keys","reduce","merged","key","flattenPlugins","plugins","flattened","extractPlugins","plugin","subPluginPaths","subPluginPath","segments","split","roots","pluginOptions","segment","flat","map","root","forEach","subPlugin","push","normalizePlugin","resolve","options","normalizePlugins","normalizeConfig","config","loadPlugins","rawConfig","rootDir","currentAPIs","browser","browserAPIs","node","nodeAPIs","ssr","ssrAPIs","pluginInfos","pluginArray","x","flattenedPlugins","badExports","store","dispatch","type","payload"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\n\nimport { store } from \"../../redux\"\nimport { IGatsbyState } from \"../../redux/types\"\nimport * as nodeAPIs from \"../../utils/api-node-docs\"\nimport * as browserAPIs from \"../../utils/api-browser-docs\"\nimport ssrAPIs from \"../../../cache-dir/api-ssr-docs\"\nimport { loadPlugins as loadPluginsInternal } from \"./load\"\nimport {\n collatePluginAPIs,\n handleBadExports,\n handleMultipleReplaceRenderers,\n ExportType,\n ICurrentAPIs,\n validateConfigPluginsOptions,\n} from \"./validate\"\nimport {\n IPluginInfo,\n IFlattenedPlugin,\n ISiteConfig,\n IRawSiteConfig,\n} from \"./types\"\nimport { IPluginRefObject, PluginRef } from \"gatsby-plugin-utils/dist/types\"\n\nconst getAPI = (api: {\n [exportType in ExportType]: { [api: string]: boolean }\n}): ICurrentAPIs =>\n _.keys(api).reduce<Partial<ICurrentAPIs>>((merged, key) => {\n merged[key] = _.keys(api[key])\n return merged\n }, {}) as ICurrentAPIs\n\n// Create a \"flattened\" array of plugins with all subplugins\n// brought to the top-level. This simplifies running gatsby-* files\n// for subplugins.\nconst flattenPlugins = (plugins: Array<IPluginInfo>): Array<IPluginInfo> => {\n const flattened: Array<IPluginInfo> = []\n const extractPlugins = (plugin: IPluginInfo): void => {\n if (plugin.subPluginPaths) {\n for (const subPluginPath of plugin.subPluginPaths) {\n // @pieh:\n // subPluginPath can look like someOption.randomFieldThatIsMarkedAsSubplugins\n // Reason for doing stringified path with . separator was that it was just easier to prevent duplicates\n // in subPluginPaths array (as each subplugin in the gatsby-config would add subplugin path).\n const segments = subPluginPath.split(`.`)\n let roots: Array<any> = [plugin.pluginOptions]\n for (const segment of segments) {\n if (segment === `[]`) {\n roots = roots.flat()\n } else {\n roots = roots.map(root => root[segment])\n }\n }\n roots = roots.flat()\n\n roots.forEach(subPlugin => {\n flattened.push(subPlugin)\n extractPlugins(subPlugin)\n })\n }\n }\n }\n\n plugins.forEach(plugin => {\n flattened.push(plugin)\n extractPlugins(plugin)\n })\n\n return flattened\n}\n\nfunction normalizePlugin(plugin): IPluginRefObject {\n if (typeof plugin === `string`) {\n return {\n resolve: plugin,\n options: {},\n }\n }\n\n if (plugin.options?.plugins) {\n plugin.options = {\n ...plugin.options,\n plugins: normalizePlugins(plugin.options.plugins),\n }\n }\n\n return plugin\n}\n\nfunction normalizePlugins(plugins?: Array<PluginRef>): Array<IPluginRefObject> {\n return (plugins || []).map(normalizePlugin)\n}\n\nconst normalizeConfig = (config: IRawSiteConfig = {}): ISiteConfig => {\n return {\n ...config,\n plugins: (config.plugins || []).map(normalizePlugin),\n }\n}\n\nexport async function loadPlugins(\n rawConfig: IRawSiteConfig = {},\n rootDir: string\n): Promise<Array<IFlattenedPlugin>> {\n // Turn all strings in plugins: [`...`] into the { resolve: ``, options: {} } form\n const config = normalizeConfig(rawConfig)\n\n // Show errors for invalid plugin configuration\n await validateConfigPluginsOptions(config, rootDir)\n\n const currentAPIs = getAPI({\n browser: browserAPIs,\n node: nodeAPIs,\n ssr: ssrAPIs,\n })\n\n // Collate internal plugins, site config plugins, site default plugins\n const pluginInfos = loadPluginsInternal(config, rootDir)\n\n // Create a flattened array of the plugins\n const pluginArray = flattenPlugins(pluginInfos)\n\n // Work out which plugins use which APIs, including those which are not\n // valid Gatsby APIs, aka 'badExports'\n const x = collatePluginAPIs({ currentAPIs, flattenedPlugins: pluginArray })\n\n // From this point on, these are fully-resolved plugins.\n let flattenedPlugins = x.flattenedPlugins\n const badExports = x.badExports\n\n // Show errors for any non-Gatsby APIs exported from plugins\n await handleBadExports({ currentAPIs, badExports })\n\n // Show errors when ReplaceRenderer has been implemented multiple times\n flattenedPlugins = handleMultipleReplaceRenderers({\n flattenedPlugins,\n })\n\n // If we get this far, everything looks good. Update the store\n store.dispatch({\n type: `SET_SITE_FLATTENED_PLUGINS`,\n payload: flattenedPlugins as IGatsbyState[\"flattenedPlugins\"],\n })\n\n return flattenedPlugins\n}\n"],"file":"index.js"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { IPluginInfo, PluginRef, ISiteConfig } from "./types";
|
|
2
|
-
/**
|
|
3
|
-
* @param plugin
|
|
4
|
-
* This should be a plugin spec object where possible but can also be the
|
|
5
|
-
* name of a plugin.
|
|
6
|
-
*
|
|
7
|
-
* When it is a name, it can be a name of a local plugin, the name of a plugin
|
|
8
|
-
* located in node_modules, or a Gatsby internal plugin. In the last case the
|
|
9
|
-
* plugin will be an absolute path.
|
|
10
|
-
* @param rootDir
|
|
11
|
-
* This is the project location, from which are found the plugins
|
|
12
|
-
*/
|
|
13
|
-
export declare function resolvePlugin(plugin: PluginRef, rootDir: string | null): IPluginInfo;
|
|
14
|
-
export declare function loadPlugins(config: ISiteConfig | undefined, rootDir: string): Array<IPluginInfo>;
|
|
1
|
+
import { IPluginInfo, PluginRef, ISiteConfig } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* @param plugin
|
|
4
|
+
* This should be a plugin spec object where possible but can also be the
|
|
5
|
+
* name of a plugin.
|
|
6
|
+
*
|
|
7
|
+
* When it is a name, it can be a name of a local plugin, the name of a plugin
|
|
8
|
+
* located in node_modules, or a Gatsby internal plugin. In the last case the
|
|
9
|
+
* plugin will be an absolute path.
|
|
10
|
+
* @param rootDir
|
|
11
|
+
* This is the project location, from which are found the plugins
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolvePlugin(plugin: PluginRef, rootDir: string | null): IPluginInfo;
|
|
14
|
+
export declare function loadPlugins(config: ISiteConfig | undefined, rootDir: string): Array<IPluginInfo>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bootstrap/load-plugins/load.ts"],"names":["GATSBY_CLOUD_PLUGIN_NAME","TYPESCRIPT_PLUGIN_NAME","createFileContentHash","root","globPattern","hash","crypto","createHash","files","glob","sync","nodir","forEach","filepath","update","fs","readFileSync","digest","createPluginId","name","pluginObject","JSON","stringify","options","resolvePlugin","plugin","rootDir","pluginName","_","isString","resolve","parentDir","resolvedPath","path","join","packageJSON","parse","id","version","Error","requireSource","require","dirname","isAbsolute","err","process","env","gatsby_log_level","reporter","panicOnBuild","addGatsbyPluginCloudPluginWhenInstalled","plugins","processPlugin","cloudPluginLocation","push","incompatibleGatsbyCloudPlugin","find","semver","satisfies","includePrerelease","loadPlugins","config","configuredPluginNames","Set","info","pluginOptions","isEmpty","option","subPluginPaths","subPluginPath","segments","split","roots","pathToSwap","segment","slice","length","flat","map","processed","set","modulePath","module","Array","from","undefined","merge","internalPlugins","filter","Boolean","relPath","absPath","__dirname","processedPlugin","add","pathCheck","has","panic","GATSBY_CLOUD","allExtensions","isTSX","jsxPragma","cwd","program","store","getState","pageCreatorOptions","directory","pageCreatorPlugin"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport { slash, createRequireFromPath } from \"gatsby-core-utils\"\nimport fs from \"fs\"\nimport path from \"path\"\nimport crypto from \"crypto\"\nimport glob from \"glob\"\nimport { sync as existsSync } from \"fs-exists-cached\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { silent as resolveFromSilent } from \"resolve-from\"\nimport * as semver from \"semver\"\nimport { warnOnIncompatiblePeerDependency } from \"./validate\"\nimport { store } from \"../../redux\"\nimport { createNodeId } from \"../../utils/create-node-id\"\nimport {\n IPluginInfo,\n PluginRef,\n IPluginRefObject,\n IPluginRefOptions,\n ISiteConfig,\n} from \"./types\"\nimport { PackageJson } from \"../../..\"\n\nconst GATSBY_CLOUD_PLUGIN_NAME = `gatsby-plugin-gatsby-cloud`\nconst TYPESCRIPT_PLUGIN_NAME = `gatsby-plugin-typescript`\n\nfunction createFileContentHash(root: string, globPattern: string): string {\n const hash = crypto.createHash(`md5`)\n const files = glob.sync(`${root}/${globPattern}`, { nodir: true })\n\n files.forEach(filepath => {\n hash.update(fs.readFileSync(filepath))\n })\n\n return hash.digest(`hex`)\n}\n\n/**\n * Make sure key is unique to plugin options. E.g. there could\n * be multiple source-filesystem plugins, with different names\n * (docs, blogs).\n *\n * @param name Name of the plugin\n * @param pluginObject Object of the plugin\n */\nconst createPluginId = (\n name: string,\n pluginObject: IPluginRefObject | null = null\n): string =>\n createNodeId(\n name + (pluginObject ? JSON.stringify(pluginObject.options) : ``),\n `Plugin`\n )\n\n/**\n * @param plugin\n * This should be a plugin spec object where possible but can also be the\n * name of a plugin.\n *\n * When it is a name, it can be a name of a local plugin, the name of a plugin\n * located in node_modules, or a Gatsby internal plugin. In the last case the\n * plugin will be an absolute path.\n * @param rootDir\n * This is the project location, from which are found the plugins\n */\nexport function resolvePlugin(\n plugin: PluginRef,\n rootDir: string | null\n): IPluginInfo {\n const pluginName = _.isString(plugin) ? plugin : plugin.resolve\n\n // Respect the directory that the plugin was sourced from initially\n rootDir = (!_.isString(plugin) && plugin.parentDir) || rootDir\n\n // Only find plugins when we're not given an absolute path\n if (!existsSync(pluginName) && rootDir) {\n // Find the plugin in the local plugins folder\n const resolvedPath = slash(path.join(rootDir, `plugins/${pluginName}`))\n\n if (existsSync(resolvedPath)) {\n if (existsSync(`${resolvedPath}/package.json`)) {\n const packageJSON = JSON.parse(\n fs.readFileSync(`${resolvedPath}/package.json`, `utf-8`)\n ) as PackageJson\n const name = packageJSON.name || pluginName\n warnOnIncompatiblePeerDependency(name, packageJSON)\n\n return {\n resolve: resolvedPath,\n name,\n id: createPluginId(name),\n version:\n packageJSON.version || createFileContentHash(resolvedPath, `**`),\n }\n } else {\n // Make package.json a requirement for local plugins too\n throw new Error(`Plugin ${pluginName} requires a package.json file`)\n }\n }\n }\n\n /**\n * Here we have an absolute path to an internal plugin, or a name of a module\n * which should be located in node_modules.\n */\n try {\n const requireSource =\n rootDir !== null\n ? createRequireFromPath(`${rootDir}/:internal:`)\n : require\n\n // If the path is absolute, resolve the directory of the internal plugin,\n // otherwise resolve the directory containing the package.json\n const resolvedPath = slash(\n path.dirname(\n requireSource.resolve(\n path.isAbsolute(pluginName)\n ? pluginName\n : `${pluginName}/package.json`\n )\n )\n )\n\n const packageJSON = JSON.parse(\n fs.readFileSync(`${resolvedPath}/package.json`, `utf-8`)\n )\n warnOnIncompatiblePeerDependency(packageJSON.name, packageJSON)\n\n return {\n resolve: resolvedPath,\n id: createPluginId(packageJSON.name),\n name: packageJSON.name,\n version: packageJSON.version,\n }\n } catch (err) {\n if (process.env.gatsby_log_level === `verbose`) {\n reporter.panicOnBuild(\n `plugin \"${pluginName} threw the following error:\\n`,\n err\n )\n } else {\n reporter.panicOnBuild(\n `There was a problem loading plugin \"${pluginName}\". Perhaps you need to install its package?\\nUse --verbose to see actual error.`\n )\n }\n throw new Error(`unreachable`)\n }\n}\n\nfunction addGatsbyPluginCloudPluginWhenInstalled(\n plugins: Array<IPluginInfo>,\n processPlugin: (plugin: PluginRef) => IPluginInfo,\n rootDir: string\n): void {\n const cloudPluginLocation = resolveFromSilent(\n rootDir,\n GATSBY_CLOUD_PLUGIN_NAME\n )\n\n if (cloudPluginLocation) {\n plugins.push(\n processPlugin({\n resolve: cloudPluginLocation,\n options: {},\n })\n )\n }\n}\n\nfunction incompatibleGatsbyCloudPlugin(plugins: Array<IPluginInfo>): boolean {\n const plugin = plugins.find(\n plugin => plugin.name === GATSBY_CLOUD_PLUGIN_NAME\n )\n\n return !semver.satisfies(plugin!.version, `>=4.0.0-alpha`, {\n includePrerelease: true,\n })\n}\n\nexport function loadPlugins(\n config: ISiteConfig = {},\n rootDir: string\n): Array<IPluginInfo> {\n // Instantiate plugins.\n const plugins: Array<IPluginInfo> = []\n const configuredPluginNames = new Set()\n\n // Create fake little site with a plugin for testing this\n // w/ snapshots. Move plugin processing to its own module.\n // Also test adding to redux store.\n function processPlugin(plugin: PluginRef): IPluginInfo {\n if (_.isString(plugin)) {\n const info = resolvePlugin(plugin, rootDir)\n\n return {\n ...info,\n pluginOptions: {\n plugins: [],\n },\n }\n } else {\n plugin.options = plugin.options || {}\n\n // Throw an error if there is an \"option\" key.\n if (\n _.isEmpty(plugin.options) &&\n !_.isEmpty((plugin as { option?: unknown }).option)\n ) {\n throw new Error(\n `Plugin \"${plugin.resolve}\" has an \"option\" key in the configuration. Did you mean \"options\"?`\n )\n }\n\n // Plugins can have plugins.\n if (plugin.subPluginPaths) {\n for (const subPluginPath of plugin.subPluginPaths) {\n const segments = subPluginPath.split(`.`)\n let roots: Array<any> = [plugin.options]\n\n let pathToSwap = segments\n\n for (const segment of segments) {\n if (segment === `[]`) {\n pathToSwap = pathToSwap.slice(0, pathToSwap.length - 1)\n roots = roots.flat()\n } else {\n roots = roots.map(root => root[segment])\n }\n }\n\n const processed = roots.map(processPlugin)\n _.set(plugin.options, pathToSwap, processed)\n }\n }\n\n // Add some default values for tests as we don't actually\n // want to try to load anything during tests.\n if (plugin.resolve === `___TEST___`) {\n const name = `TEST`\n\n return {\n id: createPluginId(name, plugin),\n name,\n version: `0.0.0-test`,\n pluginOptions: {\n plugins: [],\n },\n resolve: `__TEST__`,\n }\n }\n\n const info = resolvePlugin(plugin, rootDir)\n\n return {\n ...info,\n modulePath: plugin.modulePath,\n module: plugin.module,\n subPluginPaths: plugin.subPluginPaths\n ? Array.from(plugin.subPluginPaths)\n : undefined,\n id: createPluginId(info.name, plugin),\n pluginOptions: _.merge({ plugins: [] }, plugin.options),\n }\n }\n }\n\n // Add internal plugins\n const internalPlugins = [\n `../../internal-plugins/dev-404-page`,\n `../../internal-plugins/load-babel-config`,\n `../../internal-plugins/internal-data-bridge`,\n `../../internal-plugins/prod-404-500`,\n `../../internal-plugins/webpack-theme-component-shadowing`,\n `../../internal-plugins/bundle-optimisations`,\n `../../internal-plugins/functions`,\n ].filter(Boolean) as Array<string>\n internalPlugins.forEach(relPath => {\n const absPath = path.join(__dirname, relPath)\n plugins.push(processPlugin(absPath))\n })\n\n // Add plugins from the site config.\n if (config.plugins) {\n config.plugins.forEach(plugin => {\n const processedPlugin = processPlugin(plugin)\n plugins.push(processedPlugin)\n configuredPluginNames.add(processedPlugin.name)\n })\n }\n\n // the order of all of these page-creators matters. The \"last plugin wins\",\n // so the user's site comes last, and each page-creator instance has to\n // match the plugin definition order before that. This works fine for themes\n // because themes have already been added in the proper order to the plugins\n // array\n plugins.forEach(plugin => {\n plugins.push(\n processPlugin({\n resolve: require.resolve(`gatsby-plugin-page-creator`),\n options: {\n path: slash(path.join(plugin.resolve, `src/pages`)),\n pathCheck: false,\n },\n })\n )\n })\n\n if (\n _CFLAGS_.GATSBY_MAJOR === `4` &&\n configuredPluginNames.has(GATSBY_CLOUD_PLUGIN_NAME) &&\n incompatibleGatsbyCloudPlugin(plugins)\n ) {\n reporter.panic(\n `Plugin gatsby-plugin-gatsby-cloud is not compatible with your gatsby version. Please upgrade to gatsby-plugin-gatsby-cloud@next`\n )\n }\n\n if (\n !configuredPluginNames.has(GATSBY_CLOUD_PLUGIN_NAME) &&\n (process.env.GATSBY_CLOUD === `true` || process.env.GATSBY_CLOUD === `1`)\n ) {\n addGatsbyPluginCloudPluginWhenInstalled(plugins, processPlugin, rootDir)\n }\n\n // Suppor Typescript by default but allow users to override it\n if (!configuredPluginNames.has(TYPESCRIPT_PLUGIN_NAME)) {\n plugins.push(\n processPlugin({\n resolve: require.resolve(TYPESCRIPT_PLUGIN_NAME),\n options: {\n // TODO(@mxstbr): Do not hard-code these defaults but infer them from the\n // pluginOptionsSchema of gatsby-plugin-typescript\n allExtensions: false,\n isTSX: false,\n jsxPragma: `React`,\n },\n })\n )\n }\n\n // Add the site's default \"plugin\" i.e. gatsby-x files in root of site.\n plugins.push({\n resolve: slash(process.cwd()),\n id: createPluginId(`default-site-plugin`),\n name: `default-site-plugin`,\n version: createFileContentHash(process.cwd(), `gatsby-*`),\n pluginOptions: {\n plugins: [],\n },\n })\n\n const program = store.getState().program\n\n // default options for gatsby-plugin-page-creator\n let pageCreatorOptions: IPluginRefOptions | undefined = {\n path: slash(path.join(program.directory, `src/pages`)),\n pathCheck: false,\n }\n\n if (config.plugins) {\n const pageCreatorPlugin = config.plugins.find(\n (plugin): plugin is IPluginRefObject =>\n typeof plugin !== `string` &&\n plugin.resolve === `gatsby-plugin-page-creator` &&\n slash((plugin.options && plugin.options.path) || ``) ===\n slash(path.join(program.directory, `src/pages`))\n )\n if (pageCreatorPlugin) {\n // override the options if there are any user specified options\n pageCreatorOptions = pageCreatorPlugin.options\n }\n }\n\n plugins.push(\n processPlugin({\n resolve: require.resolve(`gatsby-plugin-page-creator`),\n options: pageCreatorOptions,\n })\n )\n\n return plugins\n}\n"],"file":"load.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/bootstrap/load-plugins/load.ts"],"names":["GATSBY_CLOUD_PLUGIN_NAME","TYPESCRIPT_PLUGIN_NAME","createFileContentHash","root","globPattern","hash","crypto","createHash","files","glob","sync","nodir","forEach","filepath","update","fs","readFileSync","digest","createPluginId","name","pluginObject","JSON","stringify","options","resolvePlugin","plugin","rootDir","pluginName","_","isString","resolve","parentDir","resolvedPath","path","join","packageJSON","parse","id","version","Error","requireSource","require","dirname","isAbsolute","err","process","env","gatsby_log_level","reporter","panicOnBuild","addGatsbyPluginCloudPluginWhenInstalled","plugins","processPlugin","cloudPluginLocation","push","incompatibleGatsbyCloudPlugin","find","semver","satisfies","includePrerelease","loadPlugins","config","configuredPluginNames","Set","info","pluginOptions","isEmpty","option","subPluginPaths","subPluginPath","segments","split","roots","pathToSwap","segment","slice","length","flat","map","processed","set","modulePath","module","Array","from","undefined","merge","internalPlugins","filter","Boolean","relPath","absPath","__dirname","processedPlugin","add","pathCheck","has","panic","GATSBY_CLOUD","allExtensions","isTSX","jsxPragma","cwd","program","store","getState","pageCreatorOptions","directory","pageCreatorPlugin"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport { slash, createRequireFromPath } from \"gatsby-core-utils\"\nimport fs from \"fs\"\nimport path from \"path\"\nimport crypto from \"crypto\"\nimport glob from \"glob\"\nimport { sync as existsSync } from \"fs-exists-cached\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { silent as resolveFromSilent } from \"resolve-from\"\nimport * as semver from \"semver\"\nimport { warnOnIncompatiblePeerDependency } from \"./validate\"\nimport { store } from \"../../redux\"\nimport { createNodeId } from \"../../utils/create-node-id\"\nimport {\n IPluginInfo,\n PluginRef,\n IPluginRefObject,\n IPluginRefOptions,\n ISiteConfig,\n} from \"./types\"\nimport { PackageJson } from \"../../..\"\n\nconst GATSBY_CLOUD_PLUGIN_NAME = `gatsby-plugin-gatsby-cloud`\nconst TYPESCRIPT_PLUGIN_NAME = `gatsby-plugin-typescript`\n\nfunction createFileContentHash(root: string, globPattern: string): string {\n const hash = crypto.createHash(`md5`)\n const files = glob.sync(`${root}/${globPattern}`, { nodir: true })\n\n files.forEach(filepath => {\n hash.update(fs.readFileSync(filepath))\n })\n\n return hash.digest(`hex`)\n}\n\n/**\n * Make sure key is unique to plugin options. E.g. there could\n * be multiple source-filesystem plugins, with different names\n * (docs, blogs).\n *\n * @param name Name of the plugin\n * @param pluginObject Object of the plugin\n */\nconst createPluginId = (\n name: string,\n pluginObject: IPluginRefObject | null = null\n): string =>\n createNodeId(\n name + (pluginObject ? JSON.stringify(pluginObject.options) : ``),\n `Plugin`\n )\n\n/**\n * @param plugin\n * This should be a plugin spec object where possible but can also be the\n * name of a plugin.\n *\n * When it is a name, it can be a name of a local plugin, the name of a plugin\n * located in node_modules, or a Gatsby internal plugin. In the last case the\n * plugin will be an absolute path.\n * @param rootDir\n * This is the project location, from which are found the plugins\n */\nexport function resolvePlugin(\n plugin: PluginRef,\n rootDir: string | null\n): IPluginInfo {\n const pluginName = _.isString(plugin) ? plugin : plugin.resolve\n\n // Respect the directory that the plugin was sourced from initially\n rootDir = (!_.isString(plugin) && plugin.parentDir) || rootDir\n\n // Only find plugins when we're not given an absolute path\n if (!existsSync(pluginName) && rootDir) {\n // Find the plugin in the local plugins folder\n const resolvedPath = slash(path.join(rootDir, `plugins/${pluginName}`))\n\n if (existsSync(resolvedPath)) {\n if (existsSync(`${resolvedPath}/package.json`)) {\n const packageJSON = JSON.parse(\n fs.readFileSync(`${resolvedPath}/package.json`, `utf-8`)\n ) as PackageJson\n const name = packageJSON.name || pluginName\n warnOnIncompatiblePeerDependency(name, packageJSON)\n\n return {\n resolve: resolvedPath,\n name,\n id: createPluginId(name),\n version:\n packageJSON.version || createFileContentHash(resolvedPath, `**`),\n }\n } else {\n // Make package.json a requirement for local plugins too\n throw new Error(`Plugin ${pluginName} requires a package.json file`)\n }\n }\n }\n\n /**\n * Here we have an absolute path to an internal plugin, or a name of a module\n * which should be located in node_modules.\n */\n try {\n const requireSource =\n rootDir !== null\n ? createRequireFromPath(`${rootDir}/:internal:`)\n : require\n\n // If the path is absolute, resolve the directory of the internal plugin,\n // otherwise resolve the directory containing the package.json\n const resolvedPath = slash(\n path.dirname(\n requireSource.resolve(\n path.isAbsolute(pluginName)\n ? pluginName\n : `${pluginName}/package.json`\n )\n )\n )\n\n const packageJSON = JSON.parse(\n fs.readFileSync(`${resolvedPath}/package.json`, `utf-8`)\n )\n warnOnIncompatiblePeerDependency(packageJSON.name, packageJSON)\n\n return {\n resolve: resolvedPath,\n id: createPluginId(packageJSON.name),\n name: packageJSON.name,\n version: packageJSON.version,\n }\n } catch (err) {\n if (process.env.gatsby_log_level === `verbose`) {\n reporter.panicOnBuild(\n `plugin \"${pluginName} threw the following error:\\n`,\n err\n )\n } else {\n reporter.panicOnBuild(\n `There was a problem loading plugin \"${pluginName}\". Perhaps you need to install its package?\\nUse --verbose to see actual error.`\n )\n }\n throw new Error(`unreachable`)\n }\n}\n\nfunction addGatsbyPluginCloudPluginWhenInstalled(\n plugins: Array<IPluginInfo>,\n processPlugin: (plugin: PluginRef) => IPluginInfo,\n rootDir: string\n): void {\n const cloudPluginLocation = resolveFromSilent(\n rootDir,\n GATSBY_CLOUD_PLUGIN_NAME\n )\n\n if (cloudPluginLocation) {\n plugins.push(\n processPlugin({\n resolve: cloudPluginLocation,\n options: {},\n })\n )\n }\n}\n\nfunction incompatibleGatsbyCloudPlugin(plugins: Array<IPluginInfo>): boolean {\n const plugin = plugins.find(\n plugin => plugin.name === GATSBY_CLOUD_PLUGIN_NAME\n )\n\n return !semver.satisfies(plugin!.version, `>=4.0.0-alpha`, {\n includePrerelease: true,\n })\n}\n\nexport function loadPlugins(\n config: ISiteConfig = {},\n rootDir: string\n): Array<IPluginInfo> {\n // Instantiate plugins.\n const plugins: Array<IPluginInfo> = []\n const configuredPluginNames = new Set()\n\n // Create fake little site with a plugin for testing this\n // w/ snapshots. Move plugin processing to its own module.\n // Also test adding to redux store.\n function processPlugin(plugin: PluginRef): IPluginInfo {\n if (_.isString(plugin)) {\n const info = resolvePlugin(plugin, rootDir)\n\n return {\n ...info,\n pluginOptions: {\n plugins: [],\n },\n }\n } else {\n plugin.options = plugin.options || {}\n\n // Throw an error if there is an \"option\" key.\n if (\n _.isEmpty(plugin.options) &&\n !_.isEmpty((plugin as { option?: unknown }).option)\n ) {\n throw new Error(\n `Plugin \"${plugin.resolve}\" has an \"option\" key in the configuration. Did you mean \"options\"?`\n )\n }\n\n // Plugins can have plugins.\n if (plugin.subPluginPaths) {\n for (const subPluginPath of plugin.subPluginPaths) {\n const segments = subPluginPath.split(`.`)\n let roots: Array<any> = [plugin.options]\n\n let pathToSwap = segments\n\n for (const segment of segments) {\n if (segment === `[]`) {\n pathToSwap = pathToSwap.slice(0, pathToSwap.length - 1)\n roots = roots.flat()\n } else {\n roots = roots.map(root => root[segment])\n }\n }\n roots = roots.flat()\n\n const processed = roots.map(processPlugin)\n _.set(plugin.options, pathToSwap, processed)\n }\n }\n\n // Add some default values for tests as we don't actually\n // want to try to load anything during tests.\n if (plugin.resolve === `___TEST___`) {\n const name = `TEST`\n\n return {\n id: createPluginId(name, plugin),\n name,\n version: `0.0.0-test`,\n pluginOptions: {\n plugins: [],\n },\n resolve: `__TEST__`,\n }\n }\n\n const info = resolvePlugin(plugin, rootDir)\n\n return {\n ...info,\n modulePath: plugin.modulePath,\n module: plugin.module,\n subPluginPaths: plugin.subPluginPaths\n ? Array.from(plugin.subPluginPaths)\n : undefined,\n id: createPluginId(info.name, plugin),\n pluginOptions: _.merge({ plugins: [] }, plugin.options),\n }\n }\n }\n\n // Add internal plugins\n const internalPlugins = [\n `../../internal-plugins/dev-404-page`,\n `../../internal-plugins/load-babel-config`,\n `../../internal-plugins/internal-data-bridge`,\n `../../internal-plugins/prod-404-500`,\n `../../internal-plugins/webpack-theme-component-shadowing`,\n `../../internal-plugins/bundle-optimisations`,\n `../../internal-plugins/functions`,\n ].filter(Boolean) as Array<string>\n internalPlugins.forEach(relPath => {\n const absPath = path.join(__dirname, relPath)\n plugins.push(processPlugin(absPath))\n })\n\n // Add plugins from the site config.\n if (config.plugins) {\n config.plugins.forEach(plugin => {\n const processedPlugin = processPlugin(plugin)\n plugins.push(processedPlugin)\n configuredPluginNames.add(processedPlugin.name)\n })\n }\n\n // the order of all of these page-creators matters. The \"last plugin wins\",\n // so the user's site comes last, and each page-creator instance has to\n // match the plugin definition order before that. This works fine for themes\n // because themes have already been added in the proper order to the plugins\n // array\n plugins.forEach(plugin => {\n plugins.push(\n processPlugin({\n resolve: require.resolve(`gatsby-plugin-page-creator`),\n options: {\n path: slash(path.join(plugin.resolve, `src/pages`)),\n pathCheck: false,\n },\n })\n )\n })\n\n if (\n _CFLAGS_.GATSBY_MAJOR === `4` &&\n configuredPluginNames.has(GATSBY_CLOUD_PLUGIN_NAME) &&\n incompatibleGatsbyCloudPlugin(plugins)\n ) {\n reporter.panic(\n `Plugin gatsby-plugin-gatsby-cloud is not compatible with your gatsby version. Please upgrade to gatsby-plugin-gatsby-cloud@next`\n )\n }\n\n if (\n !configuredPluginNames.has(GATSBY_CLOUD_PLUGIN_NAME) &&\n (process.env.GATSBY_CLOUD === `true` || process.env.GATSBY_CLOUD === `1`)\n ) {\n addGatsbyPluginCloudPluginWhenInstalled(plugins, processPlugin, rootDir)\n }\n\n // Suppor Typescript by default but allow users to override it\n if (!configuredPluginNames.has(TYPESCRIPT_PLUGIN_NAME)) {\n plugins.push(\n processPlugin({\n resolve: require.resolve(TYPESCRIPT_PLUGIN_NAME),\n options: {\n // TODO(@mxstbr): Do not hard-code these defaults but infer them from the\n // pluginOptionsSchema of gatsby-plugin-typescript\n allExtensions: false,\n isTSX: false,\n jsxPragma: `React`,\n },\n })\n )\n }\n\n // Add the site's default \"plugin\" i.e. gatsby-x files in root of site.\n plugins.push({\n resolve: slash(process.cwd()),\n id: createPluginId(`default-site-plugin`),\n name: `default-site-plugin`,\n version: createFileContentHash(process.cwd(), `gatsby-*`),\n pluginOptions: {\n plugins: [],\n },\n })\n\n const program = store.getState().program\n\n // default options for gatsby-plugin-page-creator\n let pageCreatorOptions: IPluginRefOptions | undefined = {\n path: slash(path.join(program.directory, `src/pages`)),\n pathCheck: false,\n }\n\n if (config.plugins) {\n const pageCreatorPlugin = config.plugins.find(\n (plugin): plugin is IPluginRefObject =>\n typeof plugin !== `string` &&\n plugin.resolve === `gatsby-plugin-page-creator` &&\n slash((plugin.options && plugin.options.path) || ``) ===\n slash(path.join(program.directory, `src/pages`))\n )\n if (pageCreatorPlugin) {\n // override the options if there are any user specified options\n pageCreatorOptions = pageCreatorPlugin.options\n }\n }\n\n plugins.push(\n processPlugin({\n resolve: require.resolve(`gatsby-plugin-page-creator`),\n options: pageCreatorOptions,\n })\n )\n\n return plugins\n}\n"],"file":"load.js"}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
export interface IRawSiteConfig {
|
|
2
|
-
plugins?: Array<PluginRef>;
|
|
3
|
-
}
|
|
4
|
-
export interface ISiteConfig extends IRawSiteConfig {
|
|
5
|
-
plugins?: Array<IPluginRefObject>;
|
|
6
|
-
}
|
|
7
|
-
export interface IPluginInfo {
|
|
8
|
-
/** Unique ID describing a plugin */
|
|
9
|
-
id: string;
|
|
10
|
-
/** The absolute path to the plugin */
|
|
11
|
-
resolve: string;
|
|
12
|
-
/** The plugin name */
|
|
13
|
-
name: string;
|
|
14
|
-
/** The plugin version (can be content hash) */
|
|
15
|
-
version: string;
|
|
16
|
-
/** Options passed to the plugin */
|
|
17
|
-
pluginOptions?: IPluginInfoOptions;
|
|
18
|
-
subPluginPaths?: Array<string>;
|
|
19
|
-
module?: any;
|
|
20
|
-
modulePath?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface IPluginInfoOptions {
|
|
23
|
-
plugins?: Array<IPluginInfo>;
|
|
24
|
-
path?: string;
|
|
25
|
-
[option: string]: unknown;
|
|
26
|
-
}
|
|
27
|
-
export interface IFlattenedPlugin extends IPluginInfo {
|
|
28
|
-
skipSSR?: boolean;
|
|
29
|
-
ssrAPIs: Array<string>;
|
|
30
|
-
nodeAPIs: Array<string>;
|
|
31
|
-
browserAPIs: Array<string>;
|
|
32
|
-
}
|
|
33
|
-
export interface IPluginRefObject {
|
|
34
|
-
resolve: string;
|
|
35
|
-
options?: IPluginRefOptions;
|
|
36
|
-
parentDir?: string;
|
|
37
|
-
subPluginPaths?: Array<string>;
|
|
38
|
-
module?: any;
|
|
39
|
-
modulePath?: string;
|
|
40
|
-
}
|
|
41
|
-
export declare type PluginRef = string | IPluginRefObject;
|
|
42
|
-
export interface IPluginRefOptions {
|
|
43
|
-
plugins?: Array<PluginRef>;
|
|
44
|
-
path?: string;
|
|
45
|
-
[option: string]: unknown;
|
|
46
|
-
}
|
|
1
|
+
export interface IRawSiteConfig {
|
|
2
|
+
plugins?: Array<PluginRef>;
|
|
3
|
+
}
|
|
4
|
+
export interface ISiteConfig extends IRawSiteConfig {
|
|
5
|
+
plugins?: Array<IPluginRefObject>;
|
|
6
|
+
}
|
|
7
|
+
export interface IPluginInfo {
|
|
8
|
+
/** Unique ID describing a plugin */
|
|
9
|
+
id: string;
|
|
10
|
+
/** The absolute path to the plugin */
|
|
11
|
+
resolve: string;
|
|
12
|
+
/** The plugin name */
|
|
13
|
+
name: string;
|
|
14
|
+
/** The plugin version (can be content hash) */
|
|
15
|
+
version: string;
|
|
16
|
+
/** Options passed to the plugin */
|
|
17
|
+
pluginOptions?: IPluginInfoOptions;
|
|
18
|
+
subPluginPaths?: Array<string>;
|
|
19
|
+
module?: any;
|
|
20
|
+
modulePath?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface IPluginInfoOptions {
|
|
23
|
+
plugins?: Array<IPluginInfo>;
|
|
24
|
+
path?: string;
|
|
25
|
+
[option: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
export interface IFlattenedPlugin extends IPluginInfo {
|
|
28
|
+
skipSSR?: boolean;
|
|
29
|
+
ssrAPIs: Array<string>;
|
|
30
|
+
nodeAPIs: Array<string>;
|
|
31
|
+
browserAPIs: Array<string>;
|
|
32
|
+
}
|
|
33
|
+
export interface IPluginRefObject {
|
|
34
|
+
resolve: string;
|
|
35
|
+
options?: IPluginRefOptions;
|
|
36
|
+
parentDir?: string;
|
|
37
|
+
subPluginPaths?: Array<string>;
|
|
38
|
+
module?: any;
|
|
39
|
+
modulePath?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare type PluginRef = string | IPluginRefObject;
|
|
42
|
+
export interface IPluginRefOptions {
|
|
43
|
+
plugins?: Array<PluginRef>;
|
|
44
|
+
path?: string;
|
|
45
|
+
[option: string]: unknown;
|
|
46
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { PackageJson } from "../../../";
|
|
2
|
-
import { IPluginInfo, IFlattenedPlugin, ISiteConfig } from "./types";
|
|
3
|
-
interface IApi {
|
|
4
|
-
version?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface IEntry {
|
|
7
|
-
exportName: string;
|
|
8
|
-
pluginName: string;
|
|
9
|
-
pluginVersion: string;
|
|
10
|
-
api?: IApi;
|
|
11
|
-
}
|
|
12
|
-
export declare type ExportType = "node" | "browser" | "ssr";
|
|
13
|
-
declare type IEntryMap = {
|
|
14
|
-
[exportType in ExportType]: Array<IEntry>;
|
|
15
|
-
};
|
|
16
|
-
export declare type ICurrentAPIs = {
|
|
17
|
-
[exportType in ExportType]: Array<string>;
|
|
18
|
-
};
|
|
19
|
-
export declare function handleBadExports({ currentAPIs, badExports, }: {
|
|
20
|
-
currentAPIs: ICurrentAPIs;
|
|
21
|
-
badExports: {
|
|
22
|
-
[api in ExportType]: Array<IEntry>;
|
|
23
|
-
};
|
|
24
|
-
}): Promise<void>;
|
|
25
|
-
export declare function validateConfigPluginsOptions(config: ISiteConfig | undefined, rootDir: string | null): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Identify which APIs each plugin exports
|
|
28
|
-
*/
|
|
29
|
-
export declare function collatePluginAPIs({ currentAPIs, flattenedPlugins, }: {
|
|
30
|
-
currentAPIs: ICurrentAPIs;
|
|
31
|
-
flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>;
|
|
32
|
-
}): {
|
|
33
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
34
|
-
badExports: IEntryMap;
|
|
35
|
-
};
|
|
36
|
-
export declare const handleMultipleReplaceRenderers: ({ flattenedPlugins, }: {
|
|
37
|
-
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
38
|
-
}) => Array<IFlattenedPlugin>;
|
|
39
|
-
export declare function warnOnIncompatiblePeerDependency(name: string, packageJSON: PackageJson): void;
|
|
40
|
-
export {};
|
|
1
|
+
import { PackageJson } from "../../../";
|
|
2
|
+
import { IPluginInfo, IFlattenedPlugin, ISiteConfig } from "./types";
|
|
3
|
+
interface IApi {
|
|
4
|
+
version?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IEntry {
|
|
7
|
+
exportName: string;
|
|
8
|
+
pluginName: string;
|
|
9
|
+
pluginVersion: string;
|
|
10
|
+
api?: IApi;
|
|
11
|
+
}
|
|
12
|
+
export declare type ExportType = "node" | "browser" | "ssr";
|
|
13
|
+
declare type IEntryMap = {
|
|
14
|
+
[exportType in ExportType]: Array<IEntry>;
|
|
15
|
+
};
|
|
16
|
+
export declare type ICurrentAPIs = {
|
|
17
|
+
[exportType in ExportType]: Array<string>;
|
|
18
|
+
};
|
|
19
|
+
export declare function handleBadExports({ currentAPIs, badExports, }: {
|
|
20
|
+
currentAPIs: ICurrentAPIs;
|
|
21
|
+
badExports: {
|
|
22
|
+
[api in ExportType]: Array<IEntry>;
|
|
23
|
+
};
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
export declare function validateConfigPluginsOptions(config: ISiteConfig | undefined, rootDir: string | null): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Identify which APIs each plugin exports
|
|
28
|
+
*/
|
|
29
|
+
export declare function collatePluginAPIs({ currentAPIs, flattenedPlugins, }: {
|
|
30
|
+
currentAPIs: ICurrentAPIs;
|
|
31
|
+
flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>;
|
|
32
|
+
}): {
|
|
33
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
34
|
+
badExports: IEntryMap;
|
|
35
|
+
};
|
|
36
|
+
export declare const handleMultipleReplaceRenderers: ({ flattenedPlugins, }: {
|
|
37
|
+
flattenedPlugins: Array<IFlattenedPlugin>;
|
|
38
|
+
}) => Array<IFlattenedPlugin>;
|
|
39
|
+
export declare function warnOnIncompatiblePeerDependency(name: string, packageJSON: PackageJson): void;
|
|
40
|
+
export {};
|
|
@@ -137,16 +137,13 @@ async function validatePluginsOptions(plugins, rootDir) {
|
|
|
137
137
|
let optionsSchema = gatsbyNode.pluginOptionsSchema({
|
|
138
138
|
Joi: _gatsbyPluginUtils.Joi.extend(joi => {
|
|
139
139
|
return {
|
|
140
|
-
base: joi.any(),
|
|
141
140
|
type: `subPlugins`,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
options: _gatsbyPluginUtils.Joi.object({}).unknown(true)
|
|
149
|
-
})).custom((value, helpers) => {
|
|
141
|
+
base: joi.array().items(joi.alternatives(joi.string(), joi.object({
|
|
142
|
+
resolve: _gatsbyPluginUtils.Joi.string(),
|
|
143
|
+
options: _gatsbyPluginUtils.Joi.object({}).unknown(true)
|
|
144
|
+
}))).custom((arrayValue, helpers) => {
|
|
145
|
+
const entry = helpers.schema._flags.entry;
|
|
146
|
+
return arrayValue.map(value => {
|
|
150
147
|
if (typeof value === `string`) {
|
|
151
148
|
value = {
|
|
152
149
|
resolve: value
|
|
@@ -156,7 +153,7 @@ async function validatePluginsOptions(plugins, rootDir) {
|
|
|
156
153
|
try {
|
|
157
154
|
const resolvedPlugin = (0, _load.resolvePlugin)(value, rootDir);
|
|
158
155
|
|
|
159
|
-
const modulePath = require.resolve(`${resolvedPlugin.resolve}
|
|
156
|
+
const modulePath = require.resolve(`${resolvedPlugin.resolve}${entry ? `/${entry}` : ``}`);
|
|
160
157
|
|
|
161
158
|
value.modulePath = modulePath;
|
|
162
159
|
value.module = require(modulePath);
|
|
@@ -178,7 +175,16 @@ async function validatePluginsOptions(plugins, rootDir) {
|
|
|
178
175
|
}
|
|
179
176
|
|
|
180
177
|
return value;
|
|
181
|
-
}
|
|
178
|
+
});
|
|
179
|
+
}, `Gatsby specific subplugin validation`).default([]),
|
|
180
|
+
args: (schema, args) => {
|
|
181
|
+
if (args !== null && args !== void 0 && args.entry && schema && typeof schema === `object` && schema.$_setFlag) {
|
|
182
|
+
return schema.$_setFlag(`entry`, args.entry, {
|
|
183
|
+
clone: true
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return schema;
|
|
182
188
|
}
|
|
183
189
|
};
|
|
184
190
|
})
|
|
@@ -213,7 +219,7 @@ async function validatePluginsOptions(plugins, rootDir) {
|
|
|
213
219
|
plugin.options.plugins = subPlugins;
|
|
214
220
|
|
|
215
221
|
if (subPlugins.length > 0) {
|
|
216
|
-
subPluginPaths.add(`plugins
|
|
222
|
+
subPluginPaths.add(`plugins`);
|
|
217
223
|
}
|
|
218
224
|
|
|
219
225
|
errors += subErrors;
|