vite-plugin-interceptor
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

vite-plugin-interceptor

English | 中文

A vite plugin based on service worker to intercept and modify requests in a development environment

the browser needs to support service worker

a chrome extension can be used in production environment. easy-interceptor

Usage

npm i -D vite-plugin-interceptor

// in vite.config.ts


import interceptor from 'vite-plugin-interceptor'

export default defineConfig({
    plugins: [
        // interceptor()
        // or
        interceptor({
            input: 'src/index.ts', // default src/main.ts
            mockDir: '__mock__',   // default mock
        }),
    ]
})

// create a .ts or .js file in __mock__ dir, must use export default and set rules by plugin provide

export default function() {
    window.__INTERCEPTOR_DEVTOOL__.set(
        '1',
        {
            url: '**/tsconfig.json',
            method: 'get',
            response: '{"foo":"test"}',
            // enable: false,
            // delay: 5000,
        }
    )
}

ts type, create a file interceptor.d.ts, input this text

/// <reference types="vite-plugin-interceptor/typing" />

API

__INTERCEPTOR_DEVTOOL__

prop explain type description
get get rules ()=>Promise
set set a rule (id, rule) => void
clear clear all rules ()=>void

InterceptorRule

prop explain type description
url match request url string required
response response text string required
delay delay number 0
enable enable rule boolean true
method request method get post put delete
responseHeaders response headers Record<string, string> {}
status response status number 200

perhaps, it has a warn in vite2.0, you can use as any as Plugin to resolve it.

about multi-page: the sw.js scope is ./, so the plugin supports multi-page. just load the configured page to make the script active

LICENSE

MIT

Package Sidebar

Install

npm i vite-plugin-interceptor

Weekly Downloads

1

Version

1.0.4

License

MIT

Unpacked Size

24.2 kB

Total Files

9

Last publish

Collaborators

  • hans000