vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
36 lines (34 loc) • 4.9 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
function resolveAllowedDirectives(input) {
if (!input) return {};
if (Array.isArray(input)) {
return Object.fromEntries(
input.map((entry) => {
if (typeof entry === "string") {
if (entry === "client" || entry === "no-memo") {
return [entry, { functionLevel: false, target: "client" }];
}
return [entry, { functionLevel: true, target: "server" }];
}
if (Array.isArray(entry) && entry.length === 2) {
const [key, target] = entry;
return [
key,
{
functionLevel: target === "server",
target
}
];
}
return [String(entry), { functionLevel: true, target: "server" }];
})
);
}
return input;
}
export { resolveAllowedDirectives };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZUFsbG93ZWREaXJlY3RpdmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vY29uZmlnL3Jlc29sdmVBbGxvd2VkRGlyZWN0aXZlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHR5cGUgeyBBbGxvd2VkRGlyZWN0aXZlSW5wdXQsIEFsbG93ZWREaXJlY3RpdmVzLCBEaXJlY3RpdmVDb25maWcgfSBmcm9tIFwicmVhY3Qtc2VydmVyLWxvYWRlci9kaXJlY3RpdmVzXCI7XG5cblxuLyoqXG4gKiBOb3JtYWxpemVzIGFsbG93ZWREaXJlY3RpdmVzIHRvIGFuIG9iamVjdCBtYXAuXG4gKlxuICogLSBcInNlcnZlclwiIHRhcmdldHMgYXJlIGFsd2F5cyBmdW5jdGlvbkxldmVsOiB0cnVlXG4gKiAtIFwiY2xpZW50XCIgdGFyZ2V0cyBhcmUgYWx3YXlzIGZ1bmN0aW9uTGV2ZWw6IGZhbHNlXG4gKiAtIEFjY2VwdHM6XG4gKiAgIC0gQXJyYXkgb2Ygc3RyaW5nczogW1wiY2xpZW50XCIsIFwic2VydmVyXCIsIFwiZm9vXCJdXG4gKiAgIC0gQXJyYXkgb2YgdHVwbGVzOiBbW1wibXlEaXJlY3RpdmVcIiwgXCJjbGllbnRcIl0sIFtcImZvb1wiLCBcInNlcnZlclwiXV1cbiAqICAgLSBBbGxvd2VkRGlyZWN0aXZlcyBvYmplY3RcbiAqXG4gKiBFeGFtcGxlOlxuICogICByZXNvbHZlQWxsb3dlZERpcmVjdGl2ZXMoW1xuICogICAgIFwiY2xpZW50XCIsXG4gKiAgICAgW1wibXlEaXJlY3RpdmVcIiwgXCJzZXJ2ZXJcIl0sXG4gKiAgICAgXCJzZXJ2ZXJcIlxuICogICBdKVxuICogICAvLyA9PlxuICogICB7XG4gKiAgICAgY2xpZW50OiB7IGZ1bmN0aW9uTGV2ZWw6IGZhbHNlLCB0YXJnZXQ6IFwiY2xpZW50XCIgfSxcbiAqICAgICBteURpcmVjdGl2ZTogeyBmdW5jdGlvbkxldmVsOiB0cnVlLCB0YXJnZXQ6IFwic2VydmVyXCIgfSxcbiAqICAgICBzZXJ2ZXI6IHsgZnVuY3Rpb25MZXZlbDogdHJ1ZSwgdGFyZ2V0OiBcInNlcnZlclwiIH1cbiAqICAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFsbG93ZWREaXJlY3RpdmVzKFxuICBpbnB1dDogQWxsb3dlZERpcmVjdGl2ZUlucHV0W10gfCBBbGxvd2VkRGlyZWN0aXZlcyB8IHVuZGVmaW5lZFxuKTogQWxsb3dlZERpcmVjdGl2ZXMge1xuICBpZiAoIWlucHV0KSByZXR1cm4ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGlucHV0KSkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBpbnB1dC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgZW50cnkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAvLyBEZWZhdWx0OiBrbm93biBjbGllbnQgZGlyZWN0aXZlcywgZWxzZSBzZXJ2ZXJcbiAgICAgICAgICBpZiAoZW50cnkgPT09IFwiY2xpZW50XCIgfHwgZW50cnkgPT09IFwibm8tbWVtb1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gW2VudHJ5LCB7IGZ1bmN0aW9uTGV2ZWw6IGZhbHNlLCB0YXJnZXQ6IFwiY2xpZW50XCIgfSBhcyBEaXJlY3RpdmVDb25maWddO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gW2VudHJ5LCB7IGZ1bmN0aW9uTGV2ZWw6IHRydWUsIHRhcmdldDogXCJzZXJ2ZXJcIiB9IGFzIERpcmVjdGl2ZUNvbmZpZ107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZW50cnkpICYmIGVudHJ5Lmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgIGNvbnN0IFtrZXksIHRhcmdldF0gPSBlbnRyeTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmdW5jdGlvbkxldmVsOiB0YXJnZXQgPT09IFwic2VydmVyXCIsXG4gICAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgIH0gYXMgRGlyZWN0aXZlQ29uZmlnLFxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgLy8gZmFsbGJhY2sgZm9yIGFueSBvdGhlciBvYmplY3QgKHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgIHJldHVybiBbU3RyaW5nKGVudHJ5KSwgeyBmdW5jdGlvbkxldmVsOiB0cnVlLCB0YXJnZXQ6IFwic2VydmVyXCIgfSBhcyBEaXJlY3RpdmVDb25maWddO1xuICAgICAgfSlcbiAgICApO1xuICB9XG4gIHJldHVybiBpbnB1dDtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQTRCTyxTQUFTLHlCQUNkLEtBQ21CLEVBQUE7QUFDbkIsRUFBSSxJQUFBLENBQUMsS0FBTyxFQUFBLE9BQU8sRUFBQztBQUNwQixFQUFJLElBQUEsS0FBQSxDQUFNLE9BQVEsQ0FBQSxLQUFLLENBQUcsRUFBQTtBQUN4QixJQUFBLE9BQU8sTUFBTyxDQUFBLFdBQUE7QUFBQSxNQUNaLEtBQUEsQ0FBTSxHQUFJLENBQUEsQ0FBQyxLQUFVLEtBQUE7QUFDbkIsUUFBSSxJQUFBLE9BQU8sVUFBVSxRQUFVLEVBQUE7QUFFN0IsVUFBSSxJQUFBLEtBQUEsS0FBVSxRQUFZLElBQUEsS0FBQSxLQUFVLFNBQVcsRUFBQTtBQUM3QyxZQUFBLE9BQU8sQ0FBQyxLQUFPLEVBQUEsRUFBRSxlQUFlLEtBQU8sRUFBQSxNQUFBLEVBQVEsVUFBNkIsQ0FBQTtBQUFBO0FBRTlFLFVBQUEsT0FBTyxDQUFDLEtBQU8sRUFBQSxFQUFFLGVBQWUsSUFBTSxFQUFBLE1BQUEsRUFBUSxVQUE2QixDQUFBO0FBQUE7QUFFN0UsUUFBQSxJQUFJLE1BQU0sT0FBUSxDQUFBLEtBQUssQ0FBSyxJQUFBLEtBQUEsQ0FBTSxXQUFXLENBQUcsRUFBQTtBQUM5QyxVQUFNLE1BQUEsQ0FBQyxHQUFLLEVBQUEsTUFBTSxDQUFJLEdBQUEsS0FBQTtBQUN0QixVQUFPLE9BQUE7QUFBQSxZQUNMLEdBQUE7QUFBQSxZQUNBO0FBQUEsY0FDRSxlQUFlLE1BQVcsS0FBQSxRQUFBO0FBQUEsY0FDMUI7QUFBQTtBQUNGLFdBQ0Y7QUFBQTtBQUdGLFFBQU8sT0FBQSxDQUFDLE9BQU8sS0FBSyxDQUFBLEVBQUcsRUFBRSxhQUFlLEVBQUEsSUFBQSxFQUFNLE1BQVEsRUFBQSxRQUFBLEVBQTZCLENBQUE7QUFBQSxPQUNwRjtBQUFBLEtBQ0g7QUFBQTtBQUVGLEVBQU8sT0FBQSxLQUFBO0FBQ1Q7Ozs7In0=