Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { defineEventHandler, getHeader } from '#imports';

export default defineEventHandler(async event => {
// Simple API endpoint that will trigger all server middleware
return {
message: 'Server middleware test endpoint',
path: event.path,
method: event.method,
headers: {
'x-first-middleware': getHeader(event, 'x-first-middleware'),
'x-second-middleware': getHeader(event, 'x-second-middleware'),
'x-auth-middleware': getHeader(event, 'x-auth-middleware'),
},
};
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { defineEventHandler, setHeader } from '#imports';

export default defineEventHandler(async event => {
// Set a header to indicate this middleware ran
setHeader(event, 'x-first-middleware', 'executed');
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { eventHandler, setHeader } from '#imports';

// tests out the eventHandler alias
export default eventHandler(async event => {
// Set a header to indicate this middleware ran
setHeader(event, 'x-second-middleware', 'executed');
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineEventHandler, setHeader, getQuery } from '#imports';

export default defineEventHandler(async event => {
// Check if we should throw an error
const query = getQuery(event);
if (query.throwError === 'true') {
throw new Error('Auth middleware error');
}

// Set a header to indicate this middleware ran
setHeader(event, 'x-auth-middleware', 'executed');
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { defineEventHandler, setHeader, getQuery } from '#imports';

export default defineEventHandler({
onRequest: async event => {
// Set a header to indicate the onRequest hook ran
setHeader(event, 'x-hooks-onrequest', 'executed');

// Check if we should throw an error in onRequest
const query = getQuery(event);
if (query.throwOnRequestError === 'true') {
throw new Error('OnRequest hook error');
}
},

handler: async event => {
// Set a header to indicate the main handler ran
setHeader(event, 'x-hooks-handler', 'executed');

// Check if we should throw an error in handler
const query = getQuery(event);
if (query.throwHandlerError === 'true') {
throw new Error('Handler error');
}
},

onBeforeResponse: async (event, response) => {
// Set a header to indicate the onBeforeResponse hook ran
setHeader(event, 'x-hooks-onbeforeresponse', 'executed');

// Check if we should throw an error in onBeforeResponse
const query = getQuery(event);
if (query.throwOnBeforeResponseError === 'true') {
throw new Error('OnBeforeResponse hook error');
}
},
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import { defineEventHandler, setHeader, getQuery } from '#imports';

export default defineEventHandler({
// Array of onRequest handlers
onRequest: [
async event => {
setHeader(event, 'x-array-onrequest-0', 'executed');

const query = getQuery(event);
if (query.throwOnRequest0Error === 'true') {
throw new Error('OnRequest[0] hook error');
}
},
async event => {
setHeader(event, 'x-array-onrequest-1', 'executed');

const query = getQuery(event);
if (query.throwOnRequest1Error === 'true') {
throw new Error('OnRequest[1] hook error');
}
},
],

handler: async event => {
setHeader(event, 'x-array-handler', 'executed');
},

// Array of onBeforeResponse handlers
onBeforeResponse: [
async (event, response) => {
setHeader(event, 'x-array-onbeforeresponse-0', 'executed');

const query = getQuery(event);
if (query.throwOnBeforeResponse0Error === 'true') {
throw new Error('OnBeforeResponse[0] hook error');
}
},
async (event, response) => {
setHeader(event, 'x-array-onbeforeresponse-1', 'executed');

const query = getQuery(event);
if (query.throwOnBeforeResponse1Error === 'true') {
throw new Error('OnBeforeResponse[1] hook error');
}
},
],
});
Loading