Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

epip-generate

Package Overview
Dependencies
Maintainers
0
Versions
138
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

epip-generate

epip-generate is a powerful package designed to automate the creation of backend services from API definitions using swagger.json. It generates all DTOs, services, and even backend validations automatically, streamlining your development process.

  • 1.3.31
  • npm
  • Socket score

Version published
Weekly downloads
57
decreased by-48.65%
Maintainers
0
Weekly downloads
 
Created
Source

🌱epip-generate

epip-generate is a powerful package designed to automate the creation of backend services from API definitions using swagger.json. It generates all DTOs, services, and even backend validations automatically, streamlining your development process.

Installation

Install the package as a development dependency using npm:

npm i epip-generate -D

Usage

There are two ways to implement epip-generate in your project:

  1. Using Scripts in package.json You can integrate epip-generate by adding a script to your package.json:
{
  "scripts": {
    "make:api": "epip-generate vue -o ./src/repository -p to -h https://api.test.hemscap.com/v1/api/swagger.json -in @core/interceptor -e VITE_APP_URL -s 2 -ti 300000 && npm run format"
  },
  "dependencies": { 
    // your dependencies here 
  },
  "devDependencies": {
    "epip-generate": "latest"
    // your dev dependencies here 
  }
}
  1. Using Vite Plugin You can also use epip-generate as a Vite plugin. Update your vite.config.ts file as follows:
import { defineConfig } from 'vite';
import { EpipGenerateVitePlugin } from 'epip-generate';

export default defineConfig({
  plugins: [
    EpipGenerateVitePlugin({
      type: 'vue',
      destinationPath: process.env.VITE_EPIP_DESC_PATH as string,
      plugins: ['to'],
      swaggerPath: process.env.VITE_EPIP_SWAGGER as string,
      interceptorPath: process.env.VITE_EPIP_INTERCEPTOR_PATH as string,
      baseUrlEnvironmentKey: process.env.VITE_EPIP_ENV_KEY as string,
      numberOfBackPathModels: 2,
      axiosTimeoutMillisecond: 300000
    })
  ]
});

epip-generate Configuration

The epip-generate package offers several configuration options:

  1. type: "vue" | "angular" | "react"
  • vue: Generates services using axios.

  • angular: Intended to generate services using rxjs (currently not implemented).

  • react: Intended to generate services using hooks (currently not implemented)\

  1. destinationPath: The path where the generated files will be stored.

  2. plugins: Array<"to" | "class-dto">

  • to: Uses await-to-js to handle axios responses.
  • class-dto: Generates DTOs as classes, enabling automatic validation. You can update validation rules for fields using the validationProperty method in the class, useful for libraries like Quasar.
  1. swaggerPath: The path to your swagger.json file.

  2. interceptorPath: The path to a file that exports the following three methods:

export const onRequest = async function (config: any) {
  // your code...
  return config;
};

export const onResponse = function (response: any) {
  // your code...
  return response.data;
};

export const onResponseError = function (response: AxiosError) {
  // your code...
  throw response;
};
  1. baseUrlEnvironmentKey: The environment variable key that contains the base URL for your APIs.

  2. numberOfBackPathModels: The number of directories to traverse back for path resolution in the model.ts file.

  3. axiosTimeoutMillisecond: The timeout value for axios requests, in milliseconds.

License

MIT

Authors

FAQs

Package last updated on 26 Aug 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc