vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
40 lines (37 loc) • 7.01 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { parsePattern } from './parsePattern.js';
function resolveRegExp(pattern, defaultPattern = "") {
if (pattern instanceof RegExp) {
return pattern;
}
if (pattern && typeof pattern === "object" && "__isRegExp" in pattern) {
const deserialized = pattern;
return new RegExp(deserialized.source, deserialized.flags);
}
if (typeof pattern === "string") {
const regex = parsePattern(pattern);
if (regex) {
return regex;
}
}
if (defaultPattern instanceof RegExp) {
return defaultPattern;
}
if (defaultPattern && typeof defaultPattern === "object" && "__isRegExp" in defaultPattern) {
const deserialized = defaultPattern;
return new RegExp(deserialized.source, deserialized.flags);
}
if (typeof defaultPattern === "string") {
const regex = parsePattern(defaultPattern);
if (regex) {
return regex;
}
}
return new RegExp(String(defaultPattern || ""));
}
export { resolveRegExp };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVJlZ0V4cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9yZXNvbHZlUmVnRXhwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVnRXhwT3B0IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBwYXJzZVBhdHRlcm4gfSBmcm9tIFwiLi9wYXJzZVBhdHRlcm4uanNcIjtcblxuaW50ZXJmYWNlIERlc2VyaWFsaXplZFJlZ0V4cCB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBmbGFnczogc3RyaW5nO1xuICBfX2lzUmVnRXhwOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgcGF0dGVybiB0byBhIFJlZ0V4cCBvYmplY3QsIGhhbmRsaW5nIHZhcmlvdXMgaW5wdXQgdHlwZXM6XG4gKiAtIFJlZ0V4cCBvYmplY3RzIChpbmNsdWRpbmcgZGVzZXJpYWxpemVkIG9uZXMpXG4gKiAtIFN0cmluZyBwYXR0ZXJucyAoZ2xvYiBwYXR0ZXJucyBsaWtlIFwiKi5qc1wiLCBcIioue2pzLHRzfVwiKVxuICogLSBEZWZhdWx0IHBhdHRlcm5zXG4gKiBcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIGNvbnZlcnRpbmcgdXNlci1mcmllbmRseSBwYXR0ZXJuc1xuICogaW50byBSZWdFeHAgb2JqZWN0cyB0aGF0IGNhbiBiZSB1c2VkIGZvciBtYXRjaGluZyBmaWxlbmFtZXMgYW5kIHBhdGhzLlxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIFN0cmluZyBwYXR0ZXJucyAoZ2xvYiBwYXR0ZXJucykgLSB0aGVzZSBnZXQgY29udmVydGVkIHRvIHJlZ2V4XG4gKiByZXNvbHZlUmVnRXhwKFwiKi5qc1wiKSAgICAgLy8gLy4qXFwuanMkLyAgICAgKG1hdGNoZXMgYW55IC5qcyBmaWxlKVxuICogcmVzb2x2ZVJlZ0V4cChcIioue2pzLHRzfVwiKSAvLyAvLipcXC4oanN8dHMpJC8gKG1hdGNoZXMgLmpzIG9yIC50cyBmaWxlcylcbiAqIHJlc29sdmVSZWdFeHAoXCJzcmMvKi5qc1wiKSAgLy8gL15zcmNcXC8uKlxcLmpzJC8gKG1hdGNoZXMgLmpzIGZpbGVzIGluIHNyYy8gZGlyZWN0b3J5KVxuICogcmVzb2x2ZVJlZ0V4cChcIiouanMvaVwiKSAgICAvLyAvLipcXC5qcyQvaSAgIChjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nKVxuICogXG4gKiAvLyBSZWdFeHAgcGF0dGVybnMgLSB0aGVzZSBhcmUgdXNlZCBhcy1pc1xuICogcmVzb2x2ZVJlZ0V4cCgvXFwuanMkLykgICAgLy8gL1xcLmpzJC8gICAgICAgKHNhbWUgcmVnZXggb2JqZWN0KVxuICogcmVzb2x2ZVJlZ0V4cCgvXFwuanMkL2kpICAgLy8gL1xcLmpzJC9pICAgICAgKHNhbWUgcmVnZXggb2JqZWN0IHdpdGggZmxhZ3MpXG4gKiBcbiAqIC8vIERlZmF1bHQgcGF0dGVybnMgLSB1c2VkIHdoZW4gbm8gcGF0dGVybiBpcyBwcm92aWRlZFxuICogcmVzb2x2ZVJlZ0V4cCh1bmRlZmluZWQsIFwiKi5qc1wiKSAgICAgLy8gLy4qXFwuanMkLyAgICAgKHVzZXMgZGVmYXVsdClcbiAqIHJlc29sdmVSZWdFeHAodW5kZWZpbmVkLCAvXFwuanMkLykgICAgLy8gL1xcLmpzJC8gICAgICAgKHVzZXMgZGVmYXVsdClcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVJlZ0V4cChcbiAgcGF0dGVybj86IFJlZ0V4cE9wdCxcbiAgZGVmYXVsdFBhdHRlcm46IFJlZ0V4cE9wdCA9IFwiXCJcbik6IFJlZ0V4cCB7XG4gIC8vIENBU0UgMTogSGFuZGxlIFJlZ0V4cCBvYmplY3RzIChpbmNsdWRpbmcgZGVzZXJpYWxpemVkIG9uZXMpXG4gIC8vIElmIHRoZSBwYXR0ZXJuIGlzIGFscmVhZHkgYSBSZWdFeHAgb2JqZWN0LCB1c2UgaXQgZGlyZWN0bHlcbiAgaWYgKHBhdHRlcm4gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICByZXR1cm4gcGF0dGVybjtcbiAgfVxuICBcbiAgLy8gQ0FTRSAyOiBIYW5kbGUgZGVzZXJpYWxpemVkIFJlZ0V4cCBvYmplY3RzXG4gIC8vIFRoZXNlIGFyZSBSZWdFeHAgb2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBzZXJpYWxpemVkIHRvIEpTT04gYW5kIGJhY2tcbiAgLy8gVGhleSBoYXZlIGEgc3BlY2lhbCBcIl9faXNSZWdFeHBcIiBwcm9wZXJ0eSB0byBpZGVudGlmeSB0aGVtXG4gIGlmIChwYXR0ZXJuICYmIHR5cGVvZiBwYXR0ZXJuID09PSBcIm9iamVjdFwiICYmIFwiX19pc1JlZ0V4cFwiIGluIHBhdHRlcm4pIHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSBwYXR0ZXJuIGFzIERlc2VyaWFsaXplZFJlZ0V4cDtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChkZXNlcmlhbGl6ZWQuc291cmNlLCBkZXNlcmlhbGl6ZWQuZmxhZ3MpO1xuICB9XG5cbiAgLy8gQ0FTRSAzOiBIYW5kbGUgc3RyaW5nIHBhdHRlcm5zIChjb252ZXJ0IGdsb2IgcGF0dGVybnMgdG8gcmVnZXgpXG4gIC8vIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMhIFdlIGNvbnZlcnQgdXNlci1mcmllbmRseSBnbG9iIHBhdHRlcm5zXG4gIC8vIGxpa2UgXCIqLmpzXCIgaW50byBwcm9wZXIgcmVnZXggcGF0dGVybnMgbGlrZSAvLipcXC5qcyQvXG4gIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHJlZ2V4ID0gcGFyc2VQYXR0ZXJuKHBhdHRlcm4pO1xuICAgIGlmIChyZWdleCkge1xuICAgICAgcmV0dXJuIHJlZ2V4O1xuICAgIH1cbiAgfVxuXG4gIC8vIENBU0UgNDogSGFuZGxlIGRlZmF1bHQgcGF0dGVybnMgKHdoZW4gbm8gcGF0dGVybiBpcyBwcm92aWRlZClcbiAgLy8gSWYgbm8gcGF0dGVybiB3YXMgZ2l2ZW4sIHVzZSB0aGUgZGVmYXVsdCBwYXR0ZXJuIGluc3RlYWRcbiAgXG4gIC8vIElmIGRlZmF1bHQgaXMgYWxyZWFkeSBhIFJlZ0V4cCwgdXNlIGl0XG4gIGlmIChkZWZhdWx0UGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgIHJldHVybiBkZWZhdWx0UGF0dGVybjtcbiAgfVxuICBcbiAgLy8gSWYgZGVmYXVsdCBpcyBhIGRlc2VyaWFsaXplZCBSZWdFeHAsIHJlY29uc3RydWN0IGl0XG4gIGlmIChkZWZhdWx0UGF0dGVybiAmJiB0eXBlb2YgZGVmYXVsdFBhdHRlcm4gPT09IFwib2JqZWN0XCIgJiYgXCJfX2lzUmVnRXhwXCIgaW4gZGVmYXVsdFBhdHRlcm4pIHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSBkZWZhdWx0UGF0dGVybiBhcyBEZXNlcmlhbGl6ZWRSZWdFeHA7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoZGVzZXJpYWxpemVkLnNvdXJjZSwgZGVzZXJpYWxpemVkLmZsYWdzKTtcbiAgfVxuXG4gIC8vIElmIGRlZmF1bHQgaXMgYSBzdHJpbmcsIGNvbnZlcnQgaXQgdXNpbmcgcGFyc2VQYXR0ZXJuXG4gIGlmICh0eXBlb2YgZGVmYXVsdFBhdHRlcm4gPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCByZWdleCA9IHBhcnNlUGF0dGVybihkZWZhdWx0UGF0dGVybik7XG4gICAgaWYgKHJlZ2V4KSB7XG4gICAgICByZXR1cm4gcmVnZXg7XG4gICAgfVxuICB9XG4gIFxuICAvLyBGYWxsYmFjazogY29udmVydCBhbnl0aGluZyBlbHNlIHRvIHN0cmluZyBhbmQgdHJ5IHRvIGNyZWF0ZSBhIFJlZ0V4cFxuICAvLyBUaGlzIGlzIG1haW5seSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICByZXR1cm4gbmV3IFJlZ0V4cChTdHJpbmcoZGVmYXVsdFBhdHRlcm4gfHwgXCJcIikpO1xufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBbUNPLFNBQVMsYUFBQSxDQUNkLE9BQ0EsRUFBQSxjQUFBLEdBQTRCLEVBQ3BCLEVBQUE7QUFHUixFQUFBLElBQUksbUJBQW1CLE1BQVEsRUFBQTtBQUM3QixJQUFPLE9BQUEsT0FBQTtBQUFBO0FBTVQsRUFBQSxJQUFJLE9BQVcsSUFBQSxPQUFPLE9BQVksS0FBQSxRQUFBLElBQVksZ0JBQWdCLE9BQVMsRUFBQTtBQUNyRSxJQUFBLE1BQU0sWUFBZSxHQUFBLE9BQUE7QUFDckIsSUFBQSxPQUFPLElBQUksTUFBQSxDQUFPLFlBQWEsQ0FBQSxNQUFBLEVBQVEsYUFBYSxLQUFLLENBQUE7QUFBQTtBQU0zRCxFQUFJLElBQUEsT0FBTyxZQUFZLFFBQVUsRUFBQTtBQUMvQixJQUFNLE1BQUEsS0FBQSxHQUFRLGFBQWEsT0FBTyxDQUFBO0FBQ2xDLElBQUEsSUFBSSxLQUFPLEVBQUE7QUFDVCxNQUFPLE9BQUEsS0FBQTtBQUFBO0FBQ1Q7QUFPRixFQUFBLElBQUksMEJBQTBCLE1BQVEsRUFBQTtBQUNwQyxJQUFPLE9BQUEsY0FBQTtBQUFBO0FBSVQsRUFBQSxJQUFJLGNBQWtCLElBQUEsT0FBTyxjQUFtQixLQUFBLFFBQUEsSUFBWSxnQkFBZ0IsY0FBZ0IsRUFBQTtBQUMxRixJQUFBLE1BQU0sWUFBZSxHQUFBLGNBQUE7QUFDckIsSUFBQSxPQUFPLElBQUksTUFBQSxDQUFPLFlBQWEsQ0FBQSxNQUFBLEVBQVEsYUFBYSxLQUFLLENBQUE7QUFBQTtBQUkzRCxFQUFJLElBQUEsT0FBTyxtQkFBbUIsUUFBVSxFQUFBO0FBQ3RDLElBQU0sTUFBQSxLQUFBLEdBQVEsYUFBYSxjQUFjLENBQUE7QUFDekMsSUFBQSxJQUFJLEtBQU8sRUFBQTtBQUNULE1BQU8sT0FBQSxLQUFBO0FBQUE7QUFDVDtBQUtGLEVBQUEsT0FBTyxJQUFJLE1BQUEsQ0FBTyxNQUFPLENBQUEsY0FBQSxJQUFrQixFQUFFLENBQUMsQ0FBQTtBQUNoRDs7OzsifQ==