GraphQL codegen cli在片段文件上失败



我有一个深度嵌套的GitHub图形,其中深处返回有关存储库的信息。我想将存储库对象拉出到一个片段,然后在原始查询中引用该片段。文件类型为*.graphql。我尝试过单独的文件,一个单一的文件,以命名的片段开始,然后查询。CodeGen总是失败。有没有人有一个仓库或CodeGen和。graphql文件与片段的例子?

这是查询,我想用命名片段替换node

query OrgReposAg(
$organization: String!
$pageSize: Int
$after: String
) {
organization(login: $organization) {
repositories(
after: $after
first: $pageSize
orderBy: { field: STARGAZERS, direction: DESC }
) {
totalCount
pageInfo {
startCursor
hasNextPage
endCursor
}
edges {
cursor
node {
repositoryName: name
id
url
descriptionHTML
updatedAt
stargazers {
totalCount
}
forks {
totalCount
}
issues(states: [OPEN]) {
totalCount
}
pullRequests(states: [OPEN]) {
totalCount
}
}
}
}
}
}

命名的片段

fragment RepoInfoAg on Repository {
repositoryName: name
id
url
descriptionHTML
updatedAt
stargazers {
totalCount
}
forks {
totalCount
}
issues(states: [OPEN]) {
totalCount
}
pullRequests(states: [OPEN]) {
totalCount
}
}

我有片段作为一个单独的文件,它得到我的片段的类型。我在提取数据时使用这个。错误如下:

$ npm run codegen
> typescript-action@1.6.0 codegen C:reposcodediberrytypescript-action
> graphql-codegen --config codegen.yml
✔ Parse Configuration
⚠ Generate outputs
❯ Generate to ./src/generated/graphql.sdk.ts
✔ Load GraphQL schemas
✔ Load GraphQL documents
✖ GraphQL Document Validation failed with 3 errors;
Error 0: Cannot qu…
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! typescript-action@1.6.0 codegen: `graphql-codegen --config codegen.yml`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the typescript-action@1.6.0 codegen script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     C:UsersdiberryAppDataRoamingnpm-cache_logs2022-12-03T23_19_06_573Z-debug.log

日志没有帮助,但这里是:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\Program Files\nodejs\node.exe',
1 verbose cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'codegen'
1 verbose cli ]
2 info using npm@6.14.17
3 info using node@v14.20.0
4 verbose run-script [ 'precodegen', 'codegen', 'postcodegen' ]
5 info lifecycle typescript-action@1.6.0~precodegen: typescript-action@1.6.0
6 info lifecycle typescript-action@1.6.0~codegen: typescript-action@1.6.0
7 verbose lifecycle typescript-action@1.6.0~codegen: unsafe-perm in lifecycle true
8 verbose lifecycle typescript-action@1.6.0~codegen: PATH: C:UsersdiberryAppDataRoamingnvmv14.20.0node_modulesnpmnode_modulesnpm-lifecyclenode-gyp-bin;C:reposcodediberrytypescript-actionnode_modules.bin;C:Usersdiberrybin;C:Program FilesGitmingw64bin;C:Program FilesGitusrlocalbin;C:Program FilesGitusrbin;C:Program FilesGitusrbin;C:Program FilesGitmingw64bin;C:Program FilesGitusrbin;C:Usersdiberrybin;C:Program Files (x86)Microsoft SDKsAzureCLI2wbin;C:Python39Scripts;C:Python39;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:WINDOWSSystem32OpenSSH;C:Program Filesdotnet;C:ProgramDatachocolateybin;C:UsersdiberryAppDataRoamingnvm;C:Program FilesGitcmd;C:Program FilesGitmingw64bin;C:Program FilesGitusrbin;C:UsersdiberryAppDataRoamingnvm;C:Program Filesnodejs;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:WINDOWSSystem32OpenSSH;C:Program Files (x86)Microsoft SQL Server150DTSBinn;C:Program FilesAzure Data Studiobin;C:Program FilesMicrosoft SQL ServerClient SDKODBC170ToolsBinn;C:Program FilesMicrosoft SQL Server150ToolsBinn;C:Program Files (x86)Microsoft SQL Server150ToolsBinn;C:Program FilesMicrosoft SQL Server150DTSBinn;C:Program Files7-Zip;C:reposclean-repo-tool;C:Program FilesDockerDockerresourcesbin;C:UsersdiberryAppDataLocalMicrosoftWindowsApps;C:Usersdiberry.dotnettools;C:Program FilesAzure Data Studiobin;C:Program Files (x86)GitHub CLI;C:UsersdiberryAppDataRoamingnpm;C:UsersdiberryAppDataLocalProgramsMicrosoft VS Codebin;C:UsersdiberryAppDataRoamingnvm;C:Program Filesnodejs;C:UsersdiberryAppDataLocalMicrosoftWindowsApps;C:Program FilesAzure Data Studiobin;C:Usersdiberry.dotnettools;C:UsersdiberryAppDataLocalGitHubDesktopbin;C:Program FilesGitusrbinvendor_perl;C:Program FilesGitusrbincore_perl
9 verbose lifecycle typescript-action@1.6.0~codegen: CWD: C:reposcodediberrytypescript-action
10 silly lifecycle typescript-action@1.6.0~codegen: Args: [ '/d /s /c', 'graphql-codegen --config codegen.yml' ]
11 silly lifecycle typescript-action@1.6.0~codegen: Returned: code: 1  signal: null
12 info lifecycle typescript-action@1.6.0~codegen: Failed to exec codegen script
13 verbose stack Error: typescript-action@1.6.0 codegen: `graphql-codegen --config codegen.yml`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:UsersdiberryAppDataRoamingnvmv14.20.0node_modulesnpmnode_modulesnpm-lifecycleindex.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:400:28)
13 verbose stack     at ChildProcess.<anonymous> (C:UsersdiberryAppDataRoamingnvmv14.20.0node_modulesnpmnode_modulesnpm-lifecyclelibspawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:400:28)
13 verbose stack     at maybeClose (internal/child_process.js:1088:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:296:5)
14 verbose pkgid typescript-action@1.6.0
15 verbose cwd C:reposcodediberrytypescript-action
16 verbose Windows_NT 10.0.22621
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "codegen"
18 verbose node v14.20.0
19 verbose npm  v6.14.17
20 error code ELIFECYCLE
21 error errno 1
22 error typescript-action@1.6.0 codegen: `graphql-codegen --config codegen.yml`
22 error Exit status 1
23 error Failed at the typescript-action@1.6.0 codegen script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

获得边缘/节点语法与片段工作。这是最后的图表。

query OrgReposAg(
$organization: String!
$pageSize: Int
$after: String
) {
organization(login: $organization) {
repositories(
after: $after
first: $pageSize
orderBy: { field: STARGAZERS, direction: DESC }
) {
totalCount
pageInfo {
startCursor
hasNextPage
endCursor
}
edges {
cursor
node {
...MyRepoFields
}
}
}
}
}
# This fragment extracts each repository in the edges array
# to a named type MyRepoFields, created by codegen
fragment MyRepoFields on Repository {
repositoryName: name
id
url
descriptionHTML
updatedAt
stargazers {
totalCount
}
forks {
totalCount
}
issues(states: [OPEN]) {
totalCount
}
pullRequests(states: [OPEN]) {
totalCount
}
}

最新更新