Skip to content

Commit 13f58b2

Browse files
authoredMar 10, 2020
chore(gatsby): Convert redux/actions/add-page-dependency to TS (#22062)
* Convert add-page-dependency to TS * Only add types * Resolve discussions
1 parent 4149c52 commit 13f58b2

File tree

11 files changed

+58
-50
lines changed

11 files changed

+58
-50
lines changed
 

‎packages/gatsby/src/db/loki/nodes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const _ = require(`lodash`)
22
const invariant = require(`invariant`)
33
const { getDb, colls } = require(`./index`)
4+
import { createPageDependency } from "../../redux/actions/add-page-dependency"
45

56
// ///////////////////////////////////////////////////////////////////
67
// Node collection metadata
@@ -168,7 +169,6 @@ function getTypes() {
168169
function getNodeAndSavePathDependency(id, path) {
169170
invariant(id, `id is null`)
170171
invariant(id, `path is null`)
171-
const createPageDependency = require(`../../redux/actions/add-page-dependency`)
172172
const node = getNode(id)
173173
createPageDependency({ path, nodeId: id })
174174
return node

‎packages/gatsby/src/query/graphql-runner.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
} from "graphql"
1111
import { debounce } from "lodash"
1212
import nodeStore from "../db/nodes"
13-
import createPageDependency from "../redux/actions/add-page-dependency"
13+
import { createPageDependency } from "../redux/actions/add-page-dependency"
1414

1515
import withResolverContext from "../schema/context"
1616
import { LocalNodeModel } from "../schema/node-model"

‎packages/gatsby/src/redux/actions/add-page-dependency.js

-40
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { store } from "../"
2+
3+
import { createPageDependency as internalCreatePageDependency } from "./internal"
4+
5+
export const createPageDependency = ({
6+
path,
7+
nodeId,
8+
connection,
9+
}: {
10+
path: string
11+
nodeId: string
12+
connection: string
13+
}): void => {
14+
const { componentDataDependencies } = store.getState()
15+
16+
// Check that the dependencies aren't already recorded so we
17+
// can avoid creating lots of very noisy actions.
18+
let nodeDependencyExists = false
19+
let connectionDependencyExists = false
20+
if (!nodeId) {
21+
nodeDependencyExists = true
22+
}
23+
if (
24+
nodeId &&
25+
componentDataDependencies.nodes.has(nodeId) &&
26+
componentDataDependencies.nodes.get(nodeId).has(path)
27+
) {
28+
nodeDependencyExists = true
29+
}
30+
if (!connection) {
31+
connectionDependencyExists = true
32+
}
33+
if (
34+
connection &&
35+
componentDataDependencies.connections.has(connection) &&
36+
componentDataDependencies.connections.get(connection).has(path)
37+
) {
38+
connectionDependencyExists = true
39+
}
40+
if (nodeDependencyExists && connectionDependencyExists) {
41+
return
42+
}
43+
44+
// It's new, let's dispatch it
45+
store.dispatch(internalCreatePageDependency({ path, nodeId, connection }))
46+
}

‎packages/gatsby/src/redux/actions/internal.ts

-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import {
1313
IRemoveStaleJobAction,
1414
} from "../types"
1515

16-
// import type { Plugin } from "./types"
17-
1816
/**
1917
* Create a dependency between a page and data. Probably for
2018
* internal use only.

‎packages/gatsby/src/redux/nodes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* @flow */
22

3+
import { createPageDependency } from "./actions/add-page-dependency"
34
const { store } = require(`./index`)
45

56
/**
@@ -77,7 +78,6 @@ exports.hasNodeChanged = (id, digest) => {
7778
* @returns {Object} node
7879
*/
7980
exports.getNodeAndSavePathDependency = (id, path) => {
80-
const createPageDependency = require(`./actions/add-page-dependency`)
8181
const node = getNode(id)
8282
createPageDependency({ path, nodeId: id })
8383
return node

‎packages/gatsby/src/redux/types.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ export interface IReduxState {
1818
nodesByType?: Map<any, any> // TODO
1919
jobsV2: any // TODO
2020
lastAction: ActionsUnion
21-
componentDataDependencies: any // TODO
21+
componentDataDependencies: {
22+
connections: any // TODO
23+
nodes: any // TODO
24+
}
2225
components: any // TODO
2326
staticQueryComponents: any // TODO
2427
webpackCompilationHash: any // TODO

‎packages/gatsby/src/schema/__tests__/build-node-connections.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { store } = require(`../../redux`)
77
const { actions } = require(`../../redux/actions`)
88

99
jest.mock(`../../redux/actions/add-page-dependency`)
10-
const createPageDependency = require(`../../redux/actions/add-page-dependency`)
10+
import { createPageDependency } from "../../redux/actions/add-page-dependency"
1111

1212
require(`../../db/__tests__/fixtures/ensure-loki`)()
1313

‎packages/gatsby/src/schema/__tests__/build-node-types.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jest.mock(`../../utils/api-runner-node`)
1212
const apiRunnerNode = require(`../../utils/api-runner-node`)
1313

1414
jest.mock(`../../redux/actions/add-page-dependency`)
15-
const createPageDependency = require(`../../redux/actions/add-page-dependency`)
15+
import { createPageDependency } from "../../redux/actions/add-page-dependency"
1616

1717
const { TypeConflictReporter } = require(`../infer/type-conflict-reporter`)
1818
const typeConflictReporter = new TypeConflictReporter()

‎packages/gatsby/src/schema/context.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { createPageDependency } from "../redux/actions/add-page-dependency"
2+
13
const { LocalNodeModel } = require(`./node-model`)
24
const { defaultFieldResolver } = require(`./resolvers`)
35

@@ -9,7 +11,6 @@ const withResolverContext = ({
911
nodeModel,
1012
}) => {
1113
const nodeStore = require(`../db/nodes`)
12-
const createPageDependency = require(`../redux/actions/add-page-dependency`)
1314

1415
if (!nodeModel) {
1516
nodeModel = new LocalNodeModel({

‎packages/gatsby/src/schema/infer/__tests__/infer-input.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const { LocalNodeModel } = require(`../../node-model`)
77
const nodeStore = require(`../../../db/nodes`)
88
const { store } = require(`../../../redux`)
99
const { actions } = require(`../../../redux/actions`)
10-
const createPageDependency = require(`../../../redux/actions/add-page-dependency`)
10+
import { createPageDependency } from "../../../redux/actions/add-page-dependency"
1111
require(`../../../db/__tests__/fixtures/ensure-loki`)()
1212

1313
jest.mock(`gatsby-cli/lib/reporter`, () => {

0 commit comments

Comments
 (0)
Please sign in to comment.