4chan-XZ/tools/rollup-plugin-base64.js
2023-04-22 05:33:23 +02:00

28 lines
666 B
JavaScript

import { readFile } from 'fs/promises';
import { createFilter } from '@rollup/pluginutils';
/**
* @param {{
* include: import("@rollup/pluginutils").FilterPattern,
* exclude?: import("@rollup/pluginutils").FilterPattern,
* }} opts
* @returns {import("rollup").Plugin}
*/
export default function importBase64(opts) {
if (!opts.include) {
throw Error('include option should be specified');
}
const filter = createFilter(opts.include, opts.exclude);
return {
name: 'base64',
async load(id) {
if (!filter(id)) return;
const file = await readFile(id);
return `export default '${file.toString('base64')}';`;
},
};
}