storybook
Version:
Storybook: Develop, document, and test UI components in isolation
75 lines (71 loc) • 2.64 kB
JavaScript
import CJS_COMPAT_NODE_URL_3za304dh1il from 'node:url';
import CJS_COMPAT_NODE_PATH_3za304dh1il from 'node:path';
import CJS_COMPAT_NODE_MODULE_3za304dh1il from "node:module";
var __filename = CJS_COMPAT_NODE_URL_3za304dh1il.fileURLToPath(import.meta.url);
var __dirname = CJS_COMPAT_NODE_PATH_3za304dh1il.dirname(__filename);
var require = CJS_COMPAT_NODE_MODULE_3za304dh1il.createRequire(import.meta.url);
// ------------------------------------------------------------
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
// ------------------------------------------------------------
import {
errorToErrorLike
} from "../../../../../_node-chunks/chunk-VKFJLSIZ.js";
import "../../../../../_node-chunks/chunk-BSSMDXLU.js";
import "../../../../../_node-chunks/chunk-57SVN5FU.js";
// src/shared/open-service/services/docgen/worker/docgen-worker.ts
import { parentPort } from "node:worker_threads";
import { pathToFileURL } from "node:url";
if (!parentPort)
throw new Error("docgen worker must be run as a worker thread");
var port = parentPort, seedProvider = async () => {
}, providerPromise;
async function composeProvider(descriptors) {
let provider = seedProvider;
for (let descriptor of descriptors) {
let mod = await import(pathToFileURL(descriptor.moduleSpecifier).href);
if (typeof mod.createDocgenProvider != "function")
throw new Error(
`docgen worker module "${descriptor.moduleSpecifier}" does not export createDocgenProvider`
);
provider = (await mod.createDocgenProvider())(provider);
}
return provider;
}
async function handleInit(descriptors) {
try {
providerPromise = composeProvider(descriptors), await providerPromise, port.postMessage({ type: "init" });
} catch (error) {
providerPromise = void 0, port.postMessage({
type: "init",
error: errorToErrorLike(error)
});
}
}
async function handleExtract(id, entry) {
try {
if (!providerPromise)
throw new Error("docgen worker received an extract request before init");
let payload = await (await providerPromise)({ entry });
port.postMessage({ type: "extract", id, payload });
} catch (error) {
port.postMessage({
type: "extract",
id,
error: errorToErrorLike(error)
});
}
}
port.on("message", (msg) => {
switch (msg.type) {
case "init":
handleInit(msg.descriptors);
return;
case "extract":
handleExtract(msg.id, msg.entry);
return;
default: {
let _exhaustive = msg;
throw new Error(`docgen worker received unknown message: ${JSON.stringify(_exhaustive)}`);
}
}
});