Plugin Guide
In this chapter, we will create a simple plugin.
Middleware Plugin
You can apply middlewares or custom handlers using plugin.server
.
ts
export function myPlugin() {
return {
name: 'my-plugin',
server(server) {
server.use((req, res, next) => {
next();
});
},
};
}
export function myPlugin() {
return {
name: 'my-plugin',
server(server) {
server.use((req, res, next) => {
next();
});
},
};
}
Transform
You can transform files using plugin.transform
.
WARNING
Files that are converted by default (such as typescript, javascript) will not be called.
plugin.transform
will return routes
.
Concept of Routes
file
: path (such as/
,/about
,/foo/bar
)m
: module
ts
return {
m: {
get(req, res) {
res.end('get');
},
post(req, res) {
res.end('post');
},
},
};
return {
m: {
get(req, res) {
res.end('get');
},
post(req, res) {
res.end('post');
},
},
};
modulePath
: built file directory
build feature requires modulePath
.
If you don't want to support build feature, you don't have to provide this value.
type
:module
orhtml
Transform Example
ts
import { parse } from 'path';
export function myPlugin() {
return {
name: 'my-plugin',
transform(id, code) {
return {
file: parse(id).name,
m: {
get(req, res) {
res.end('Hello World!');
},
},
modulePath: '',
type: 'module', // html or module
};
},
};
}
import { parse } from 'path';
export function myPlugin() {
return {
name: 'my-plugin',
transform(id, code) {
return {
file: parse(id).name,
m: {
get(req, res) {
res.end('Hello World!');
},
},
modulePath: '',
type: 'module', // html or module
};
},
};
}