Pular para o conteúdo principal

Instalação

Requisitos​

  • Node.js: >= 22.12.0 (declarado no campo engines do pacote), para uso no Node.js.
  • Um documento OpenAPI já analisado, como objeto JavaScript, não uma string JSON/YAML bruta.
  • Um navegador moderno com a API Fetch para uso no navegador.

O pacote inclui builds ESM (dist/index.js) e CommonJS (dist/index.cjs), com declarações TypeScript. Não possui dependências de execução.

npm​

npm install @powerduck/openapi-codegen

pnpm​

pnpm add @powerduck/openapi-codegen

Yarn​

yarn add @powerduck/openapi-codegen

Uso no Node.js​

import { generate } from "@powerduck/openapi-codegen";

CommonJS:

const { generate } = require("@powerduck/openapi-codegen");

Os geradores integrados são registrados automaticamente na importação do módulo, portanto generate funciona imediatamente, sem configuração adicional.

Uso no navegador​

A biblioteca é totalmente compatível com navegadores e não usa módulos internos do Node.js. Carregue-a por uma CDN ESM e faça a chamada diretamente:

<script type="module">
import { generate, list } from "https://esm.sh/@powerduck/openapi-codegen";

const document = {
openapi: "3.1.0",
info: { title: "Example API", version: "1.0.0" },
servers: [{ url: "https://api.example.com" }],
paths: {
"/hello": { get: { responses: { "200": { description: "OK" } } } },
},
};

const code = generate({
document,
path: "/hello",
method: "get",
language: "javascript",
client: "fetch",
});

console.log(code);
</script>

Vite, esbuild e webpack também funcionam sem configuração adicional; o build ESM permite remover código não utilizado com tree shaking.

Fornecer o documento​

Passe um objeto já analisado. Para JSON:

import { readFile } from "node:fs/promises";

const document = JSON.parse(await readFile("./openapi.json", "utf8"));

Para YAML, primeiro analise o conteúdo com um pacote YAML separado:

import YAML from "yaml";
const document = YAML.parse(await readFile("./openapi.yaml", "utf8"));

Estrutura do pacote​

EntradaCaminho
Entrada ESMdist/index.js
Entrada CommonJSdist/index.cjs
Definições de tiposdist/index.d.ts

Não há executável CLI; a biblioteca é usada apenas por código.

Próximos passos​