Examples
Explore common output patterns and generated code
Generated Folder Structure
build/
- package.json
- tsconfig.json
- dbConfig.ts
| adminPortal/
- ...adminPortalFiles
| app/
| ui/
- button.tsx
- modal.tsx
- input.tsx
- ...componentFiles
| hooks/
| <endpointBucketN>/
- ...hookFiles
| api/
{if (graphQL)}
| queries/
| <endpointBucketN>/
- ...queryFiles
| mutations/
| <endpointBucketN>/
- ...mutationFiles
| cicd/
- ...cicdFlavorFiles
| cloudOps/
- ...cloudOpsFiles
| enums/
- ...enumFiles
| migrations/
- ...migrationFiles
| seeds/
- ...seedFiles
| src/
| @types/
| dataServices/
| tables/
| typedefs/
| config/
- ...configFiles
| database/
- ...dbFiles
| dataServices/
| <endpointBucketN>/
- ...dataServiceFiles
{if (graphQL)}
| resolvers/
| <endpointBucketN>/
- ...resolverFiles
| typedefs/
| <endpointBucketN>/
- ...typedefFiles
{if (rest)}
| endpoints/
| <endpointBucketN>/
- ...endpointFiles
| utils/
Generated Resolver
// app/api/mutations/misc/updateManyOrganization.ts
export const updateManyOrganization = async (_, args, ctx) => {
return ctx.db.organization.updateMany({
where: { id: { in: args.ids } },
data: args.data,
});
};
Generated Data Service
export const writeUser = async (args: WriteUserArgs): Promise<User | undefined> => {
const resp = await runTransaction<User[]>((trx) =>
trx('user').insert(args).returning('*'),
);
return resp && resp[0] ? resp[0] : undefined;
};
Generated Typedef
export const userObjectType = new GraphQLObjectType({
name: 'userObjectType',
description: 'Generated objectTypes for user',
fields: {
id: { type: new GraphQLNonNull(GraphQLString) },
username: { type: GraphQLString },
email: { type: GraphQLString },
phone: { type: GraphQLString },
password_hash: { type: new GraphQLNonNull(GraphQLString) },
image: { type: GraphQLString },
last_login: { type: GraphQLString },
created_at: { type: GraphQLString },
updated_at: { type: GraphQLString },
deleted_at: { type: GraphQLString },
},
});
Generated React Hook
// app/hooks/user/useFindManyUser.ts
import { useQuery } from '@apollo/client';
import { FIND_MANY_USER } from '@/graphql/user';
export function useFindManyUser(variables) {
return useQuery(FIND_MANY_USER, { variables });
}
UI Component
// app/ui/button.tsx
export function Button({ className, ...props }) {
return <button className={cn('px-4 py-2 rounded', className)} {...props} />;
}
Prisma Schema
// prisma/schema.prisma
model User {
id String @id @default(uuid())
email String @unique
name String?
roles UserRole[]
}