Skip to content

Commit a1b38e4

Browse files
committed
feat(herbarium): run on the new Herbarium Interface
1 parent 14e0b11 commit a1b38e4

File tree

3 files changed

+25
-29
lines changed

3 files changed

+25
-29
lines changed

src/helpers/gqlConverters.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function entityFieldType2gql(type, param) {
5656
if (hasIDs(type)) name = `${typeNames}IDsInput`
5757
else name = `${typeNames}Input`
5858
}
59-
else name = type.name
59+
else name = upperFirst(camelCase(type.name))
6060
return name
6161
}
6262

src/herbarium2gql.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,19 @@ const { entity, field } = require('@herbsjs/herbs')
88

99

1010
function herbs2gql({herbarium, resolver = defaultResolver}) {
11-
const { usecases, entities, crud } = herbarium
11+
const usecases = herbarium.nodes.find({ type: herbarium.node.usecase })
12+
const entities = herbarium.nodes.find({ type: herbarium.node.entity })
13+
const crud = herbarium.crud
1214

13-
const entitiesName = Array.from(entities.all.values()).map((e) => e.entity)
15+
const entitiesName = entities.map((e) => e.value)
1416
const queryUseCases = usecases
15-
.findBy({ operation: [crud.read, crud.readAll] })
16-
.map((e) => e.usecase)
17+
// find all usecases that are read or readAll
18+
.filter((uc) => [crud.read, crud.readAll].includes(uc?.metadatas?.operation))
19+
.map((e) => e.value)
1720
const mutatitonUseCases = usecases
18-
.findBy({ operation: [crud.create, crud.update, crud.delete] })
19-
.map((e) => e.usecase)
21+
// .findBy({ operation: [crud.create, crud.update, crud.delete] })
22+
.filter((uc) => [crud.create, crud.update, crud.delete].includes(uc?.metadatas?.operation))
23+
.map((e) => e.value)
2024

2125
const inputs = mutatitonUseCases.map((usecase) =>
2226
[usecase2input(usecase(), resolver(usecase))]

test/support/herbarium/genericHerbariumObject.js

+14-22
Original file line numberDiff line numberDiff line change
@@ -59,27 +59,19 @@ const givenAnUseCaseThatResturnsDate = (injection) =>
5959
response: Date,
6060
})
6161

62-
herbarium.entities.add(SimpleEntity, 'SimpleEntity')
63-
herbarium.entities.add(NoIDEntity, 'NoIDEntity')
64-
herbarium.entities.add(CoolEntity, 'CoolEntity')
65-
herbarium.usecases.add(givenACreateUseCase, 'CreateSomethingCool').metadata({
66-
group: 'genericGroup',
67-
operation: herbarium.crud.create,
68-
entity: CoolEntity,
69-
})
70-
herbarium.usecases.add(givenAUpdateUseCase, 'UpdateSomethingCool').metadata({
71-
group: 'genericGroup',
72-
operation: herbarium.crud.update,
73-
entity: CoolEntity,
74-
})
75-
herbarium.usecases.add(givenAGetUseCase, 'GetSomethingCool').metadata({
76-
group: 'genericGroup',
77-
operation: herbarium.crud.read,
78-
entity: CoolEntity,
79-
})
80-
herbarium.usecases.add(givenAnUseCaseThatResturnsDate, 'givenAnUseCaseThatResturnsDate').metadata({
81-
group: 'genericGroup',
82-
operation: herbarium.crud.read,
83-
})
62+
herbarium.nodes.add('SimpleEntity', SimpleEntity, herbarium.node.entity)
63+
herbarium.nodes.add('NoIDEntity', NoIDEntity, herbarium.node.entity)
64+
herbarium.nodes.add('CoolEntity', CoolEntity, herbarium.node.entity)
65+
herbarium.nodes.add('CreateSomethingCool', givenACreateUseCase, herbarium.node.usecase)
66+
.metadata({ operation: herbarium.crud.create })
67+
.link('CoolEntity')
68+
herbarium.nodes.add('UpdateSomethingCool', givenAUpdateUseCase, herbarium.node.usecase)
69+
.metadata({ operation: herbarium.crud.update })
70+
.link('CoolEntity')
71+
herbarium.nodes.add('GetSomethingCool', givenAGetUseCase, herbarium.node.usecase)
72+
.metadata({ operation: herbarium.crud.read })
73+
.link('CoolEntity')
74+
herbarium.nodes.add('givenAnUseCaseThatResturnsDate', givenAnUseCaseThatResturnsDate, herbarium.node.usecase)
75+
.metadata({ operation: herbarium.crud.read })
8476

8577
module.exports = { herbarium }

0 commit comments

Comments
 (0)