20 lines
643 B
TypeScript
20 lines
643 B
TypeScript
|
import loaderUtils from 'next/dist/compiled/loader-utils3'
|
||
|
import { getModuleBuildInfo } from './get-module-build-info'
|
||
|
|
||
|
export default function MiddlewareAssetLoader(this: any, source: Buffer) {
|
||
|
const name = loaderUtils.interpolateName(this, '[name].[hash].[ext]', {
|
||
|
context: this.rootContext,
|
||
|
content: source,
|
||
|
})
|
||
|
const filePath = `edge-chunks/asset_${name}`
|
||
|
const buildInfo = getModuleBuildInfo(this._module)
|
||
|
buildInfo.nextAssetMiddlewareBinding = {
|
||
|
filePath: `server/${filePath}`,
|
||
|
name,
|
||
|
}
|
||
|
this.emitFile(filePath, source)
|
||
|
return `module.exports = ${JSON.stringify(`blob:${name}`)}`
|
||
|
}
|
||
|
|
||
|
export const raw = true
|