Skip to content

Commit

Permalink
Use ModelInstanceDocument.single() for deterministic documents (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
PaulLeCam committed Aug 29, 2022
1 parent 9a0a174 commit 95961fa
Show file tree
Hide file tree
Showing 36 changed files with 2,155 additions and 9,368 deletions.
80 changes: 40 additions & 40 deletions examples/next-notes/data/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ type Query {
id: ID!
): Node
viewer: CeramicAccount
noteIndex(
profileIndex(
"""Returns the items in the list that come after the specified cursor."""
after: String

Expand All @@ -17,8 +17,8 @@ type Query {

"""Returns the last n items from the list."""
last: Int
): NoteConnection
profileIndex(
): ProfileConnection
noteIndex(
"""Returns the items in the list that come after the specified cursor."""
after: String

Expand All @@ -30,7 +30,7 @@ type Query {

"""Returns the last n items from the list."""
last: Int
): ProfileConnection
): NoteConnection
}

"""An object with an ID"""
Expand All @@ -42,6 +42,7 @@ interface Node {
type CeramicAccount implements Node {
id: ID!
isViewer: Boolean!
profile: Profile
noteList(
"""Returns the items in the list that come after the specified cursor."""
after: String
Expand All @@ -55,7 +56,11 @@ type CeramicAccount implements Node {
"""Returns the last n items from the list."""
last: Int
): NoteConnection
profile: Profile
}

type Profile implements Node {
id: ID!
name: String!
}

"""A connection to a list of items."""
Expand Down Expand Up @@ -109,11 +114,6 @@ enum NoteStatus {
"""A Ceramic Commit ID"""
scalar CeramicCommitID

type Profile implements Node {
id: ID!
name: String!
}

"""A connection to a list of items."""
type ProfileConnection {
"""Information to aid in pagination."""
Expand All @@ -133,101 +133,101 @@ type ProfileEdge {
}

type Mutation {
createNote(input: CreateNoteInput!): CreateNotePayload
updateNote(input: UpdateNoteInput!): UpdateNotePayload
createProfile(input: CreateProfileInput!): CreateProfilePayload
updateProfile(input: UpdateProfileInput!): UpdateProfilePayload
createNote(input: CreateNoteInput!): CreateNotePayload
updateNote(input: UpdateNoteInput!): UpdateNotePayload
}

type CreateNotePayload {
type CreateProfilePayload {
"""Fetches an object given its ID"""
node(
"""The ID of an object"""
id: ID!
): Node
viewer: CeramicAccount
document: Note!
document: Profile!
clientMutationId: String
}

input CreateNoteInput {
content: NoteInput!
input CreateProfileInput {
content: ProfileInput!
clientMutationId: String
}

input NoteInput {
text: String!
title: String!
status: NoteStatus
input ProfileInput {
name: String!
}

type UpdateNotePayload {
type UpdateProfilePayload {
"""Fetches an object given its ID"""
node(
"""The ID of an object"""
id: ID!
): Node
viewer: CeramicAccount
document: Note!
document: Profile!
clientMutationId: String
}

input UpdateNoteInput {
input UpdateProfileInput {
id: ID!
content: PartialNoteInput!
content: PartialProfileInput!
options: UpdateOptionsInput
clientMutationId: String
}

input PartialNoteInput {
text: String
title: String
status: NoteStatus
input PartialProfileInput {
name: String
}

input UpdateOptionsInput {
replace: Boolean
version: CeramicCommitID
}

type CreateProfilePayload {
type CreateNotePayload {
"""Fetches an object given its ID"""
node(
"""The ID of an object"""
id: ID!
): Node
viewer: CeramicAccount
document: Profile!
document: Note!
clientMutationId: String
}

input CreateProfileInput {
content: ProfileInput!
input CreateNoteInput {
content: NoteInput!
clientMutationId: String
}

input ProfileInput {
name: String!
input NoteInput {
text: String!
title: String!
status: NoteStatus
}

type UpdateProfilePayload {
type UpdateNotePayload {
"""Fetches an object given its ID"""
node(
"""The ID of an object"""
id: ID!
): Node
viewer: CeramicAccount
document: Profile!
document: Note!
clientMutationId: String
}

input UpdateProfileInput {
input UpdateNoteInput {
id: ID!
content: PartialProfileInput!
content: PartialNoteInput!
options: UpdateOptionsInput
clientMutationId: String
}

input PartialProfileInput {
name: String
input PartialNoteInput {
text: String
title: String
status: NoteStatus
}
2 changes: 1 addition & 1 deletion examples/next-notes/data/src/composite.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":"1.0","models":{"kjzl6hvfrbw6cazhpibtyshjnove878l3txgyt4f1305brblrq5ijb48yrdmo33":[{"jws":{"payload":"AXESID9VnJXTnOFmitXiV90HMO7IvRfrfNa4neb4MMuvhYgz","signatures":[{"signature":"UAA6V9VSWiDeniAcwKzvdwrFuctwdZkkobc4cJBh2gFYxzDQkti5niRn9dDIVb6C9aQ35_H-iPnr9105mfBTAw","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUprI3o2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKayJ9"}],"link":"bafyreib7kwojlu444ftivvpck7oqomhozc6rp234224j3zxygdf27bmigm"},"linkedBlock":"omRkYXRhpWRuYW1lZE5vdGVldmlld3OiZmF1dGhvcqFkdHlwZW9kb2N1bWVudEFjY291bnRndmVyc2lvbqFkdHlwZW9kb2N1bWVudFZlcnNpb25mc2NoZW1hpmR0eXBlZm9iamVjdGUkZGVmc6FqTm90ZVN0YXR1c6NkZW51bYNnREVGQVVMVGlJTVBPUlRBTlRnQVJDSElWRWR0eXBlZnN0cmluZ2V0aXRsZWpOb3RlU3RhdHVzZyRzY2hlbWF4LGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1haHJlcXVpcmVkgmV0aXRsZWR0ZXh0anByb3BlcnRpZXOjZHRleHSiZHR5cGVmc3RyaW5naW1heExlbmd0aBkH0GV0aXRsZaNkdHlwZWZzdHJpbmdpbWF4TGVuZ3RoGGRpbWluTGVuZ3RoCmZzdGF0dXOhZCRyZWZyIy8kZGVmcy9Ob3RlU3RhdHVzdGFkZGl0aW9uYWxQcm9wZXJ0aWVz9GtkZXNjcmlwdGlvbnBTaW1wbGUgdGV4dCBub3Rlb2FjY291bnRSZWxhdGlvbmRsaXN0ZmhlYWRlcqNlbW9kZWxSzgEEAXFxCwAJaG1vZGVsLXYxZnVuaXF1ZUyTOrA2ylmKxeeem+hrY29udHJvbGxlcnOBeDhkaWQ6a2V5Ono2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKaw=="}],"kjzl6hvfrbw6c79c1lcf187b4jg3lrxzm1zggjmis5oal296i69nlkrwmteesw3":[{"jws":{"payload":"AXESIJl6Cv381NMfuGuVcFgBNgxSlGVf3mOmtuf4O-WowGGM","signatures":[{"signature":"w0oSYXqMgMtLPJhYPXLNnzwYz_8w7oo0JmcuyPpslQ0_OWUovH4PdOu1C_VGSmgT78GyPW5w2bI7sJu1yBwICg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUprI3o2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKayJ9"}],"link":"bafyreiezpifp37gu2mp3q24vobmacnqmkkkgkx66motlnz7yhps2rqdbrq"},"linkedBlock":"omRkYXRhpWRuYW1lZ1Byb2ZpbGVldmlld3OgZnNjaGVtYaVkdHlwZWZvYmplY3RnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSBZG5hbWVqcHJvcGVydGllc6FkbmFtZaJkdHlwZWZzdHJpbmdpbWF4TGVuZ3RoGDJ0YWRkaXRpb25hbFByb3BlcnRpZXP0a2Rlc2NyaXB0aW9ucVVzZXIgcHJvZmlsZSBpbmZvb2FjY291bnRSZWxhdGlvbmZzaW5nbGVmaGVhZGVyo2Vtb2RlbFLOAQQBcXELAAlobW9kZWwtdjFmdW5pcXVlTNig2NHunt5x+AuuqGtjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUpr"}]},"aliases":{},"views":{"account":{},"root":{},"models":{}}}
{"version":"1.0","models":{"kjzl6hvfrbw6c6jofl7d5ffysfzbhfigp9a829ff1gtp9raoappkp0v1dmzbg4s":[{"jws":{"payload":"AXESIJWyZ7SQ5huc3VMH7tNZMam7gcd5H7Gra9RLBWAxIvUw","signatures":[{"signature":"exEE0PNbWv9TVpaBoZDpeKnn9L03rqY4t7cn9Rgvptj_139Fs_p_yDut9ixRoQLPy5HBr6l4Vfj1CFelOSRDAQ","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUprI3o2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKayJ9"}],"link":"bafyreievwjt3jehgdoon2uyh53jvsmnjxoa4o6i7wgvwxvclavqdcixvga"},"linkedBlock":"omRkYXRhpWRuYW1lZ1Byb2ZpbGVldmlld3OgZnNjaGVtYaVkdHlwZWZvYmplY3RnJHNjaGVtYXgsaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWFocmVxdWlyZWSBZG5hbWVqcHJvcGVydGllc6FkbmFtZaJkdHlwZWZzdHJpbmdpbWF4TGVuZ3RoGDJ0YWRkaXRpb25hbFByb3BlcnRpZXP0a2Rlc2NyaXB0aW9ucVVzZXIgcHJvZmlsZSBpbmZvb2FjY291bnRSZWxhdGlvbmZzaW5nbGVmaGVhZGVyo2Vtb2RlbFLOAQQBcXELAAlobW9kZWwtdjFmdW5pcXVlTLRhTpjPDyoaKAwNu2tjb250cm9sbGVyc4F4OGRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUpr"}],"kjzl6hvfrbw6c7pnxez3vb5tsvjwraedrggpoy4ks53mg0lf9q5qvy47wr1lp83":[{"jws":{"payload":"AXESIM52pO1t3Ah3txync5hNzsLdCrcnu1OYS4WoXQONo6N-","signatures":[{"signature":"IuK-aV_fJC87xj90NvBfc-AfkpLLsoXWznpMXjL7zG-OWYjRdBcoxWDCCWXrKmDOJxJrXq314kFN1Q4mtPCxAg","protected":"eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa3M4c2piWldMbzhORVdNdHZqcWtnQktDZUFzd2Yyektpa0dwRkN2UnJnRUprI3o2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKayJ9"}],"link":"bafyreigoo2so23o4bb33ohfhoome3twc3ufloj53komexbniluby3i5dpy"},"linkedBlock":"omRkYXRhpWRuYW1lZE5vdGVldmlld3OiZmF1dGhvcqFkdHlwZW9kb2N1bWVudEFjY291bnRndmVyc2lvbqFkdHlwZW9kb2N1bWVudFZlcnNpb25mc2NoZW1hpmR0eXBlZm9iamVjdGUkZGVmc6FqTm90ZVN0YXR1c6NkZW51bYNnREVGQVVMVGlJTVBPUlRBTlRnQVJDSElWRWR0eXBlZnN0cmluZ2V0aXRsZWpOb3RlU3RhdHVzZyRzY2hlbWF4LGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1haHJlcXVpcmVkgmV0aXRsZWR0ZXh0anByb3BlcnRpZXOjZHRleHSiZHR5cGVmc3RyaW5naW1heExlbmd0aBkH0GV0aXRsZaNkdHlwZWZzdHJpbmdpbWF4TGVuZ3RoGGRpbWluTGVuZ3RoCmZzdGF0dXOhZCRyZWZyIy8kZGVmcy9Ob3RlU3RhdHVzdGFkZGl0aW9uYWxQcm9wZXJ0aWVz9GtkZXNjcmlwdGlvbnBTaW1wbGUgdGV4dCBub3Rlb2FjY291bnRSZWxhdGlvbmRsaXN0ZmhlYWRlcqNlbW9kZWxSzgEEAXFxCwAJaG1vZGVsLXYxZnVuaXF1ZUzMB3q/1mhocHJk1lFrY29udHJvbGxlcnOBeDhkaWQ6a2V5Ono2TWtzOHNqYlpXTG84TkVXTXR2anFrZ0JLQ2VBc3dmMnpLaWtHcEZDdlJyZ0VKaw=="}]},"aliases":{},"views":{"account":{},"root":{},"models":{}}}
26 changes: 13 additions & 13 deletions examples/next-notes/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@
"lint": "next lint"
},
"dependencies": {
"@ceramicnetwork/http-client": "^2.3.1",
"@ceramicnetwork/http-client": "^2.3.3",
"@composedb/client": "workspace:^0.2.0",
"@composedb/types": "workspace:^0.2.0",
"@emotion/react": "^11.10.0",
"@emotion/styled": "^11.10.0",
"@mui/icons-material": "^5.8.4",
"@mui/material": "^5.10.0",
"@mui/styles": "^5.9.2",
"@swc/helpers": "^0.4.6",
"dids": "^3.2.0",
"jotai": "^1.7.7",
"@mui/icons-material": "^5.10.2",
"@mui/material": "^5.10.2",
"@mui/styles": "^5.10.2",
"@swc/helpers": "^0.4.11",
"dids": "^3.3.0",
"jotai": "^1.8.1",
"key-did-provider-ed25519": "^2.0.1",
"key-did-resolver": "^2.0.6",
"key-did-resolver": "^2.1.0",
"next": "^12.2.5",
"react": "^18.2.0",
"react-dom": "^18.2.0",
Expand All @@ -33,13 +33,13 @@
"devDependencies": {
"@composedb/devtools": "workspace:^0.2.0",
"@composedb/devtools-node": "workspace:^0.2.0",
"@types/node": "^18.7.4",
"@types/node": "^18.7.13",
"@types/react": "^18.0.17",
"@types/react-relay": "^13.0.2",
"@types/relay-runtime": "^13.0.4",
"eslint": "^8.22.0",
"@types/react-relay": "^14.1.1",
"@types/relay-runtime": "^14.1.2",
"eslint": "^8.23.0",
"eslint-config-next": "^12.2.5",
"relay-compiler": "^14.1.0",
"typescript": "^4.7.4"
"typescript": "^4.8.2"
}
}
2 changes: 1 addition & 1 deletion examples/next-notes/src/__generated__/definition.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 95961fa

Please sign in to comment.