UNPKG

create-blade

Version:

Create a new Blade project

56 lines (46 loc) 1.75 kB
import { MultipleWithInstructionsError } from 'blade/server/errors'; import type { ResolvingAddTrigger, ResolvingGetTrigger } from 'blade/types'; interface Post { body: string; id: number; title: string; userId: number; } const posts = [ { body: 'quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto', id: 1, title: 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit', userId: 1, }, { body: 'est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla', id: 2, title: 'qui est esse', userId: 1, }, { body: 'et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut', id: 3, title: 'ea molestias quasi exercitationem repellat qui ipsa sit aut', userId: 1, }, ] satisfies Array<Post>; export const resolvingAdd: ResolvingAddTrigger<Post> = (query, multiple) => { if (multiple) throw new MultipleWithInstructionsError(); const newPost = { body: query.with?.body as string, id: posts.length + 1, title: query.with?.title as string, userId: query.with?.userId as number, } satisfies Post; posts.push(newPost); return newPost; }; export const resolvingGet: ResolvingGetTrigger<Post | null | Array<Post>> = async ( query, multiple, ) => { if (multiple) return posts; return posts.find((post) => post.id === Number.parseInt(query.with?.id)) ?? null; };