Initial commit

parents
node_modules
.keystone
\ No newline at end of file
File added
// keystone.ts
import { config, list } from '@keystone-6/core';
import { allowAll } from '@keystone-6/core/access';
import { text, relationship } from '@keystone-6/core/fields';
import { ServerConfig } from '@keystone-6/core/types';
const lists = {
User: list({
access: allowAll,
fields: {
name: text({ validation: { isRequired: true } }),
email: text({ validation: { isRequired: true }, isIndexed: 'unique' }),
posts: relationship({ ref: 'Post.author', many: true }),
},
}),
Post: list({
access: allowAll,
fields: {
title: text(),
author: relationship({
ref: 'User.posts',
ui: {
displayMode: 'cards',
cardFields: ['name', 'email'],
inlineEdit: { fields: ['name', 'email'] },
linkToItem: true,
inlineCreate: { fields: ['name', 'email'] },
},
}),
},
}),
};
export default config({
db: {
provider: 'sqlite',
url: 'file:./keystone.db',
},
lists,
server: {
cors: { origin: ['http://localhost:7777'], credentials: true },
port: 3000,
maxFileSize: 200 * 1024 * 1024,
extendExpressApp: (app, commonContext) => { /* ... */ },
extendHttpServer: (httpServer, commonContext, graphQLSchema) => { /* ... */ },
},
});
\ No newline at end of file
{
"name": "keystone_1",
"version": "1.0.0",
"description": "Example fog gc.",
"main": "index.js",
"license": "MIT",
"dependencies": {
"@keystone-6/core": "^5.7.0",
"typescript": "^5.2.2"
}
}
# This file is automatically generated by Keystone, do not modify it manually.
# Modify your Keystone config when you want to change this.
type User {
id: ID!
name: String
email: String
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
postsCount(where: PostWhereInput! = {}): Int
}
input UserWhereUniqueInput {
id: ID
email: String
}
input UserWhereInput {
AND: [UserWhereInput!]
OR: [UserWhereInput!]
NOT: [UserWhereInput!]
id: IDFilter
name: StringFilter
email: StringFilter
posts: PostManyRelationFilter
}
input IDFilter {
equals: ID
in: [ID!]
notIn: [ID!]
lt: ID
lte: ID
gt: ID
gte: ID
not: IDFilter
}
input StringFilter {
equals: String
in: [String!]
notIn: [String!]
lt: String
lte: String
gt: String
gte: String
contains: String
startsWith: String
endsWith: String
not: NestedStringFilter
}
input NestedStringFilter {
equals: String
in: [String!]
notIn: [String!]
lt: String
lte: String
gt: String
gte: String
contains: String
startsWith: String
endsWith: String
not: NestedStringFilter
}
input PostManyRelationFilter {
every: PostWhereInput
some: PostWhereInput
none: PostWhereInput
}
input UserOrderByInput {
id: OrderDirection
name: OrderDirection
email: OrderDirection
}
enum OrderDirection {
asc
desc
}
input UserUpdateInput {
name: String
email: String
posts: PostRelateToManyForUpdateInput
}
input PostRelateToManyForUpdateInput {
disconnect: [PostWhereUniqueInput!]
set: [PostWhereUniqueInput!]
create: [PostCreateInput!]
connect: [PostWhereUniqueInput!]
}
input UserUpdateArgs {
where: UserWhereUniqueInput!
data: UserUpdateInput!
}
input UserCreateInput {
name: String
email: String
posts: PostRelateToManyForCreateInput
}
input PostRelateToManyForCreateInput {
create: [PostCreateInput!]
connect: [PostWhereUniqueInput!]
}
type Post {
id: ID!
title: String
author: User
}
input PostWhereUniqueInput {
id: ID
}
input PostWhereInput {
AND: [PostWhereInput!]
OR: [PostWhereInput!]
NOT: [PostWhereInput!]
id: IDFilter
title: StringFilter
author: UserWhereInput
}
input PostOrderByInput {
id: OrderDirection
title: OrderDirection
}
input PostUpdateInput {
title: String
author: UserRelateToOneForUpdateInput
}
input UserRelateToOneForUpdateInput {
create: UserCreateInput
connect: UserWhereUniqueInput
disconnect: Boolean
}
input PostUpdateArgs {
where: PostWhereUniqueInput!
data: PostUpdateInput!
}
input PostCreateInput {
title: String
author: UserRelateToOneForCreateInput
}
input UserRelateToOneForCreateInput {
create: UserCreateInput
connect: UserWhereUniqueInput
}
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON @specifiedBy(url: "http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf")
type Mutation {
createUser(data: UserCreateInput!): User
createUsers(data: [UserCreateInput!]!): [User]
updateUser(where: UserWhereUniqueInput!, data: UserUpdateInput!): User
updateUsers(data: [UserUpdateArgs!]!): [User]
deleteUser(where: UserWhereUniqueInput!): User
deleteUsers(where: [UserWhereUniqueInput!]!): [User]
createPost(data: PostCreateInput!): Post
createPosts(data: [PostCreateInput!]!): [Post]
updatePost(where: PostWhereUniqueInput!, data: PostUpdateInput!): Post
updatePosts(data: [PostUpdateArgs!]!): [Post]
deletePost(where: PostWhereUniqueInput!): Post
deletePosts(where: [PostWhereUniqueInput!]!): [Post]
}
type Query {
users(where: UserWhereInput! = {}, orderBy: [UserOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: UserWhereUniqueInput): [User!]
user(where: UserWhereUniqueInput!): User
usersCount(where: UserWhereInput! = {}): Int
posts(where: PostWhereInput! = {}, orderBy: [PostOrderByInput!]! = [], take: Int, skip: Int! = 0, cursor: PostWhereUniqueInput): [Post!]
post(where: PostWhereUniqueInput!): Post
postsCount(where: PostWhereInput! = {}): Int
keystone: KeystoneMeta!
}
type KeystoneMeta {
adminMeta: KeystoneAdminMeta!
}
type KeystoneAdminMeta {
lists: [KeystoneAdminUIListMeta!]!
list(key: String!): KeystoneAdminUIListMeta
}
type KeystoneAdminUIListMeta {
key: String!
itemQueryName: String!
listQueryName: String!
hideCreate: Boolean!
hideDelete: Boolean!
path: String!
label: String!
singular: String!
plural: String!
description: String
initialColumns: [String!]!
pageSize: Int!
labelField: String!
fields: [KeystoneAdminUIFieldMeta!]!
groups: [KeystoneAdminUIFieldGroupMeta!]!
initialSort: KeystoneAdminUISort
isHidden: Boolean!
isSingleton: Boolean!
}
type KeystoneAdminUIFieldMeta {
path: String!
label: String!
description: String
isOrderable: Boolean!
isFilterable: Boolean!
isNonNull: [KeystoneAdminUIFieldMetaIsNonNull!]
fieldMeta: JSON
viewsIndex: Int!
customViewsIndex: Int
createView: KeystoneAdminUIFieldMetaCreateView!
listView: KeystoneAdminUIFieldMetaListView!
itemView(id: ID): KeystoneAdminUIFieldMetaItemView
search: QueryMode
}
enum KeystoneAdminUIFieldMetaIsNonNull {
read
create
update
}
type KeystoneAdminUIFieldMetaCreateView {
fieldMode: KeystoneAdminUIFieldMetaCreateViewFieldMode!
}
enum KeystoneAdminUIFieldMetaCreateViewFieldMode {
edit
hidden
}
type KeystoneAdminUIFieldMetaListView {
fieldMode: KeystoneAdminUIFieldMetaListViewFieldMode!
}
enum KeystoneAdminUIFieldMetaListViewFieldMode {
read
hidden
}
type KeystoneAdminUIFieldMetaItemView {
fieldMode: KeystoneAdminUIFieldMetaItemViewFieldMode
fieldPosition: KeystoneAdminUIFieldMetaItemViewFieldPosition
}
enum KeystoneAdminUIFieldMetaItemViewFieldMode {
edit
read
hidden
}
enum KeystoneAdminUIFieldMetaItemViewFieldPosition {
form
sidebar
}
enum QueryMode {
default
insensitive
}
type KeystoneAdminUIFieldGroupMeta {
label: String!
description: String
fields: [KeystoneAdminUIFieldMeta!]!
}
type KeystoneAdminUISort {
field: String!
direction: KeystoneAdminUISortDirection!
}
enum KeystoneAdminUISortDirection {
ASC
DESC
}
// This file is automatically generated by Keystone, do not modify it manually.
// Modify your Keystone config when you want to change this.
datasource sqlite {
url = env("DATABASE_URL")
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
provider = "sqlite"
}
generator client {
provider = "prisma-client-js"
}
model User {
id String @id @default(cuid())
name String @default("")
email String @unique @default("")
posts Post[] @relation("Post_author")
}
model Post {
id String @id @default(cuid())
title String @default("")
author User? @relation("Post_author", fields: [authorId], references: [id])
authorId String? @map("author")
@@index([authorId])
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment