@hashicorp/next-optimized-images
Version:
Automatically optimize images used in next.js projects (jpeg, png, gif, svg).
29 lines (23 loc) • 886 B
JavaScript
const fs = require('fs')
const path = require('path')
const { stringifyRequest } = require('loader-utils')
const { stringifySymbol } = require('svg-sprite-loader/lib/utils')
/**
* Defines the runtime generator for the svg sprite loader
*
* @param {object} config - runtime generator context
* @returns {string}
*/
const runtimeGenerator = ({ symbol, config, context }) => {
const { spriteModule, symbolModule } = config
const spriteRequest = stringifyRequest({ context }, spriteModule)
const symbolRequest = stringifyRequest({ context }, symbolModule)
const component = fs
.readFileSync(path.resolve(__dirname, 'component.js'))
.toString()
return component
.replace("'$$symbolRequest$$'", symbolRequest)
.replace("'$$spriteRequest$$'", spriteRequest)
.replace('$$stringifiedSymbol$$', stringifySymbol(symbol))
}
module.exports = runtimeGenerator