Skip to content

Commit 9989361

Browse files
authored
fix: json list codegen issues (Joystream#125)
* fix: json list codegen issues affects: @subsquid/hydra-cli, hydra-e2e-tests * style: fix lint errors affects: @subsquid/hydra-cli, hydra-e2e-tests
1 parent 14bd1eb commit 9989361

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

packages/hydra-cli/src/codegen.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ function generateOrmModels(model: Model, dir: OutDir): void {
155155
)}, from: obj => ${marshalFromJson(
156156
prop,
157157
'obj'
158-
)}}, nullable: ${prop.nullable})`
158+
)}}, nullable: ${prop.nullable}})`
159159
)
160160
break
161161
default:
@@ -330,7 +330,10 @@ function generateOrmModels(model: Model, dir: OutDir): void {
330330
convert = exp + '.toJSON()'
331331
break
332332
case 'list':
333-
convert = `${exp}.map(val => ${marshalToJson(prop.type.item, 'val')})`
333+
convert = `${exp}.map((val: any) => ${marshalToJson(
334+
prop.type.item,
335+
'val'
336+
)})`
334337
break
335338
default:
336339
throw unsupportedCase(prop.type.kind)

packages/hydra-e2e-tests/fixtures/schema.graphql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ type EventB implements Event @entity {
8686
network: Network!
8787
indexInBlock: Int!
8888
field2: String!
89+
statusList: [Status!]
8990
}
9091

9192
type EventC implements Event @entity {

packages/hydra-e2e-tests/fixtures/src/mappings/loaders.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
EventParam,
99
Network,
1010
SystemEvent,
11+
HappyPoor,
1112
} from '../generated/model'
1213

1314
export async function loader(ctx: BlockContext & StoreContext) {
@@ -33,6 +34,7 @@ export async function eventLoader({ store }: BlockContext & StoreContext) {
3334
network: Network.BABYLON,
3435
indexInBlock: 1,
3536
field2: 'field2',
37+
statusList: [new HappyPoor({ isMale: true })],
3638
})
3739

3840
const ce = new ComplexEntity()

packages/hydra-e2e-tests/test/jsonfields-e2e.test.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,27 @@ describe('end-to-end json fields tests', () => {
3232
}
3333
)
3434
})
35+
36+
it('fetch json list', () => {
37+
return queryNode.test(
38+
`
39+
query {
40+
eventBs {
41+
statusList {
42+
... on HappyPoor {
43+
isMale
44+
}
45+
}
46+
}
47+
}
48+
`,
49+
{
50+
eventBs: [
51+
{
52+
statusList: [{ isMale: true }],
53+
},
54+
],
55+
}
56+
)
57+
})
3558
})

0 commit comments

Comments
 (0)