vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
25 lines (22 loc) • 4.41 kB
JavaScript
/**
* vite-plugin-react-server
* Copyright (c) Nico Brinkkemper
* MIT License
*/
import { createHash } from 'node:crypto';
const createRollupLikeHash = (content, hashCharacters = "base36") => {
const hash = createHash("sha1");
hash.update(content);
const fullHash = hash.digest("hex");
switch (hashCharacters) {
case "base36":
return parseInt(fullHash.substring(0, 8), 16).toString(36);
case "base64":
return Buffer.from(fullHash.substring(0, 8), "hex").toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
case "hex":
default:
return fullHash.substring(0, 8);
}
};
export { createRollupLikeHash };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlUm9sbHVwTGlrZUhhc2guanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9jb25maWcvY3JlYXRlUm9sbHVwTGlrZUhhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuXG4vKipcbiAqIENvbnRlbnQtYWRkcmVzc2VkIGhhc2ggZm9yIGNsaWVudC1jb21wb25lbnQgbW9kdWxlIElEcyB0aGF0IG1pbWljcyBSb2xsdXAnc1xuICogYGhhc2hDaGFyYWN0ZXJzYCBzZW1hbnRpY3MuIFVzZWQgdG8gZ2l2ZSBldmVyeSBob3N0ZWQgY2xpZW50IG1vZHVsZSBhIHN0YWJsZSxcbiAqIHNvdXJjZS1jb250ZW50LWRlcml2ZWQgc3VmZml4IHNvIHRoZSBidWlsZCdzIGVtaXR0ZWQgY2h1bmsgYW5kIHRoZSByZWdpc3RlcmVkXG4gKiBjbGllbnQgcmVmZXJlbmNlIGFncmVlIG9uIHRoZSBzYW1lIGZpbGVuYW1lIGFjcm9zcyBydW5zIGFuZCBhY3Jvc3MgdGhlXG4gKiB0cmFuc2Zvcm1lciAvIGJ1aWxkIC8gU1NHIHBpcGVsaW5lcy5cbiAqXG4gKiBIYXNoZXMgdGhlIGlucHV0IHdpdGggc2hhMSwgdGhlbiB0cnVuY2F0ZXMgdGhlIGZpcnN0IDggaGV4IGNoYXJhY3RlcnMgYW5kXG4gKiByZS1lbmNvZGVzIHRoZW0gaW50byBvbmUgb2YgdGhyZWUgY2hhcmFjdGVyIHNldHM6XG4gKiAgIC0gYGJhc2UzNmAgKGRlZmF1bHQpOiBoZXggcGFyc2VkIGFzIGludCB0aGVuIGAudG9TdHJpbmcoMzYpYCDigJQgUm9sbHVwJ3NcbiAqICAgICBkZWZhdWx0OyBzaG9ydCwgZmlsZW5hbWUtc2FmZSwgbm8gc3BlY2lhbCBjaGFyYWN0ZXJzLlxuICogICAtIGBiYXNlNjRgOiBmaXJzdCA4IGhleCBjaGFycyBkZWNvZGVkIHRvIGJ5dGVzIGFuZCBiYXNlNjQtZW5jb2RlZCB3aXRoXG4gKiAgICAgVVJMLXNhZmUgc3Vic3RpdHV0aW9ucyAoYCtg4oaSYC1gLCBgL2DihpJgX2AsIGA9YCBzdHJpcHBlZCkuXG4gKiAgIC0gYGhleGA6IHJhdyBmaXJzdCA4IGhleCBjaGFyYWN0ZXJzLlxuICpcbiAqIGBiYXNlMzZgIGlzIHRoZSBkZWZhdWx0IGJlY2F1c2UgaXQgbWF0Y2hlcyBSb2xsdXAncyBvd24gZGVmYXVsdCBhbmQgcHJvZHVjZXNcbiAqIHRoZSBzaG9ydGVzdCBoYXNoIGZvciB0aGUgc2FtZSBpbnB1dCBzcGFjZSwgd2hpY2gga2VlcHMgZ2VuZXJhdGVkIG1vZHVsZSBJRHNcbiAqIGNvbXBhY3QgaW4gc291cmNlIG1hcHMgYW5kIGltcG9ydCBncmFwaHMuXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVSb2xsdXBMaWtlSGFzaCA9IChcbiAgY29udGVudDogc3RyaW5nLFxuICBoYXNoQ2hhcmFjdGVyczogXCJiYXNlMzZcIiB8IFwiYmFzZTY0XCIgfCBcImhleFwiID0gXCJiYXNlMzZcIixcbikgPT4ge1xuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaChcInNoYTFcIik7XG4gIGhhc2gudXBkYXRlKGNvbnRlbnQpO1xuICBjb25zdCBmdWxsSGFzaCA9IGhhc2guZGlnZXN0KFwiaGV4XCIpO1xuXG4gIC8vIEFwcGx5IHRoZSBzYW1lIGNoYXJhY3RlciBzZXQgbG9naWMgYXMgUm9sbHVwXG4gIHN3aXRjaCAoaGFzaENoYXJhY3RlcnMpIHtcbiAgICBjYXNlIFwiYmFzZTM2XCI6XG4gICAgICAvLyBDb252ZXJ0IGhleCB0byBiYXNlMzYgKDAtOSwgYS16KVxuICAgICAgcmV0dXJuIHBhcnNlSW50KGZ1bGxIYXNoLnN1YnN0cmluZygwLCA4KSwgMTYpLnRvU3RyaW5nKDM2KTtcbiAgICBjYXNlIFwiYmFzZTY0XCI6XG4gICAgICAvLyBDb252ZXJ0IHRvIGJhc2U2NC1saWtlIGZvcm1hdCAoQS1aLCBhLXosIDAtOSwgLSwgXylcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShmdWxsSGFzaC5zdWJzdHJpbmcoMCwgOCksIFwiaGV4XCIpXG4gICAgICAgIC50b1N0cmluZyhcImJhc2U2NFwiKVxuICAgICAgICAucmVwbGFjZSgvXFwrL2csIFwiLVwiKVxuICAgICAgICAucmVwbGFjZSgvXFwvL2csIFwiX1wiKVxuICAgICAgICAucmVwbGFjZSgvPS9nLCBcIlwiKTtcbiAgICBjYXNlIFwiaGV4XCI6XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIFJldHVybiBoZXggZm9ybWF0XG4gICAgICByZXR1cm4gZnVsbEhhc2guc3Vic3RyaW5nKDAsIDgpO1xuICB9XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFxQk8sTUFBTSxvQkFBdUIsR0FBQSxDQUNsQyxPQUNBLEVBQUEsY0FBQSxHQUE4QyxRQUMzQyxLQUFBO0FBQ0gsRUFBTSxNQUFBLElBQUEsR0FBTyxXQUFXLE1BQU0sQ0FBQTtBQUM5QixFQUFBLElBQUEsQ0FBSyxPQUFPLE9BQU8sQ0FBQTtBQUNuQixFQUFNLE1BQUEsUUFBQSxHQUFXLElBQUssQ0FBQSxNQUFBLENBQU8sS0FBSyxDQUFBO0FBR2xDLEVBQUEsUUFBUSxjQUFnQjtBQUFBLElBQ3RCLEtBQUssUUFBQTtBQUVILE1BQU8sT0FBQSxRQUFBLENBQVMsU0FBUyxTQUFVLENBQUEsQ0FBQSxFQUFHLENBQUMsQ0FBRyxFQUFBLEVBQUUsQ0FBRSxDQUFBLFFBQUEsQ0FBUyxFQUFFLENBQUE7QUFBQSxJQUMzRCxLQUFLLFFBQUE7QUFFSCxNQUFPLE9BQUEsTUFBQSxDQUFPLEtBQUssUUFBUyxDQUFBLFNBQUEsQ0FBVSxHQUFHLENBQUMsQ0FBQSxFQUFHLEtBQUssQ0FBQSxDQUMvQyxRQUFTLENBQUEsUUFBUSxFQUNqQixPQUFRLENBQUEsS0FBQSxFQUFPLEdBQUcsQ0FDbEIsQ0FBQSxPQUFBLENBQVEsT0FBTyxHQUFHLENBQUEsQ0FDbEIsT0FBUSxDQUFBLElBQUEsRUFBTSxFQUFFLENBQUE7QUFBQSxJQUNyQixLQUFLLEtBQUE7QUFBQSxJQUNMO0FBRUUsTUFBTyxPQUFBLFFBQUEsQ0FBUyxTQUFVLENBQUEsQ0FBQSxFQUFHLENBQUMsQ0FBQTtBQUFBO0FBRXBDOzs7OyJ9