@pl-pluto/api-gen
TypeScript icon, indicating that this package has built-in type declarations

0.2.18 • Public • Published

@pl-pluto/api-gen cover

@pl-pluto/api-gen

Install

yarn add @pl-pluto/api-gen

Usage

Generate client

import {
  generateClient,
  ValidationLocationType,
  createEndpoint,
  createEndpointLeaf,
  HttpMethods,
} from '@pl-pluto/api-gen';
import { z } from 'zod';

const plutoApiSpecification = {
  baseUrl: 'https://api.pluto.com',
  endpoints: createEndpointLeaf({
    login: createEndpoint({
      method: HttpMethods.POST,
      tags: ['auth'],
      summary: 'Login',
      path: '/auth/login',
      requestBody: z.object({ email: z.string(), password: z.string() }),
      response: {
        200: z.object({ token: z.string() }),
        401: z
          .object({ message: z.string() })
          .describe('Invalid login credentials'),
      },
    }),
  }),
  docs: { info: { title: 'Pluto API', version: '1.0.0' } },
};

const plutoApi = generateClient(plutoApiSpecification);

plutoApi.login({ requestBody: { email: '', password: '' } }).then((res) => {
  console.log(res.data?.token);
});

Generate openapi

import { generateOpenapi } from '@pl-pluto/api-gen';

const openapi = generateOpenapi(plutoApiSpecification);

console.log(openapi.json);
console.log(openapi.html);

Readme

Keywords

none

Package Sidebar

Install

npm i @pl-pluto/api-gen

Weekly Downloads

34

Version

0.2.18

License

MIT

Unpacked Size

22.8 kB

Total Files

6

Last publish

Collaborators

  • proglimes