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[]
}