Describe the bug
Hi!! I'm doing a demo of GQLify and I can't find an example of how to represent a many-to-many relation in the default data for a memory datasource. I have tried with the following options without luck:
To Reproduce
demo.graphql
enum Language {
en_US,
es_MX,
de_DE
}
type User @GQLifyModel(dataSource: "memory", key: "users") {
id: ID! @unique @autoGen
username: String!
email: String!
preferedLanguage: Language!
pokemons: [Pokemon!]!
books: [Book!]!
}
type Book @GQLifyModel(dataSource: "memory", key: "books") {
id: ID! @unique @autoGen
name: String!
author: User!
}
type Pokemon @GQLifyModel(dataSource: "memory", key: "pokemons") {
id: ID! @unique
name: String!
base_experience: Int!
order: Int!
types: [String]
moves: [String]
owners: [User]
}
index.js
Option 1:
const defaultData = {
users: [
{id: '1', username: 'Alice', email: '[email protected]'},
{id: '2', username: 'Bob', email: '[email protected]'},
],
books: [
{id: '1', name: 'book1', userId: '1'},
{id: '2', name: 'book2', userId: '2'},
],
pokemons: [
{id: '1', name: 'bulbasaur', base_experience: 64, order: 1, types: ['poison', 'grass'], moves: ['razor-wind', 'swords-dance', 'vine-whip'], owners: ['2']}
],
};
Option 2:
const defaultData = {
users: [
{id: '1', username: 'Alice', email: '[email protected]'},
{id: '2', username: 'Bob', email: '[email protected]'},
],
books: [
{id: '1', name: 'book1', userId: '1'},
{id: '2', name: 'book2', userId: '2'},
],
pokemons: [
{id: '1', name: 'bulbasaur', base_experience: 64, order: 1, types: ['poison', 'grass'], moves: ['razor-wind', 'swords-dance', 'vine-whip'], userIds: ['2']}
],
};
Option 3:
const defaultData = {
users: [
{id: '1', username: 'Alice', email: '[email protected]', pokemons:[]},
{id: '2', username: 'Bob', email: '[email protected]', pokemons:['1']},
],
books: [
{id: '1', name: 'book1', userId: '1'},
{id: '2', name: 'book2', userId: '2'},
],
pokemons: [
{id: '1', name: 'bulbasaur', base_experience: 64, order: 1, types: ['poison', 'grass'], moves: ['razor-wind', 'swords-dance', 'vine-whip'], owners: ['2']}
],
};
Option 4:
const defaultData = {
users: [
{id: '1', username: 'Alice', email: '[email protected]', pokemonIds:[]},
{id: '2', username: 'Bob', email: '[email protected]', pokemonIds:['1']},
],
books: [
{id: '1', name: 'book1', userId: '1'},
{id: '2', name: 'book2', userId: '2'},
],
pokemons: [
{id: '1', name: 'bulbasaur', base_experience: 64, order: 1, types: ['poison', 'grass'], moves: ['razor-wind', 'swords-dance', 'vine-whip'], userIds: ['2']}
],
};
Error:
Query
query PokemonMasters{
users{
username
pokemons{
name
}
}
}
Result
{
"data": {
"users": [
{
"username": "Alice",
"pokemons": []
},
{
"username": "Bob",
"pokemons": []
}
]
}
}
Expected behavior
Query
query PokemonMasters{
users{
username
pokemons{
name
types
}
}
}
Result
{
"data": {
"users": [
{
"username": "Alice",
"pokemons": []
},
{
"username": "Bob",
"pokemons": ["bulbasaur"]
}
]
}
}
Desktop (please complete the following information):
- OS: OSX 10.14.4 (Mojave)
- Browser: Chrome 73.0.3683.86
- Version: GQLify 3.2.1 & graphql 14.1.1
Additional context
Memory datasource