rsnext/packages/next/server/web/sandbox/sandbox.ts
2021-12-03 15:31:52 -06:00

24 lines
623 B
TypeScript

import type { RequestData, FetchEventResult } from '../types'
import { getModuleContext } from './context'
export async function run(params: {
name: string
onWarning: (warn: Error) => void
paths: string[]
request: RequestData
useCache: boolean
}): Promise<FetchEventResult> {
const { runInContext, context } = getModuleContext({
module: params.name,
onWarning: params.onWarning,
useCache: params.useCache !== false,
})
for (const paramPath of params.paths) {
runInContext(paramPath)
}
return context._ENTRIES[`middleware_${params.name}`].default({
request: params.request,
})
}