rsnext/packages/next/build/webpack/loaders/next-middleware-asset-loader.ts

20 lines
643 B
TypeScript
Raw Normal View History

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