@iodigital/vite-plugin-prism
Prism, OpenAPI mocking server, integration for Vite
Usage
Install
npm install --save-dev @iodigital/vite-plugin-prism
# yarn add --dev @iodigital/vite-plugin-prism
# pnpm add --save-dev @iodigital/vite-plugin-prism
Vite
// Import plugin
import prism from "@iodigital/vite-plugin-prism";
// Pass them to plugin
export default defineConfig({
plugins: [
prism([
{
// OpenAPI doc
specFilePathOrObject:
"https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml",
},
]),
],
});
Nuxt
import { defineNuxtConfig } from "nuxt";
// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
modules: [
[
"@iodigital/vite-plugin-prism/dist/nuxt",
[
{
specFilePathOrObject:
"https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml",
},
],
],
],
// or
modules: ["@iodigital/vite-plugin-prism/dist/nuxt"],
prism: [
{
specFilePathOrObject:
"https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore-expanded.yaml",
},
],
});
Config
interface PrismPluginOptions {
// Base path for API
// Default: /api
route?: string;
// URL to OpenAPI document or OpenAPI document object
specFilePathOrObject: string | object;
// Prism HTTP server configuration, same as Prism's IHttpConfig
// https://github.com/stoplightio/prism/tree/master/packages/http#config-object
// Default:
// {
// mock: { dynamic: true },
// validateRequest: true,
// validateResponse: true,
// checkSecurity: true,
// errors: true,
// };
prismConfig?: PrismConfig;
// Turn on Prism logging
// Default: false
debug?: boolean;
}
Development
npm run dev
Example vite application with plugin
npm run build
cd examples/with-vite
npm run dev
curl http://localhost:3000/api/pets
Example Nuxt application with plugin
npm run build
cd examples/with-nuxt
npm run dev
curl http://localhost:3000/api/pets
Build
npm run build