UNPKG

vite-plugin-react-server

Version:
70 lines (68 loc) 10.8 kB
/** * vite-plugin-react-server * Copyright (c) Nico Brinkkemper * MIT License */ const resolveUrlOption = async function _resolveUrlOption(options, optionName, url) { let configName = optionName; if (optionName === options.pageExportName) { configName = "Page"; } else if (optionName === options.propsExportName) { configName = "props"; } else if (optionName === options.rootExportName) { configName = "Root"; } else if (optionName === options.htmlExportName) { configName = "Html"; } if (!(configName === "Page" || configName === "props" || configName === "Root" || configName === "Html")) { throw new Error(`Invalid option name: ${optionName}`); } try { let optionValue; switch (configName) { case "Page": optionValue = options.Page; break; case "props": optionValue = options.props; break; case "Root": optionValue = options.Root; break; case "Html": optionValue = options.Html; break; default: return { type: "error", error: new Error(`Unknown config name: ${configName}`) }; } switch (typeof optionValue) { case "function": { const fn = optionValue; const result = fn(url); if (typeof result === "string") { return { type: "success", [configName]: result }; } if (result instanceof Promise) { try { const promiseResult = await result; if (typeof promiseResult === "string") { return { type: "success", [configName]: promiseResult }; } } catch (error) { return { type: "error", error }; } } break; } case "string": return { type: "success", [configName]: optionValue }; default: break; } return { type: "error", error: new Error(`${configName} must be string or function that returns a string`) }; } catch (error) { return { type: "error", error }; } }; export { resolveUrlOption }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZVVybE9wdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2NvbmZpZy9yZXNvbHZlVXJsT3B0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFnZU5hbWUsIFByb3BzTmFtZSwgUm9vdE5hbWUsIEh0bWxOYW1lLCBSZXNvbHZlZFVzZXJPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5cbnR5cGUgU3VwcG9ydGVkT3B0aW9uTmFtZXMgPSBQcm9wc05hbWUgfCBQYWdlTmFtZSB8IFJvb3ROYW1lIHwgSHRtbE5hbWU7XG5cbnR5cGUgUmVzb2x2ZVBhZ2VBbmRQcm9wc09wdGlvbnNTdWNjZXNzPE4gZXh0ZW5kcyBTdXBwb3J0ZWRPcHRpb25OYW1lcz4gPSB7XG4gIFtvcHRpb25OYW1lIGluIE5dOiBzdHJpbmc7XG59ICYgeyB0eXBlOiBcInN1Y2Nlc3NcIjsgZXJyb3I/OiBuZXZlciB9O1xuXG50eXBlIFJlc29sdmVQYWdlQW5kUHJvcHNPcHRpb25zRXJyb3I8TiBleHRlbmRzIFN1cHBvcnRlZE9wdGlvbk5hbWVzPiA9IHtcbiAgW29wdGlvbk5hbWUgaW4gTl0/OiBuZXZlcjtcbn0gJiB7IHR5cGU6IFwiZXJyb3JcIjsgZXJyb3I6IHVua25vd24gfTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZVBhZ2VBbmRQcm9wc1JldHVybjxOIGV4dGVuZHMgU3VwcG9ydGVkT3B0aW9uTmFtZXM+ID1cbiAgfCBSZXNvbHZlUGFnZUFuZFByb3BzT3B0aW9uc1N1Y2Nlc3M8Tj5cbiAgfCBSZXNvbHZlUGFnZUFuZFByb3BzT3B0aW9uc0Vycm9yPE4+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlUGFnZUFuZFByb3BzT3B0aW9uc0ZuID0gPE4gZXh0ZW5kcyBTdXBwb3J0ZWRPcHRpb25OYW1lcz4oXG4gIG9wdGlvbnM6IFBpY2s8XG4gICAgUmVzb2x2ZWRVc2VyT3B0aW9ucyxcbiAgICBQcm9wc05hbWUgfCBQYWdlTmFtZSB8IFJvb3ROYW1lIHwgSHRtbE5hbWUgfCBcInBhZ2VFeHBvcnROYW1lXCIgfCBcInByb3BzRXhwb3J0TmFtZVwiIHwgXCJyb290RXhwb3J0TmFtZVwiIHwgXCJodG1sRXhwb3J0TmFtZVwiXG4gID4sXG4gIG9wdGlvbk5hbWU6IE4sXG4gIHVybDogc3RyaW5nXG4pID0+IFByb21pc2U8UmVzb2x2ZVBhZ2VBbmRQcm9wc1JldHVybjxOPj47XG5cbi8qKlxuICogUmVzb2x2ZXMgUGFnZSBvciBwcm9wcyBvcHRpb25zIHRvIGZpbGUgcGF0aHMuXG4gKlxuICogIyMgVXNhZ2UgUGF0dGVybjpcbiAqIDEuICoqQlVJTEQgVElNRSoqOiBDYWxsZWQgYnkgYHJlc29sdmVCdWlsZFBhZ2VzLnRzYCBmb3IgZWFjaCBwYWdlIGluIGBidWlsZC5wYWdlc2BcbiAqICAgIC0gUmVzb2x2ZXMgYWxsIFBhZ2UvcHJvcHMgcGF0aHMgc3RhdGljYWxseVxuICogICAgLSBCdWlsZHMgdXJsTWFwL3BhZ2VNYXAvcHJvcHNNYXAgY2FjaGVzIGZvciBmYXN0IHJ1bnRpbWUgbG9va3VwXG4gKlxuICogMi4gKipSVU5USU1FKio6IENhbGxlZCBieSBgZ2V0Um91dGVGaWxlcy50c2AgYXMgZHluYW1pYyBmYWxsYmFja1xuICogICAgLSBPbmx5IHdoZW4gcm91dGUgbm90IGZvdW5kIGluIGF1dG8tZGlzY292ZXJlZCB1cmxNYXAgY2FjaGVcbiAqICAgIC0gRW5hYmxlcyBkeW5hbWljIHJvdXRpbmcgZm9yIHJvdXRlcyBub3QgaW4gYnVpbGQucGFnZXNcbiAqXG4gKiAjIyBTdXBwb3J0ZWQgT3B0aW9uIFR5cGVzOlxuICogLSAqKlN0cmluZyoqOiBEaXJlY3QgZmlsZSBwYXRoIChlLmcuLCBcIi4vc3JjL0hvbWVQYWdlLnRzeFwiKVxuICogLSAqKkZ1bmN0aW9uKio6IFJvdXRlciBmdW5jdGlvbiB0aGF0IHRha2VzIFVSTCBhbmQgcmV0dXJucyBmaWxlIHBhdGhcbiAqICAgLSBTeW5jOiBgKHVybCkgPT4gXCIuL3NyYy9wYWdlcy9cIiArIHVybCArIFwiLnRzeFwiYFxuICogICAtIEFzeW5jOiBgKHVybCkgPT4gUHJvbWlzZS5yZXNvbHZlKFwiLi9zcmMvcGFnZXMvXCIgKyB1cmwgKyBcIi50c3hcIilgXG4gKlxuICogIyMgRGlzY292ZXJ5IExpbWl0YXRpb246XG4gKiBGdW5jdGlvbi1iYXNlZCByZXNvbHZlcnMgY3JlYXRlIGEgY2hpY2tlbi1hbmQtZWdnIHByb2JsZW0gZm9yIGF1dG8tZGlzY292ZXJ5OlxuICogLSBCdWlsZC10aW1lIGRpc2NvdmVyeSBuZWVkcyB0byBrbm93IGFsbCBwb3NzaWJsZSBVUkxzIHRvIGNhbGwgcmVzb2x2ZXJzXG4gKiAtIFVSTCBkaXNjb3ZlcnkgdHlwaWNhbGx5IGNvbWVzIGZyb20gc2Nhbm5pbmcgZmlsZXN5c3RlbSBmb3IgUGFnZSBmaWxlc1xuICogLSBCdXQgZnVuY3Rpb24gcmVzb2x2ZXJzIGNhbid0IGJlIHN0YXRpY2FsbHkgYW5hbHl6ZWQgd2l0aG91dCBVUkxzXG4gKlxuICogVGhpcyBpcyB3aHkgZXh0ZW5kaW5nIHRoaXMgcGF0dGVybiB0byBIdG1sL1Jvb3QgaXMgY29tcGxleCB3aGVuXG4gKiBidWlsZC5wYWdlcyBpcyBub3Qgc3BlY2lmaWVkIC0gdGhlIHN5c3RlbSBjYW4ndCBkaXNjb3ZlciB3aGF0IGZpbGVzIGV4aXN0XG4gKiB3aXRob3V0IGZpcnN0IGtub3dpbmcgd2hhdCBVUkxzIHRvIHJlc29sdmUuXG4gKi9cbmV4cG9ydCBjb25zdCByZXNvbHZlVXJsT3B0aW9uOiBSZXNvbHZlUGFnZUFuZFByb3BzT3B0aW9uc0ZuID0gYXN5bmMgZnVuY3Rpb24gX3Jlc29sdmVVcmxPcHRpb24oXG4gIG9wdGlvbnMsXG4gIG9wdGlvbk5hbWUsXG4gIHVybFxuKSB7XG4gIGxldCBjb25maWdOYW1lID0gb3B0aW9uTmFtZSBhcyBzdHJpbmc7XG4gIGlmKG9wdGlvbk5hbWUgPT09IG9wdGlvbnMucGFnZUV4cG9ydE5hbWUpIHtcbiAgICBjb25maWdOYW1lID0gXCJQYWdlXCIgYXMgbmV2ZXI7XG4gIH0gZWxzZSBpZihvcHRpb25OYW1lID09PSBvcHRpb25zLnByb3BzRXhwb3J0TmFtZSkge1xuICAgIGNvbmZpZ05hbWUgPSBcInByb3BzXCIgYXMgbmV2ZXI7XG4gIH0gZWxzZSBpZihvcHRpb25OYW1lID09PSBvcHRpb25zLnJvb3RFeHBvcnROYW1lKSB7XG4gICAgY29uZmlnTmFtZSA9IFwiUm9vdFwiIGFzIG5ldmVyO1xuICB9IGVsc2UgaWYob3B0aW9uTmFtZSA9PT0gb3B0aW9ucy5odG1sRXhwb3J0TmFtZSkge1xuICAgIGNvbmZpZ05hbWUgPSBcIkh0bWxcIiBhcyBuZXZlcjtcbiAgfVxuICBpZighKGNvbmZpZ05hbWUgPT09IFwiUGFnZVwiIHx8IGNvbmZpZ05hbWUgPT09IFwicHJvcHNcIiB8fCBjb25maWdOYW1lID09PSBcIlJvb3RcIiB8fCBjb25maWdOYW1lID09PSBcIkh0bWxcIikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgb3B0aW9uIG5hbWU6ICR7b3B0aW9uTmFtZX1gKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCBvcHRpb25WYWx1ZTogYW55O1xuICAgIHN3aXRjaCAoY29uZmlnTmFtZSkge1xuICAgICAgY2FzZSBcIlBhZ2VcIjpcbiAgICAgICAgb3B0aW9uVmFsdWUgPSBvcHRpb25zLlBhZ2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInByb3BzXCI6XG4gICAgICAgIG9wdGlvblZhbHVlID0gb3B0aW9ucy5wcm9wcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiUm9vdFwiOlxuICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbnMuUm9vdDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiSHRtbFwiOlxuICAgICAgICBvcHRpb25WYWx1ZSA9IG9wdGlvbnMuSHRtbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyB0eXBlOiBcImVycm9yXCIsIGVycm9yOiBuZXcgRXJyb3IoYFVua25vd24gY29uZmlnIG5hbWU6ICR7Y29uZmlnTmFtZX1gKSB9O1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZW9mIG9wdGlvblZhbHVlKSB7XG4gICAgICBjYXNlIFwiZnVuY3Rpb25cIjoge1xuICAgICAgICBjb25zdCBmbiA9IG9wdGlvblZhbHVlO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmbih1cmwpO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwic3VjY2Vzc1wiLCBbY29uZmlnTmFtZV06IHJlc3VsdCB9IGFzIGFueTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwcm9taXNlUmVzdWx0ID0gYXdhaXQgcmVzdWx0O1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9taXNlUmVzdWx0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwic3VjY2Vzc1wiLCBbY29uZmlnTmFtZV06IHByb21pc2VSZXN1bHQgfSBhcyBhbnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6IFwiZXJyb3JcIiwgZXJyb3I6IGVycm9yIGFzIEVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICByZXR1cm4geyB0eXBlOiBcInN1Y2Nlc3NcIiwgW2NvbmZpZ05hbWVdOiBvcHRpb25WYWx1ZSB9IGFzIGFueTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4geyB0eXBlOiBcImVycm9yXCIsIGVycm9yOiBuZXcgRXJyb3IoYCR7Y29uZmlnTmFtZX0gbXVzdCBiZSBzdHJpbmcgb3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nYCkgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyB0eXBlOiBcImVycm9yXCIsIGVycm9yOiBlcnJvciBhcyBFcnJvciB9O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFxRE8sTUFBTSxnQkFBaUQsR0FBQSxlQUFlLGlCQUMzRSxDQUFBLE9BQUEsRUFDQSxZQUNBLEdBQ0EsRUFBQTtBQUNBLEVBQUEsSUFBSSxVQUFhLEdBQUEsVUFBQTtBQUNqQixFQUFHLElBQUEsVUFBQSxLQUFlLFFBQVEsY0FBZ0IsRUFBQTtBQUN4QyxJQUFhLFVBQUEsR0FBQSxNQUFBO0FBQUEsR0FDZixNQUFBLElBQVUsVUFBZSxLQUFBLE9BQUEsQ0FBUSxlQUFpQixFQUFBO0FBQ2hELElBQWEsVUFBQSxHQUFBLE9BQUE7QUFBQSxHQUNmLE1BQUEsSUFBVSxVQUFlLEtBQUEsT0FBQSxDQUFRLGNBQWdCLEVBQUE7QUFDL0MsSUFBYSxVQUFBLEdBQUEsTUFBQTtBQUFBLEdBQ2YsTUFBQSxJQUFVLFVBQWUsS0FBQSxPQUFBLENBQVEsY0FBZ0IsRUFBQTtBQUMvQyxJQUFhLFVBQUEsR0FBQSxNQUFBO0FBQUE7QUFFZixFQUFHLElBQUEsRUFBRSxlQUFlLE1BQVUsSUFBQSxVQUFBLEtBQWUsV0FBVyxVQUFlLEtBQUEsTUFBQSxJQUFVLGVBQWUsTUFBUyxDQUFBLEVBQUE7QUFDdkcsSUFBQSxNQUFNLElBQUksS0FBQSxDQUFNLENBQXdCLHFCQUFBLEVBQUEsVUFBVSxDQUFFLENBQUEsQ0FBQTtBQUFBO0FBRXRELEVBQUksSUFBQTtBQUNGLElBQUksSUFBQSxXQUFBO0FBQ0osSUFBQSxRQUFRLFVBQVk7QUFBQSxNQUNsQixLQUFLLE1BQUE7QUFDSCxRQUFBLFdBQUEsR0FBYyxPQUFRLENBQUEsSUFBQTtBQUN0QixRQUFBO0FBQUEsTUFDRixLQUFLLE9BQUE7QUFDSCxRQUFBLFdBQUEsR0FBYyxPQUFRLENBQUEsS0FBQTtBQUN0QixRQUFBO0FBQUEsTUFDRixLQUFLLE1BQUE7QUFDSCxRQUFBLFdBQUEsR0FBYyxPQUFRLENBQUEsSUFBQTtBQUN0QixRQUFBO0FBQUEsTUFDRixLQUFLLE1BQUE7QUFDSCxRQUFBLFdBQUEsR0FBYyxPQUFRLENBQUEsSUFBQTtBQUN0QixRQUFBO0FBQUEsTUFDRjtBQUNFLFFBQU8sT0FBQSxFQUFFLE1BQU0sT0FBUyxFQUFBLEtBQUEsRUFBTyxJQUFJLEtBQU0sQ0FBQSxDQUFBLHFCQUFBLEVBQXdCLFVBQVUsQ0FBQSxDQUFFLENBQUUsRUFBQTtBQUFBO0FBR25GLElBQUEsUUFBUSxPQUFPLFdBQWE7QUFBQSxNQUMxQixLQUFLLFVBQVksRUFBQTtBQUNmLFFBQUEsTUFBTSxFQUFLLEdBQUEsV0FBQTtBQUNYLFFBQU0sTUFBQSxNQUFBLEdBQVMsR0FBRyxHQUFHLENBQUE7QUFDckIsUUFBSSxJQUFBLE9BQU8sV0FBVyxRQUFVLEVBQUE7QUFDOUIsVUFBQSxPQUFPLEVBQUUsSUFBTSxFQUFBLFNBQUEsRUFBVyxDQUFDLFVBQVUsR0FBRyxNQUFPLEVBQUE7QUFBQTtBQUVqRCxRQUFBLElBQUksa0JBQWtCLE9BQVMsRUFBQTtBQUM3QixVQUFJLElBQUE7QUFDRixZQUFBLE1BQU0sZ0JBQWdCLE1BQU0sTUFBQTtBQUM1QixZQUFJLElBQUEsT0FBTyxrQkFBa0IsUUFBVSxFQUFBO0FBQ3JDLGNBQUEsT0FBTyxFQUFFLElBQU0sRUFBQSxTQUFBLEVBQVcsQ0FBQyxVQUFVLEdBQUcsYUFBYyxFQUFBO0FBQUE7QUFDeEQsbUJBQ08sS0FBTyxFQUFBO0FBQ2QsWUFBTyxPQUFBLEVBQUUsSUFBTSxFQUFBLE9BQUEsRUFBUyxLQUFzQixFQUFBO0FBQUE7QUFDaEQ7QUFFRixRQUFBO0FBQUE7QUFDRixNQUNBLEtBQUssUUFBQTtBQUNILFFBQUEsT0FBTyxFQUFFLElBQU0sRUFBQSxTQUFBLEVBQVcsQ0FBQyxVQUFVLEdBQUcsV0FBWSxFQUFBO0FBQUEsTUFDdEQ7QUFDRSxRQUFBO0FBQUE7QUFFSixJQUFPLE9BQUEsRUFBRSxNQUFNLE9BQVMsRUFBQSxLQUFBLEVBQU8sSUFBSSxLQUFNLENBQUEsQ0FBQSxFQUFHLFVBQVUsQ0FBQSxpREFBQSxDQUFtRCxDQUFFLEVBQUE7QUFBQSxXQUNwRyxLQUFPLEVBQUE7QUFDZCxJQUFPLE9BQUEsRUFBRSxJQUFNLEVBQUEsT0FBQSxFQUFTLEtBQXNCLEVBQUE7QUFBQTtBQUVsRDs7OzsifQ==