UNPKG

foxts

Version:

Opinionated collection of common TypeScript utils by @SukkaW

40 lines (38 loc) 1.44 kB
interface NodeOSLike { cpus(): unknown[]; availableParallelism?: () => number; } interface NavigatorLike { hardwareConcurrency?: number; } /** * Returns the number of available parallelism for the current platform. * * Usage: * * ```js * // with a passed in Node.js os module * import * as os from 'node:os'; * import availableParallelism from 'foxts/available-parallelism'; * * availableParallelism(os); // number * * // In a browser environment, it can read navigator object * import availableParallelism from 'foxts/available-parallelism'; * availableParallelism(navigator); // number * * // You can dynamic import of the Node.js os module * import availableParallelism from 'foxts/available-parallelism'; * await availableParallelism(import('node:os')); // number * * // If you don't pass any arguments, it will automatically detect the environment * import availableParallelism from 'foxts/available-parallelism'; * await availableParallelism(); // number * ``` */ declare function availableParallelism(platform: NodeOSLike | NavigatorLike): number; declare function availableParallelism(asyncNodeOS?: Promise<NodeOSLike>): Promise<number>; declare function isNodeOSLike(platform: unknown): platform is NodeOSLike; declare function isNavigatorLike(platform: unknown): platform is NavigatorLike; export { availableParallelism, isNavigatorLike, isNodeOSLike }; export type { NavigatorLike, NodeOSLike };