telefunc
Version:
Remote functions. Instead of API.
41 lines (40 loc) • 1.48 kB
JavaScript
export { pluginTransformTelefuncFiles };
import { transformTelefuncFileClientSide } from '../../shared/transformer/transformTelefuncFileClientSide.js';
import { transformTelefuncFileServerSide } from '../../shared/transformer/transformTelefuncFileServerSide.js';
import { assert, toPosixPath } from '../utils.js';
function pluginTransformTelefuncFiles() {
let root;
let isDev = false;
return [
{
name: 'telefunc:pluginTransformTelefuncFiles',
enforce: 'pre',
configResolved: {
handler(config) {
root = toPosixPath(config.root);
assert(root);
},
},
configureServer: {
handler() {
isDev = true;
},
},
transform: {
filter: {
id: '**/*.telefunc.*',
},
async handler(code, id, options) {
assert(id.includes('.telefunc'));
const isClientSide = !(options === null || options === void 0 ? void 0 : options.ssr);
if (isClientSide) {
return await transformTelefuncFileClientSide(code, id, root);
}
else {
return await transformTelefuncFileServerSide(code, id, root, isDev);
}
},
},
},
];
}