vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
31 lines (28 loc) • 3.6 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { glob } from 'node:fs/promises';
import { resolve, join } from 'node:path';
function createGlobAutoDiscover(pattern) {
return async function _globAutoDiscover({
inputs,
userOptions
}) {
const absolutePattern = resolve(userOptions.projectRoot, userOptions.moduleBase, pattern);
const allFiles = glob(absolutePattern);
for await (const file of allFiles) {
const relativePath = file.replace(resolve(userOptions.projectRoot, userOptions.moduleBase), "").replace(/^\/+/, "");
const [key, value] = userOptions.normalizer(
join(userOptions.moduleBase, relativePath)
);
if (!inputs[key]) {
inputs[key] = value;
}
}
return inputs;
};
}
export { createGlobAutoDiscover };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlR2xvYkF1dG9EaXNjb3Zlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9hdXRvRGlzY292ZXIvY3JlYXRlR2xvYkF1dG9EaXNjb3Zlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc29sdmVkVXNlck9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IGdsb2IgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgam9pbiwgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdsb2JBdXRvRGlzY292ZXIocGF0dGVybjogc3RyaW5nKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiBfZ2xvYkF1dG9EaXNjb3Zlcih7XG4gICAgaW5wdXRzLFxuICAgIHVzZXJPcHRpb25zLFxuICB9OiB7XG4gICAgaW5wdXRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHVzZXJPcHRpb25zOiBQaWNrPFxuICAgICAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbiAgICAgIFwibW9kdWxlQmFzZVwiIHwgXCJwcm9qZWN0Um9vdFwiIHwgXCJub3JtYWxpemVyXCJcbiAgICA+O1xuICB9KSB7XG4gICAgLy8gQWx3YXlzIHVzZSBhYnNvbHV0ZSBwYXRocyB0byBhdm9pZCB1dl9jd2QgZXJyb3JzXG4gICAgLy8gVGhpcyBpcyBtb3JlIHJlbGlhYmxlIHRoYW4gdHJ5aW5nIHRvIGRldGVjdCBDV0QgYXZhaWxhYmlsaXR5XG4gICAgY29uc3QgYWJzb2x1dGVQYXR0ZXJuID0gcmVzb2x2ZSh1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCwgdXNlck9wdGlvbnMubW9kdWxlQmFzZSwgcGF0dGVybik7XG4gICAgY29uc3QgYWxsRmlsZXMgPSBnbG9iKGFic29sdXRlUGF0dGVybik7XG4gICAgXG4gICAgZm9yIGF3YWl0IChjb25zdCBmaWxlIG9mIGFsbEZpbGVzKSB7XG4gICAgICAvLyBDb252ZXJ0IGFic29sdXRlIHBhdGggYmFjayB0byByZWxhdGl2ZSBwYXRoIGZvciBub3JtYWxpemVyXG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBmaWxlLnJlcGxhY2UocmVzb2x2ZSh1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCwgdXNlck9wdGlvbnMubW9kdWxlQmFzZSksICcnKS5yZXBsYWNlKC9eXFwvKy8sICcnKTtcbiAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoXG4gICAgICAgIGpvaW4odXNlck9wdGlvbnMubW9kdWxlQmFzZSwgcmVsYXRpdmVQYXRoKVxuICAgICAgKTtcbiAgICAgIGlmICghaW5wdXRzW2tleV0pIHtcbiAgICAgICAgaW5wdXRzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGlucHV0cztcbiAgfTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlPLFNBQVMsdUJBQXVCLE9BQWlCLEVBQUE7QUFDdEQsRUFBQSxPQUFPLGVBQWUsaUJBQWtCLENBQUE7QUFBQSxJQUN0QyxNQUFBO0FBQUEsSUFDQTtBQUFBLEdBT0MsRUFBQTtBQUdELElBQUEsTUFBTSxrQkFBa0IsT0FBUSxDQUFBLFdBQUEsQ0FBWSxXQUFhLEVBQUEsV0FBQSxDQUFZLFlBQVksT0FBTyxDQUFBO0FBQ3hGLElBQU0sTUFBQSxRQUFBLEdBQVcsS0FBSyxlQUFlLENBQUE7QUFFckMsSUFBQSxXQUFBLE1BQWlCLFFBQVEsUUFBVSxFQUFBO0FBRWpDLE1BQUEsTUFBTSxZQUFlLEdBQUEsSUFBQSxDQUFLLE9BQVEsQ0FBQSxPQUFBLENBQVEsV0FBWSxDQUFBLFdBQUEsRUFBYSxXQUFZLENBQUEsVUFBVSxDQUFHLEVBQUEsRUFBRSxDQUFFLENBQUEsT0FBQSxDQUFRLFFBQVEsRUFBRSxDQUFBO0FBQ2xILE1BQUEsTUFBTSxDQUFDLEdBQUEsRUFBSyxLQUFLLENBQUEsR0FBSSxXQUFZLENBQUEsVUFBQTtBQUFBLFFBQy9CLElBQUEsQ0FBSyxXQUFZLENBQUEsVUFBQSxFQUFZLFlBQVk7QUFBQSxPQUMzQztBQUNBLE1BQUksSUFBQSxDQUFDLE1BQU8sQ0FBQSxHQUFHLENBQUcsRUFBQTtBQUNoQixRQUFBLE1BQUEsQ0FBTyxHQUFHLENBQUksR0FBQSxLQUFBO0FBQUE7QUFDaEI7QUFHRixJQUFPLE9BQUEsTUFBQTtBQUFBLEdBQ1Q7QUFDRjs7OzsifQ==