UNPKG

vite-plugin-react-server

Version:
48 lines (45 loc) 6.35 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ import { DEFAULT_CONFIG, BASE_PATTERNS } from './defaults.js'; const jsExtension = ".js"; const replaceExtension = (id, options) => { const buildConfig = options.build || DEFAULT_CONFIG.BUILD; const extensionMap = buildConfig.extensionMap || DEFAULT_CONFIG.BUILD.extensionMap; if (id.endsWith(".css")) { return id; } if (extensionMap) { for (const [pattern, ext] of Object.entries(extensionMap)) { if (pattern.startsWith(".")) { const regex = new RegExp("\\" + pattern + (pattern.endsWith("$") ? "" : "$")); if (regex.test(id)) { return id.replace(regex, ext); } } else if (pattern.startsWith("\\.")) { const regex = new RegExp(pattern + (pattern.endsWith("$") ? "" : "$")); if (regex.test(id)) { return id.replace(regex, ext); } } else if (pattern.endsWith(":")) { const regex = new RegExp((id.startsWith("^") ? "" : "^") + pattern); if (regex.test(id)) { return id.replace(regex, ext); } } else { const regex = new RegExp(pattern); if (regex.test(id)) { return id.replace(regex, ext); } } } } if (new RegExp(BASE_PATTERNS.MODULE).test(id)) { return id.replace(new RegExp(BASE_PATTERNS.MODULE), jsExtension); } return id; }; export { jsExtension, replaceExtension }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0TWFwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vY29uZmlnL2V4dE1hcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUZBVUxUX0NPTkZJRywgQkFTRV9QQVRURVJOUyB9IGZyb20gXCIuL2RlZmF1bHRzLmpzXCI7XG5cbmV4cG9ydCBjb25zdCBqc0V4dGVuc2lvbiA9IFwiLmpzXCI7XG5cbmV4cG9ydCBjb25zdCByZXBsYWNlRXh0ZW5zaW9uID0gKGlkOiBzdHJpbmcsIG9wdGlvbnM6IHtcbiAgYnVpbGQ6IHtcbiAgICBleHRlbnNpb25NYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgfVxufSkgPT4ge1xuICBjb25zdCBidWlsZENvbmZpZyA9IG9wdGlvbnMuYnVpbGQgfHwgREVGQVVMVF9DT05GSUcuQlVJTEQ7XG4gIGNvbnN0IGV4dGVuc2lvbk1hcCA9IGJ1aWxkQ29uZmlnLmV4dGVuc2lvbk1hcCB8fCBERUZBVUxUX0NPTkZJRy5CVUlMRC5leHRlbnNpb25NYXA7XG5cbiAgLy8gSGFuZGxlIENTUyBmaWxlcyBmaXJzdCAtIHRoZXkgc2hvdWxkIG5ldmVyIGJlIGNoYW5nZWQgdG8gLmpzXG4gIGlmIChpZC5lbmRzV2l0aCgnLmNzcycpKSB7XG4gICAgcmV0dXJuIGlkOyAvLyBLZWVwIENTUyBmaWxlcyBhcyAuY3NzXG4gIH1cblxuICAvLyBUcnkgZXh0ZW5zaW9uIG1hcHBpbmcgZmlyc3QgKGN1c3RvbSBtYXBwaW5ncyBzaG91bGQgdGFrZSBwcmVjZWRlbmNlKVxuICBpZiAoZXh0ZW5zaW9uTWFwKSB7XG4gICAgZm9yIChjb25zdCBbcGF0dGVybiwgZXh0XSBvZiBPYmplY3QuZW50cmllcyhleHRlbnNpb25NYXApKSB7XG4gICAgICBpZihwYXR0ZXJuLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgICAgICAvLyBTaW1wbGUgZXh0ZW5zaW9uIHBhdHRlcm4gbGlrZSBcIi5jc3NcIlxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ1xcXFwnICsgcGF0dGVybiArIChwYXR0ZXJuLmVuZHNXaXRoKCckJykgPyAnJyA6ICckJykpO1xuICAgICAgICBpZiAocmVnZXgudGVzdChpZCkpIHtcbiAgICAgICAgICByZXR1cm4gaWQucmVwbGFjZShyZWdleCwgZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwYXR0ZXJuLnN0YXJ0c1dpdGgoJ1xcXFwuJykpIHtcbiAgICAgICAgLy8gUmVnZXggcGF0dGVybiB0aGF0IHN0YXJ0cyB3aXRoIFxcLiBsaWtlIFwiXFwuY3NzJFwiXG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChwYXR0ZXJuICsgKHBhdHRlcm4uZW5kc1dpdGgoJyQnKSA/ICcnIDogJyQnKSk7XG4gICAgICAgIGlmIChyZWdleC50ZXN0KGlkKSkge1xuICAgICAgICAgIHJldHVybiBpZC5yZXBsYWNlKHJlZ2V4LCBleHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHBhdHRlcm4uZW5kc1dpdGgoXCI6XCIpKSB7XG4gICAgICAgIC8vIFBhdHRlcm4gd2l0aCBjb2xvblxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoKGlkLnN0YXJ0c1dpdGgoJ14nKSA/ICcnIDogJ14nKSArIHBhdHRlcm4pO1xuICAgICAgICBpZihyZWdleC50ZXN0KGlkKSkge1xuICAgICAgICAgIHJldHVybiBpZC5yZXBsYWNlKHJlZ2V4LCBleHQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDb21wbGV4IHJlZ2V4IHBhdHRlcm4gbGlrZSBCQVNFX1BBVFRFUk5TLk1PRFVMRVxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocGF0dGVybik7XG4gICAgICAgIGlmIChyZWdleC50ZXN0KGlkKSkge1xuICAgICAgICAgIHJldHVybiBpZC5yZXBsYWNlKHJlZ2V4LCBleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIHN0YW5kYXJkIG1vZHVsZSBleHRlbnNpb25zIGFzIGZhbGxiYWNrXG4gIGlmIChuZXcgUmVnRXhwKEJBU0VfUEFUVEVSTlMuTU9EVUxFKS50ZXN0KGlkKSkge1xuICAgIHJldHVybiBpZC5yZXBsYWNlKG5ldyBSZWdFeHAoQkFTRV9QQVRURVJOUy5NT0RVTEUpLCBqc0V4dGVuc2lvbik7XG4gIH1cblxuICByZXR1cm4gaWQ7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFTyxNQUFNLFdBQWMsR0FBQTtBQUVkLE1BQUEsZ0JBQUEsR0FBbUIsQ0FBQyxFQUFBLEVBQVksT0FJdkMsS0FBQTtBQUNKLEVBQU0sTUFBQSxXQUFBLEdBQWMsT0FBUSxDQUFBLEtBQUEsSUFBUyxjQUFlLENBQUEsS0FBQTtBQUNwRCxFQUFBLE1BQU0sWUFBZSxHQUFBLFdBQUEsQ0FBWSxZQUFnQixJQUFBLGNBQUEsQ0FBZSxLQUFNLENBQUEsWUFBQTtBQUd0RSxFQUFJLElBQUEsRUFBQSxDQUFHLFFBQVMsQ0FBQSxNQUFNLENBQUcsRUFBQTtBQUN2QixJQUFPLE9BQUEsRUFBQTtBQUFBO0FBSVQsRUFBQSxJQUFJLFlBQWMsRUFBQTtBQUNoQixJQUFBLEtBQUEsTUFBVyxDQUFDLE9BQVMsRUFBQSxHQUFHLEtBQUssTUFBTyxDQUFBLE9BQUEsQ0FBUSxZQUFZLENBQUcsRUFBQTtBQUN6RCxNQUFHLElBQUEsT0FBQSxDQUFRLFVBQVcsQ0FBQSxHQUFHLENBQUcsRUFBQTtBQUUxQixRQUFNLE1BQUEsS0FBQSxHQUFRLElBQUksTUFBQSxDQUFPLElBQU8sR0FBQSxPQUFBLElBQVcsUUFBUSxRQUFTLENBQUEsR0FBRyxDQUFJLEdBQUEsRUFBQSxHQUFLLEdBQUksQ0FBQSxDQUFBO0FBQzVFLFFBQUksSUFBQSxLQUFBLENBQU0sSUFBSyxDQUFBLEVBQUUsQ0FBRyxFQUFBO0FBQ2xCLFVBQU8sT0FBQSxFQUFBLENBQUcsT0FBUSxDQUFBLEtBQUEsRUFBTyxHQUFHLENBQUE7QUFBQTtBQUM5QixPQUNTLE1BQUEsSUFBQSxPQUFBLENBQVEsVUFBVyxDQUFBLEtBQUssQ0FBRyxFQUFBO0FBRXBDLFFBQU0sTUFBQSxLQUFBLEdBQVEsSUFBSSxNQUFPLENBQUEsT0FBQSxJQUFXLFFBQVEsUUFBUyxDQUFBLEdBQUcsQ0FBSSxHQUFBLEVBQUEsR0FBSyxHQUFJLENBQUEsQ0FBQTtBQUNyRSxRQUFJLElBQUEsS0FBQSxDQUFNLElBQUssQ0FBQSxFQUFFLENBQUcsRUFBQTtBQUNsQixVQUFPLE9BQUEsRUFBQSxDQUFHLE9BQVEsQ0FBQSxLQUFBLEVBQU8sR0FBRyxDQUFBO0FBQUE7QUFDOUIsT0FDUyxNQUFBLElBQUEsT0FBQSxDQUFRLFFBQVMsQ0FBQSxHQUFHLENBQUcsRUFBQTtBQUVoQyxRQUFNLE1BQUEsS0FBQSxHQUFRLElBQUksTUFBUSxDQUFBLENBQUEsRUFBQSxDQUFHLFdBQVcsR0FBRyxDQUFBLEdBQUksRUFBSyxHQUFBLEdBQUEsSUFBTyxPQUFPLENBQUE7QUFDbEUsUUFBRyxJQUFBLEtBQUEsQ0FBTSxJQUFLLENBQUEsRUFBRSxDQUFHLEVBQUE7QUFDakIsVUFBTyxPQUFBLEVBQUEsQ0FBRyxPQUFRLENBQUEsS0FBQSxFQUFPLEdBQUcsQ0FBQTtBQUFBO0FBQzlCLE9BQ0ssTUFBQTtBQUVMLFFBQU0sTUFBQSxLQUFBLEdBQVEsSUFBSSxNQUFBLENBQU8sT0FBTyxDQUFBO0FBQ2hDLFFBQUksSUFBQSxLQUFBLENBQU0sSUFBSyxDQUFBLEVBQUUsQ0FBRyxFQUFBO0FBQ2xCLFVBQU8sT0FBQSxFQUFBLENBQUcsT0FBUSxDQUFBLEtBQUEsRUFBTyxHQUFHLENBQUE7QUFBQTtBQUM5QjtBQUNGO0FBQ0Y7QUFJRixFQUFBLElBQUksSUFBSSxNQUFPLENBQUEsYUFBQSxDQUFjLE1BQU0sQ0FBRSxDQUFBLElBQUEsQ0FBSyxFQUFFLENBQUcsRUFBQTtBQUM3QyxJQUFBLE9BQU8sR0FBRyxPQUFRLENBQUEsSUFBSSxPQUFPLGFBQWMsQ0FBQSxNQUFNLEdBQUcsV0FBVyxDQUFBO0FBQUE7QUFHakUsRUFBTyxPQUFBLEVBQUE7QUFDVDs7OzsifQ==