Skip to content

Commit 2cf7228

Browse files
chore: extract GraphiQL server to @shopify/cli-kit
Move the GraphiQL HTTP proxy and its templates/assets out of @shopify/app and into @shopify/cli-kit so other packages (notably @shopify/store) can reuse it. This commit is purely mechanical: - Files moved to packages/cli-kit/src/public/node/graphiql/ and packages/cli-kit/assets/graphiql/. - Imports inside the moved server now use relative paths to other cli-kit modules instead of cross-package @shopify/cli-kit/* imports. - Asset resolution switched to @shopify/cli-kit/assets/graphiql/*. - @shopify/app consumers updated to import from @shopify/cli-kit/node/graphiql/server. - cli-kit package.json gains h3, @shopify/polaris, @shopify/polaris-icons, and react-dom (with @types/react-dom in devDependencies). Behavior is unchanged. Existing graphiql server.test.ts and utilities.test.ts move alongside the source.
1 parent d5b7839 commit 2cf7228

13 files changed

Lines changed: 32 additions & 12 deletions

File tree

packages/app/src/cli/services/dev/processes/graphiql.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {BaseProcess, DevProcessFunction} from './types.js'
2-
import {setupGraphiQLServer} from '../graphiql/server.js'
2+
import {setupGraphiQLServer} from '@shopify/cli-kit/node/graphiql/server'
33

44
interface GraphiQLServerProcessOptions {
55
appName: string

packages/app/src/cli/services/dev/processes/setup-dev-processes.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {pushUpdatesForDraftableExtensions} from './draftable-extension.js'
88
import {pushUpdatesForDevSession} from './dev-session/dev-session-process.js'
99
import {runThemeAppExtensionsServer} from './theme-app-extension.js'
1010
import {launchAppWatcher} from './app-watcher-process.js'
11-
import {resolveGraphiQLKey} from '../graphiql/server.js'
11+
import {resolveGraphiQLKey} from '@shopify/cli-kit/node/graphiql/server'
1212
import {
1313
testAppAccessConfigExtension,
1414
testAppConfigExtensions,

packages/app/src/cli/services/dev/processes/setup-dev-processes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {DevSessionProcess, setupDevSessionProcess} from './dev-session/dev-sessi
99
import {AppLogsSubscribeProcess, setupAppLogsPollingProcess} from './app-logs-polling.js'
1010
import {AppWatcherProcess, setupAppWatcherProcess} from './app-watcher-process.js'
1111
import {DevSessionStatusManager} from './dev-session/dev-session-status-manager.js'
12-
import {resolveGraphiQLKey} from '../graphiql/server.js'
12+
import {resolveGraphiQLKey} from '@shopify/cli-kit/node/graphiql/server'
1313
import {environmentVariableNames} from '../../../constants.js'
1414
import {AppLinkedInterface, getAppScopes, WebType} from '../../../models/app/app.js'
1515

File renamed without changes.
File renamed without changes.

packages/cli-kit/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@
107107
"@graphql-typed-document-node/core": "3.2.0",
108108
"@iarna/toml": "2.2.5",
109109
"@oclif/core": "4.5.3",
110+
"@shopify/polaris": "12.27.0",
111+
"@shopify/polaris-icons": "8.11.1",
110112
"@shopify/toml-patch": "0.3.0",
111113
"@opentelemetry/api": "1.9.0",
112114
"@opentelemetry/core": "1.30.0",
@@ -134,6 +136,7 @@
134136
"gradient-string": "2.0.2",
135137
"graphql": "16.10.0",
136138
"graphql-request": "6.1.0",
139+
"h3": "1.15.9",
137140
"ignore": "6.0.2",
138141
"ink": "6.8.0",
139142
"is-executable": "2.0.1",
@@ -151,6 +154,7 @@
151154
"open": "8.4.2",
152155
"pathe": "1.1.2",
153156
"react": "19.2.4",
157+
"react-dom": "19.2.4",
154158
"semver": "7.6.3",
155159
"stacktracey": "2.1.8",
156160
"strip-ansi": "7.1.0",
@@ -165,6 +169,7 @@
165169
"@types/gradient-string": "^1.1.2",
166170
"@types/lodash": "4.17.19",
167171
"@types/react": "^19.0.0",
172+
"@types/react-dom": "^19.0.0",
168173
"@types/semver": "^7.5.2",
169174
"@types/which": "3.0.4",
170175
"@vitest/coverage-istanbul": "^3.1.4",

packages/app/src/cli/services/dev/graphiql/server.test.ts renamed to packages/cli-kit/src/public/node/graphiql/server.test.ts

File renamed without changes.

packages/app/src/cli/services/dev/graphiql/server.ts renamed to packages/cli-kit/src/public/node/graphiql/server.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ import {
1313
setResponseStatus,
1414
toNodeListener,
1515
} from 'h3'
16-
import {performActionWithRetryAfterRecovery} from '@shopify/cli-kit/common/retry'
17-
import {CLI_KIT_VERSION} from '@shopify/cli-kit/common/version'
18-
import {AbortError} from '@shopify/cli-kit/node/error'
19-
import {adminUrl, supportedApiVersions} from '@shopify/cli-kit/node/api/admin'
20-
import {fetch} from '@shopify/cli-kit/node/http'
21-
import {renderLiquidTemplate} from '@shopify/cli-kit/node/liquid'
22-
import {outputDebug} from '@shopify/cli-kit/node/output'
16+
import {performActionWithRetryAfterRecovery} from '../../common/retry.js'
17+
import {CLI_KIT_VERSION} from '../../common/version.js'
18+
import {AbortError} from '../error.js'
19+
import {adminUrl, supportedApiVersions} from '../api/admin.js'
20+
import {fetch} from '../http.js'
21+
import {renderLiquidTemplate} from '../liquid.js'
22+
import {outputDebug} from '../output.js'
2323
import {createHmac} from 'crypto'
2424
import {createServer, Server} from 'http'
2525
import {readFileSync} from 'fs'
@@ -120,9 +120,9 @@ export function setupGraphiQLServer({
120120
)
121121
}
122122

123-
const faviconPath = require.resolve('@shopify/app/assets/graphiql/favicon.ico')
123+
const faviconPath = require.resolve('@shopify/cli-kit/assets/graphiql/favicon.ico')
124124
const faviconContent = readFileSync(faviconPath)
125-
const stylePath = require.resolve('@shopify/app/assets/graphiql/style.css')
125+
const stylePath = require.resolve('@shopify/cli-kit/assets/graphiql/style.css')
126126
const styleContent = readFileSync(stylePath, 'utf8')
127127

128128
app.use(

packages/app/src/cli/services/dev/graphiql/templates/graphiql.tsx renamed to packages/cli-kit/src/public/node/graphiql/templates/graphiql.tsx

File renamed without changes.

packages/app/src/cli/services/dev/graphiql/templates/unauthorized.tsx renamed to packages/cli-kit/src/public/node/graphiql/templates/unauthorized.tsx

File renamed without changes.

0 commit comments

Comments
 (0)