Software zum Installieren eines Smart-Mirror Frameworks , zum Nutzen von hochschulrelevanten Informationen, auf einem Raspberry-Pi.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

worker_threads.d.ts 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. declare module 'worker_threads' {
  2. import { Context } from 'vm';
  3. import EventEmitter = require('events');
  4. import { Readable, Writable } from 'stream';
  5. import { URL } from 'url';
  6. import { FileHandle } from 'fs/promises';
  7. const isMainThread: boolean;
  8. const parentPort: null | MessagePort;
  9. const resourceLimits: ResourceLimits;
  10. const SHARE_ENV: unique symbol;
  11. const threadId: number;
  12. const workerData: any;
  13. class MessageChannel {
  14. readonly port1: MessagePort;
  15. readonly port2: MessagePort;
  16. }
  17. type TransferListItem = ArrayBuffer | MessagePort | FileHandle;
  18. class MessagePort extends EventEmitter {
  19. close(): void;
  20. postMessage(value: any, transferList?: ReadonlyArray<TransferListItem>): void;
  21. ref(): void;
  22. unref(): void;
  23. start(): void;
  24. addListener(event: "close", listener: () => void): this;
  25. addListener(event: "message", listener: (value: any) => void): this;
  26. addListener(event: "messageerror", listener: (error: Error) => void): this;
  27. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  28. emit(event: "close"): boolean;
  29. emit(event: "message", value: any): boolean;
  30. emit(event: "messageerror", error: Error): boolean;
  31. emit(event: string | symbol, ...args: any[]): boolean;
  32. on(event: "close", listener: () => void): this;
  33. on(event: "message", listener: (value: any) => void): this;
  34. on(event: "messageerror", listener: (error: Error) => void): this;
  35. on(event: string | symbol, listener: (...args: any[]) => void): this;
  36. once(event: "close", listener: () => void): this;
  37. once(event: "message", listener: (value: any) => void): this;
  38. once(event: "messageerror", listener: (error: Error) => void): this;
  39. once(event: string | symbol, listener: (...args: any[]) => void): this;
  40. prependListener(event: "close", listener: () => void): this;
  41. prependListener(event: "message", listener: (value: any) => void): this;
  42. prependListener(event: "messageerror", listener: (error: Error) => void): this;
  43. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  44. prependOnceListener(event: "close", listener: () => void): this;
  45. prependOnceListener(event: "message", listener: (value: any) => void): this;
  46. prependOnceListener(event: "messageerror", listener: (error: Error) => void): this;
  47. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  48. removeListener(event: "close", listener: () => void): this;
  49. removeListener(event: "message", listener: (value: any) => void): this;
  50. removeListener(event: "messageerror", listener: (error: Error) => void): this;
  51. removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
  52. off(event: "close", listener: () => void): this;
  53. off(event: "message", listener: (value: any) => void): this;
  54. off(event: "messageerror", listener: (error: Error) => void): this;
  55. off(event: string | symbol, listener: (...args: any[]) => void): this;
  56. }
  57. interface WorkerOptions {
  58. /**
  59. * List of arguments which would be stringified and appended to
  60. * `process.argv` in the worker. This is mostly similar to the `workerData`
  61. * but the values will be available on the global `process.argv` as if they
  62. * were passed as CLI options to the script.
  63. */
  64. argv?: any[];
  65. env?: NodeJS.Dict<string> | typeof SHARE_ENV;
  66. eval?: boolean;
  67. workerData?: any;
  68. stdin?: boolean;
  69. stdout?: boolean;
  70. stderr?: boolean;
  71. execArgv?: string[];
  72. resourceLimits?: ResourceLimits;
  73. /**
  74. * Additional data to send in the first worker message.
  75. */
  76. transferList?: TransferListItem[];
  77. trackUnmanagedFds?: boolean;
  78. }
  79. interface ResourceLimits {
  80. /**
  81. * The maximum size of a heap space for recently created objects.
  82. */
  83. maxYoungGenerationSizeMb?: number;
  84. /**
  85. * The maximum size of the main heap in MB.
  86. */
  87. maxOldGenerationSizeMb?: number;
  88. /**
  89. * The size of a pre-allocated memory range used for generated code.
  90. */
  91. codeRangeSizeMb?: number;
  92. /**
  93. * The default maximum stack size for the thread. Small values may lead to unusable Worker instances.
  94. * @default 4
  95. */
  96. stackSizeMb?: number;
  97. }
  98. class Worker extends EventEmitter {
  99. readonly stdin: Writable | null;
  100. readonly stdout: Readable;
  101. readonly stderr: Readable;
  102. readonly threadId: number;
  103. readonly resourceLimits?: ResourceLimits;
  104. /**
  105. * @param filename The path to the Worker’s main script or module.
  106. * Must be either an absolute path or a relative path (i.e. relative to the current working directory) starting with ./ or ../,
  107. * or a WHATWG URL object using file: protocol. If options.eval is true, this is a string containing JavaScript code rather than a path.
  108. */
  109. constructor(filename: string | URL, options?: WorkerOptions);
  110. postMessage(value: any, transferList?: ReadonlyArray<TransferListItem>): void;
  111. ref(): void;
  112. unref(): void;
  113. /**
  114. * Stop all JavaScript execution in the worker thread as soon as possible.
  115. * Returns a Promise for the exit code that is fulfilled when the `exit` event is emitted.
  116. */
  117. terminate(): Promise<number>;
  118. /**
  119. * Returns a readable stream for a V8 snapshot of the current state of the Worker.
  120. * See [`v8.getHeapSnapshot()`][] for more details.
  121. *
  122. * If the Worker thread is no longer running, which may occur before the
  123. * [`'exit'` event][] is emitted, the returned `Promise` will be rejected
  124. * immediately with an [`ERR_WORKER_NOT_RUNNING`][] error
  125. */
  126. getHeapSnapshot(): Promise<Readable>;
  127. addListener(event: "error", listener: (err: Error) => void): this;
  128. addListener(event: "exit", listener: (exitCode: number) => void): this;
  129. addListener(event: "message", listener: (value: any) => void): this;
  130. addListener(event: "messageerror", listener: (error: Error) => void): this;
  131. addListener(event: "online", listener: () => void): this;
  132. addListener(event: string | symbol, listener: (...args: any[]) => void): this;
  133. emit(event: "error", err: Error): boolean;
  134. emit(event: "exit", exitCode: number): boolean;
  135. emit(event: "message", value: any): boolean;
  136. emit(event: "messageerror", error: Error): boolean;
  137. emit(event: "online"): boolean;
  138. emit(event: string | symbol, ...args: any[]): boolean;
  139. on(event: "error", listener: (err: Error) => void): this;
  140. on(event: "exit", listener: (exitCode: number) => void): this;
  141. on(event: "message", listener: (value: any) => void): this;
  142. on(event: "messageerror", listener: (error: Error) => void): this;
  143. on(event: "online", listener: () => void): this;
  144. on(event: string | symbol, listener: (...args: any[]) => void): this;
  145. once(event: "error", listener: (err: Error) => void): this;
  146. once(event: "exit", listener: (exitCode: number) => void): this;
  147. once(event: "message", listener: (value: any) => void): this;
  148. once(event: "messageerror", listener: (error: Error) => void): this;
  149. once(event: "online", listener: () => void): this;
  150. once(event: string | symbol, listener: (...args: any[]) => void): this;
  151. prependListener(event: "error", listener: (err: Error) => void): this;
  152. prependListener(event: "exit", listener: (exitCode: number) => void): this;
  153. prependListener(event: "message", listener: (value: any) => void): this;
  154. prependListener(event: "messageerror", listener: (error: Error) => void): this;
  155. prependListener(event: "online", listener: () => void): this;
  156. prependListener(event: string | symbol, listener: (...args: any[]) => void): this;
  157. prependOnceListener(event: "error", listener: (err: Error) => void): this;
  158. prependOnceListener(event: "exit", listener: (exitCode: number) => void): this;
  159. prependOnceListener(event: "message", listener: (value: any) => void): this;
  160. prependOnceListener(event: "messageerror", listener: (error: Error) => void): this;
  161. prependOnceListener(event: "online", listener: () => void): this;
  162. prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this;
  163. removeListener(event: "error", listener: (err: Error) => void): this;
  164. removeListener(event: "exit", listener: (exitCode: number) => void): this;
  165. removeListener(event: "message", listener: (value: any) => void): this;
  166. removeListener(event: "messageerror", listener: (error: Error) => void): this;
  167. removeListener(event: "online", listener: () => void): this;
  168. removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
  169. off(event: "error", listener: (err: Error) => void): this;
  170. off(event: "exit", listener: (exitCode: number) => void): this;
  171. off(event: "message", listener: (value: any) => void): this;
  172. off(event: "messageerror", listener: (error: Error) => void): this;
  173. off(event: "online", listener: () => void): this;
  174. off(event: string | symbol, listener: (...args: any[]) => void): this;
  175. }
  176. /**
  177. * Mark an object as not transferable.
  178. * If `object` occurs in the transfer list of a `port.postMessage()` call, it will be ignored.
  179. *
  180. * In particular, this makes sense for objects that can be cloned, rather than transferred,
  181. * and which are used by other objects on the sending side. For example, Node.js marks
  182. * the `ArrayBuffer`s it uses for its Buffer pool with this.
  183. *
  184. * This operation cannot be undone.
  185. */
  186. function markAsUntransferable(object: object): void;
  187. /**
  188. * Transfer a `MessagePort` to a different `vm` Context. The original `port`
  189. * object will be rendered unusable, and the returned `MessagePort` instance will
  190. * take its place.
  191. *
  192. * The returned `MessagePort` will be an object in the target context, and will
  193. * inherit from its global `Object` class. Objects passed to the
  194. * `port.onmessage()` listener will also be created in the target context
  195. * and inherit from its global `Object` class.
  196. *
  197. * However, the created `MessagePort` will no longer inherit from
  198. * `EventEmitter`, and only `port.onmessage()` can be used to receive
  199. * events using it.
  200. */
  201. function moveMessagePortToContext(port: MessagePort, context: Context): MessagePort;
  202. /**
  203. * Receive a single message from a given `MessagePort`. If no message is available,
  204. * `undefined` is returned, otherwise an object with a single `message` property
  205. * that contains the message payload, corresponding to the oldest message in the
  206. * `MessagePort`’s queue.
  207. */
  208. function receiveMessageOnPort(port: MessagePort): { message: any } | undefined;
  209. }