Skip to content

Commit

Permalink
Break loadConfigAndPlugins into two functions
Browse files Browse the repository at this point in the history
  • Loading branch information
tyhopp committed Feb 15, 2022
1 parent 6af048e commit 9e187e9
Show file tree
Hide file tree
Showing 8 changed files with 51 additions and 45 deletions.
5 changes: 2 additions & 3 deletions integration-tests/gatsby-cli/__tests__/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@ describe(`gatsby build`, () => {
it(`creates a built gatsby site`, () => {
const [code, logs] = GatsbyCLI.from(cwd).invoke(`build`)

logs.should.contain(
`success open and validate gatsby-configs, load plugins`
)
logs.should.contain(`success load gatsby config`)
logs.should.contain(`success load plugins`)
logs.should.contain(`success onPreInit`)
logs.should.contain(`success initialize cache`)
logs.should.contain(`success copy gatsby files`)
Expand Down
5 changes: 2 additions & 3 deletions integration-tests/gatsby-cli/__tests__/develop.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@ describe(`gatsby develop`, () => {

// 3. Make sure logs for the user contain expected results
const logs = getLogs()
logs.should.contain(
`success open and validate gatsby-configs, load plugins`
)
logs.should.contain(`success load gatsby config`)
logs.should.contain(`success load plugins`)
logs.should.contain(`success onPreInit`)
logs.should.contain(`success initialize cache`)
logs.should.contain(`success copy gatsby files`)
Expand Down
5 changes: 2 additions & 3 deletions integration-tests/gatsby-cli/__tests__/repl.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ describe(`gatsby repl`, () => {

// 3. Make assertions
const logs = getLogs()
logs.should.contain(
`success open and validate gatsby-configs, load plugins`
)
logs.should.contain(`success load gatsby config`)
logs.should.contain(`success load plugins`)
logs.should.contain(`success onPreInit`)
logs.should.contain(`success initialize cache`)
logs.should.contain(`success copy gatsby files`)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
import reporter from "gatsby-cli/lib/reporter"
import telemetry from "gatsby-telemetry"
import { preferDefault } from "../prefer-default"
import { getConfigFile } from "../get-config-file"
import { internalActions } from "../../redux/actions"
import loadThemes from "../load-themes"
import { store } from "../../redux"
import handleFlags from "../../utils/handle-flags"
import availableFlags from "../../utils/flags"
import { IProgram } from "../../commands/types"

import { IFlattenedPlugin } from "./load-plugins/types"

import { preferDefault } from "../bootstrap/prefer-default"
import { getConfigFile } from "../bootstrap/get-config-file"
import { loadPlugins } from "../bootstrap/load-plugins"
import { internalActions } from "../redux/actions"
import loadThemes from "../bootstrap/load-themes"
import { store } from "../redux"
import handleFlags from "../utils/handle-flags"
import availableFlags from "../utils/flags"
import { IProgram } from "../commands/types"

export async function loadConfigAndPlugins({
export async function loadConfig({
siteDirectory,
processFlags = false,
}: {
Expand All @@ -22,7 +18,6 @@ export async function loadConfigAndPlugins({
program?: IProgram
}): Promise<{
config: any
flattenedPlugins: Array<IFlattenedPlugin>
}> {
// Try opening the site's gatsby-config.js file.
const { configModule, configFilePath } = await getConfigFile(
Expand Down Expand Up @@ -94,7 +89,5 @@ export async function loadConfigAndPlugins({

store.dispatch(internalActions.setSiteConfig(config))

const flattenedPlugins = await loadPlugins(config, siteDirectory)

return { config, flattenedPlugins }
return { config }
}
30 changes: 18 additions & 12 deletions packages/gatsby/src/services/initialize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import { IPluginInfoOptions } from "../bootstrap/load-plugins/types"
import { IGatsbyState, IStateProgram } from "../redux/types"
import { IBuildContext } from "./types"
import { detectLmdbStore } from "../datastore"
import { loadConfigAndPlugins } from "../bootstrap/load-config-and-plugins"
import { loadConfig } from "../bootstrap/load-config"
import { loadPlugins } from "../bootstrap/load-plugins"
import type { InternalJob } from "../utils/jobs/types"
import { enableNodeMutationsDetection } from "../utils/detect-node-mutations"
import { resolveModule } from "../utils/module-resolver"
Expand Down Expand Up @@ -160,20 +161,27 @@ export async function initialize({

emitter.on(`END_JOB`, onEndJob)

// Try opening the site's gatsby-config.js file.
let activity = reporter.activityTimer(
`open and validate gatsby-configs, load plugins`,
{
parentSpan,
}
)
// Load gatsby config
let activity = reporter.activityTimer(`load gatsby config`, {
parentSpan,
})
activity.start()

const { config, flattenedPlugins } = await loadConfigAndPlugins({
siteDirectory: program.directory,
const siteDirectory = program.directory
const { config } = await loadConfig({
siteDirectory,
processFlags: true,
})

activity.end()

// Load plugins
activity = reporter.activityTimer(`load plugins`, {
parentSpan,
})
const flattenedPlugins = await loadPlugins(config, siteDirectory)
activity.end()

// TODO: figure out proper way of disabling loading indicator
// for now GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR=false gatsby develop
// will work, but we don't want to force users into using env vars
Expand All @@ -197,8 +205,6 @@ export async function initialize({
)
}

activity.end()

if (process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND) {
if (process.env.gatsby_executing_command !== `develop`) {
// we don't want to ever have this flag enabled for anything than develop
Expand Down
8 changes: 6 additions & 2 deletions packages/gatsby/src/utils/worker/__tests__/queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import {
emitter,
loadPartialStateFromDisk,
} from "../../../redux"
import { loadConfigAndPlugins } from "../../../bootstrap/load-config-and-plugins"
import { loadConfig } from "../../../bootstrap/load-config"
import { loadPlugins } from "../../../bootstrap/load-plugins"
import {
createTestWorker,
describeWhenLMDB,
Expand Down Expand Up @@ -124,7 +125,10 @@ describeWhenLMDB(`worker (queries)`, () => {
worker = createTestWorker()

const siteDirectory = path.join(__dirname, `fixtures`, `sample-site`)
await loadConfigAndPlugins({ siteDirectory })
const { config } = await loadConfig({
siteDirectory,
})
await loadPlugins(config, siteDirectory)
await Promise.all(worker.all.loadConfigAndPlugins({ siteDirectory }))
await sourceNodesAndRemoveStaleNodes({ webhookBody: {} })
await getDataStore().ready()
Expand Down
8 changes: 6 additions & 2 deletions packages/gatsby/src/utils/worker/__tests__/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ import { CombinedState } from "redux"
import { build } from "../../../schema"
import sourceNodesAndRemoveStaleNodes from "../../source-nodes"
import { savePartialStateToDisk, store } from "../../../redux"
import { loadConfigAndPlugins } from "../../../bootstrap/load-config-and-plugins"
import { loadConfig } from "../../../bootstrap/load-config"
import { loadPlugins } from "../../../bootstrap/load-plugins"
import {
createTestWorker,
describeWhenLMDB,
Expand Down Expand Up @@ -56,7 +57,10 @@ describeWhenLMDB(`worker (schema)`, () => {
worker = createTestWorker()

const siteDirectory = path.join(__dirname, `fixtures`, `sample-site`)
await loadConfigAndPlugins({ siteDirectory })
const { config } = await loadConfig({
siteDirectory,
})
await loadPlugins(config, siteDirectory)
await Promise.all(worker.all.loadConfigAndPlugins({ siteDirectory }))
await sourceNodesAndRemoveStaleNodes({ webhookBody: {} })
await getDataStore().ready()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { loadConfigAndPlugins as internalLoadConfigAndPlugins } from "../../../bootstrap/load-config-and-plugins"
import { loadConfig } from "../../../bootstrap/load-config"
import { loadPlugins } from "../../../bootstrap/load-plugins"
import { store } from "../../../redux"
import apiRunnerNode from "../../api-runner-node"

export async function loadConfigAndPlugins(
...args: Parameters<typeof internalLoadConfigAndPlugins>
...args: Parameters<typeof loadConfig>
): Promise<void> {
const [{ siteDirectory, program }] = args

Expand All @@ -14,7 +15,8 @@ export async function loadConfigAndPlugins(
directory: siteDirectory,
},
})
await internalLoadConfigAndPlugins(...args)
const { config } = await loadConfig(...args)
await loadPlugins(config, siteDirectory)

// Cache is already initialized
if (_CFLAGS_.GATSBY_MAJOR === `4`) {
Expand Down

0 comments on commit 9e187e9

Please sign in to comment.