UNPKG

inngest

Version:

Official SDK for Inngest.com. Inngest is the reliability layer for modern applications. Inngest combines durable execution, events, and queues into a zero-infra platform with built-in observability.

1 lines 3.94 kB
{"version":3,"file":"os.cjs","names":[],"sources":["../../../src/components/connect/os.ts"],"sourcesContent":["export async function retrieveSystemAttributes() {\n return {\n cpuCores: await retrieveCpuCores(),\n memBytes: await retrieveMemBytes(),\n os: await retrieveOs(),\n };\n}\n\n/**\n * The Deno environment, which is not always available.\n */\ndeclare const Deno: {\n systemMemoryInfo: () => {\n total: number;\n };\n addSignalListener: (signal: string, fn: () => void) => void;\n removeSignalListener: (signal: string, fn: () => void) => void;\n hostname: () => string;\n};\n\nasync function retrieveCpuCores() {\n // Works for Deno, Node, Bun\n try {\n const os = await import(\"node:os\");\n return os.cpus().length;\n } catch (_err) {\n // no-op\n }\n\n // Browser\n try {\n if (navigator && navigator.hardwareConcurrency) {\n return navigator.hardwareConcurrency;\n }\n } catch (_err) {\n // no-op\n }\n\n return 0;\n}\n\nasync function retrieveMemBytes() {\n // Deno\n try {\n if (Deno) {\n return Deno.systemMemoryInfo().total;\n }\n } catch (_err) {\n // no-op\n }\n\n // Node, Bun\n try {\n const os = await import(\"node:os\");\n return os.totalmem();\n } catch (_err) {\n // no-op\n }\n\n return 0;\n}\n\nasync function retrieveOs() {\n // Deno, Node, Bun\n try {\n const os = await import(\"node:os\");\n return os.platform();\n } catch (_err) {\n // no-op\n }\n\n // Browser\n try {\n if (navigator && navigator.platform) {\n return navigator.platform;\n }\n } catch (_err) {\n // no-op\n }\n\n return \"unknown\";\n}\n\nexport function onShutdown(signals: string[], fn: () => void) {\n // Deno\n try {\n if (Deno) {\n // biome-ignore lint/complexity/noForEach: intentional\n signals.forEach((signal) => {\n Deno.addSignalListener(signal, fn);\n });\n return () => {\n // biome-ignore lint/complexity/noForEach: intentional\n signals.forEach((signal) => {\n Deno.removeSignalListener(signal, fn);\n });\n };\n }\n } catch (_err) {\n // no-op\n }\n\n // Node, Bun\n try {\n if (process) {\n // biome-ignore lint/complexity/noForEach: intentional\n signals.forEach((signal) => {\n process.on(signal, fn);\n });\n return () => {\n // biome-ignore lint/complexity/noForEach: intentional\n signals.forEach((signal) => {\n process.removeListener(signal, fn);\n });\n };\n }\n } catch (_err) {\n // no-op\n }\n\n return () => {};\n}\n\nexport async function getHostname() {\n // Deno\n try {\n if (Deno) {\n return Deno.hostname();\n }\n } catch (_err) {\n // no-op\n }\n\n // Node, Bun\n try {\n const os = await import(\"node:os\");\n return os.hostname();\n } catch (_err) {\n // no-op\n }\n\n return \"unknown\";\n}\n"],"mappings":";;AAAA,eAAsB,2BAA2B;AAC/C,QAAO;EACL,UAAU,MAAM,kBAAkB;EAClC,UAAU,MAAM,kBAAkB;EAClC,IAAI,MAAM,YAAY;EACvB;;AAeH,eAAe,mBAAmB;AAEhC,KAAI;AAEF,UADW,MAAM,OAAO,YACd,MAAM,CAAC;UACV,MAAM;AAKf,KAAI;AACF,MAAI,aAAa,UAAU,oBACzB,QAAO,UAAU;UAEZ,MAAM;AAIf,QAAO;;AAGT,eAAe,mBAAmB;AAEhC,KAAI;AACF,MAAI,KACF,QAAO,KAAK,kBAAkB,CAAC;UAE1B,MAAM;AAKf,KAAI;AAEF,UADW,MAAM,OAAO,YACd,UAAU;UACb,MAAM;AAIf,QAAO;;AAGT,eAAe,aAAa;AAE1B,KAAI;AAEF,UADW,MAAM,OAAO,YACd,UAAU;UACb,MAAM;AAKf,KAAI;AACF,MAAI,aAAa,UAAU,SACzB,QAAO,UAAU;UAEZ,MAAM;AAIf,QAAO;;AAGT,SAAgB,WAAW,SAAmB,IAAgB;AAE5D,KAAI;AACF,MAAI,MAAM;AAER,WAAQ,SAAS,WAAW;AAC1B,SAAK,kBAAkB,QAAQ,GAAG;KAClC;AACF,gBAAa;AAEX,YAAQ,SAAS,WAAW;AAC1B,UAAK,qBAAqB,QAAQ,GAAG;MACrC;;;UAGC,MAAM;AAKf,KAAI;AACF,MAAI,SAAS;AAEX,WAAQ,SAAS,WAAW;AAC1B,YAAQ,GAAG,QAAQ,GAAG;KACtB;AACF,gBAAa;AAEX,YAAQ,SAAS,WAAW;AAC1B,aAAQ,eAAe,QAAQ,GAAG;MAClC;;;UAGC,MAAM;AAIf,cAAa;;AAGf,eAAsB,cAAc;AAElC,KAAI;AACF,MAAI,KACF,QAAO,KAAK,UAAU;UAEjB,MAAM;AAKf,KAAI;AAEF,UADW,MAAM,OAAO,YACd,UAAU;UACb,MAAM;AAIf,QAAO"}