@e-mc/core 0.11.8 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -13
- package/index.d.ts +3 -1
- package/index.js +715 -190
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @e-mc/core
|
|
2
2
|
|
|
3
|
-
* NodeJS
|
|
4
|
-
*
|
|
3
|
+
* NodeJS 18
|
|
4
|
+
* ES2022
|
|
5
5
|
|
|
6
6
|
## General Usage
|
|
7
7
|
|
|
@@ -9,19 +9,22 @@
|
|
|
9
9
|
|
|
10
10
|
## Interface
|
|
11
11
|
|
|
12
|
-
* [View Source](https://www.unpkg.com/@e-mc/types@0.
|
|
12
|
+
* [View Source](https://www.unpkg.com/@e-mc/types@0.12.0/lib/index.d.ts)
|
|
13
13
|
|
|
14
14
|
```typescript
|
|
15
|
-
import type { DataSource, LogStatus } from "./squared";
|
|
15
|
+
import type { DataSource, LogStatus, WorkerAction } from "./squared";
|
|
16
16
|
|
|
17
17
|
import type { IHost, IModule, ModuleConstructor } from "./index";
|
|
18
|
-
import type { CacheOptions, HostInitConfig, JoinQueueOptions, PermissionReadWrite, ResumeThreadOptions, StoreResultOptions, ThreadCountStat } from "./core";
|
|
18
|
+
import type { AddEventListenerOptions, CacheOptions, HostInitConfig, JoinQueueOptions, PermissionReadWrite, ResumeThreadOptions, StoreResultOptions, ThreadCountStat, WorkerChannelError, WorkerChannelResponse } from "./core";
|
|
19
19
|
import type { QueryResult, TimeoutAction } from "./db";
|
|
20
|
-
import type { AddEventListenerOptions } from "./dom";
|
|
21
20
|
import type { LogState, StatusType } from "./logger";
|
|
22
21
|
import type { Settings } from "./node";
|
|
23
22
|
import type { ClientDbSettings, ClientModule, ClientSettings, DbCacheValue, DbCoerceSettings, DbCoerceValue, DbSourceOptions } from "./settings";
|
|
24
23
|
|
|
24
|
+
import type { TransferListItem, Worker, WorkerOptions } from "node:worker_threads";
|
|
25
|
+
|
|
26
|
+
import type * as EventEmitter from "node:events";
|
|
27
|
+
|
|
25
28
|
interface IHost extends IModule {
|
|
26
29
|
restartable: boolean;
|
|
27
30
|
readonly modules: Set<IModule>;
|
|
@@ -64,6 +67,8 @@ interface HostConstructor extends ModuleConstructor {
|
|
|
64
67
|
loadSettings(settings: Settings, permission?: PermissionReadWrite, password?: string): boolean;
|
|
65
68
|
isPermission(value: unknown): value is IPermission;
|
|
66
69
|
createPermission(all?: boolean, freeze?: boolean): IPermission;
|
|
70
|
+
kill(username: string, all: true): number;
|
|
71
|
+
kill(username: string, pid: number | number[]): number;
|
|
67
72
|
kill(username: string, iv: BinaryLike, all: true): number;
|
|
68
73
|
kill(username: string, iv: BinaryLike, pid: number | number[]): number;
|
|
69
74
|
getThreadCount(full: true): ThreadCountStat;
|
|
@@ -139,6 +144,80 @@ interface ClientDbConstructor extends ClientConstructor<IHost, ClientModule> {
|
|
|
139
144
|
new(module?: ClientModule, database?: DataSource[]): IClientDb;
|
|
140
145
|
}
|
|
141
146
|
|
|
147
|
+
interface IWorkerGroup {
|
|
148
|
+
[Symbol.iterator](): IteratorObject<IWorkerChannel, BuiltinIteratorReturn>;
|
|
149
|
+
add(name: string, item: IWorkerChannel, priority?: number): this;
|
|
150
|
+
get(name: string, force?: boolean | number): IWorkerChannel | undefined;
|
|
151
|
+
delete(name: string | IWorkerChannel): boolean;
|
|
152
|
+
free(count?: number): number;
|
|
153
|
+
print(format: "stats" | "errors"): void;
|
|
154
|
+
clear(): void;
|
|
155
|
+
set max(value);
|
|
156
|
+
get max(): number;
|
|
157
|
+
get workers(): IWorkerChannel[];
|
|
158
|
+
get pending(): number;
|
|
159
|
+
get available(): number;
|
|
160
|
+
get errors(): WorkerChannelError[];
|
|
161
|
+
get size(): number;
|
|
162
|
+
get sizeOf(): number;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
interface WorkerGroupConstructor {
|
|
166
|
+
checkTimeout(value: number, active?: boolean): number;
|
|
167
|
+
readonly prototype: IWorkerGroup;
|
|
168
|
+
new(max?: number, locked?: boolean): IWorkerGroup;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
interface IWorkerChannel extends EventEmitter {
|
|
172
|
+
[Symbol.iterator](): IteratorObject<Worker, BuiltinIteratorReturn>;
|
|
173
|
+
sendObject(data: unknown, transferList?: TransferListItem[], callback?: WorkerChannelResponse<unknown>, ...returnArgs: unknown[]): Worker;
|
|
174
|
+
sendBuffer(data: Buffer, shared?: boolean, callback?: WorkerChannelResponse<unknown>, ...returnArgs: unknown[]): Worker | null;
|
|
175
|
+
send(data: unknown, transferList?: TransferListItem[]): Promise<unknown>;
|
|
176
|
+
drop(count?: number): Promise<number>;
|
|
177
|
+
join(group: IWorkerGroup, label?: string): void;
|
|
178
|
+
quit(): void;
|
|
179
|
+
kill(count?: number): Promise<number>;
|
|
180
|
+
lock(): void;
|
|
181
|
+
isEmpty(): boolean;
|
|
182
|
+
set min(value);
|
|
183
|
+
get min(): number;
|
|
184
|
+
set max(value);
|
|
185
|
+
get max(): number;
|
|
186
|
+
set timeoutMs(value);
|
|
187
|
+
get timeoutMs(): number;
|
|
188
|
+
get filename(): string;
|
|
189
|
+
get workers(): Worker[];
|
|
190
|
+
get detached(): boolean;
|
|
191
|
+
get lastAccessed(): Date;
|
|
192
|
+
get timesAccessed(): number;
|
|
193
|
+
get frequencyAccessed(): number;
|
|
194
|
+
get pending(): number;
|
|
195
|
+
get available(): number;
|
|
196
|
+
get size(): number;
|
|
197
|
+
|
|
198
|
+
/* EventEmitter */
|
|
199
|
+
on(event: "error" | "messageerror" | "abort", listener: (err: Error) => void): this;
|
|
200
|
+
on(event: "exit", listener: (exitCode: number) => void): this;
|
|
201
|
+
on(event: "online", listener: () => void): this;
|
|
202
|
+
on(event: "message", listener: (value: any) => void): this;
|
|
203
|
+
on(event: "data", listener: (data: unknown) => void): this;
|
|
204
|
+
on(event: "pass", listener: (data: unknown, transferList: TransferListItem[] | undefined) => void): this;
|
|
205
|
+
once(event: "error" | "messageerror" | "abort", listener: (err: Error) => void): this;
|
|
206
|
+
once(event: "exit", listener: (exitCode: number) => void): this;
|
|
207
|
+
once(event: "online", listener: () => void): this;
|
|
208
|
+
once(event: "message", listener: (value: any) => void): this;
|
|
209
|
+
once(event: "data", listener: (data: unknown) => void): this;
|
|
210
|
+
once(event: "pass", listener: (data: unknown, transferList: TransferListItem[] | undefined) => void): this;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
interface WorkerChannelConstructor {
|
|
214
|
+
create(filename: string, name: string): IWorkerChannel;
|
|
215
|
+
create(filename: string, options?: WorkerOptions, name?: string): IWorkerChannel;
|
|
216
|
+
hasPermission(options?: WorkerAction): boolean;
|
|
217
|
+
readonly prototype: IWorkerChannel;
|
|
218
|
+
new(filename: string, max?: number, timeoutMs?: number): IWorkerChannel;
|
|
219
|
+
}
|
|
220
|
+
|
|
142
221
|
interface IAbortComponent extends AbortController {
|
|
143
222
|
reset(): void;
|
|
144
223
|
get aborted(): boolean;
|
|
@@ -152,9 +231,13 @@ interface AbortComponentConstructor {
|
|
|
152
231
|
}
|
|
153
232
|
|
|
154
233
|
interface IPermission {
|
|
234
|
+
setDiskRead(enabled: boolean): void;
|
|
155
235
|
setDiskRead(pathname?: string | string[], enabled?: boolean): void;
|
|
236
|
+
setDiskWrite(enabled: boolean): void;
|
|
156
237
|
setDiskWrite(pathname?: string | string[], enabled?: boolean): void;
|
|
238
|
+
setUNCRead(enabled: boolean): void;
|
|
157
239
|
setUNCRead(pathname?: string | string[], enabled?: boolean): void;
|
|
240
|
+
setUNCWrite(enabled: boolean): void;
|
|
158
241
|
setUNCWrite(pathname?: string | string[], enabled?: boolean): void;
|
|
159
242
|
getDiskRead(): string | string[];
|
|
160
243
|
getDiskWrite(): string | string[];
|
|
@@ -194,6 +277,9 @@ interface ProcessModule {
|
|
|
194
277
|
max?: number;
|
|
195
278
|
};
|
|
196
279
|
};
|
|
280
|
+
workers?: {
|
|
281
|
+
channel?: { min?: number; max?: number; expires?: number | string };
|
|
282
|
+
};
|
|
197
283
|
limit?: number;
|
|
198
284
|
expires?: number | string;
|
|
199
285
|
};
|
|
@@ -232,13 +318,15 @@ NOTE: **@e-mc/core** is mostly a collection of abstract base classes which canno
|
|
|
232
318
|
|
|
233
319
|
## References
|
|
234
320
|
|
|
235
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
236
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
237
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
238
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
239
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
240
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
241
|
-
- https://www.unpkg.com/@e-mc/types@0.
|
|
321
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/squared.d.ts
|
|
322
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/core.d.ts
|
|
323
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/db.d.ts
|
|
324
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/dom.d.ts
|
|
325
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/logger.d.ts
|
|
326
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/node.d.ts
|
|
327
|
+
- https://www.unpkg.com/@e-mc/types@0.12.0/lib/settings.d.ts
|
|
328
|
+
|
|
329
|
+
* https://www.npmjs.com/package/@types/node
|
|
242
330
|
|
|
243
331
|
## LICENSE
|
|
244
332
|
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { HostConstructor, ModuleConstructor } from '@e-mc/types/lib';
|
|
2
|
-
import type { AbortComponentConstructor, ClientConstructor, ClientDbConstructor, PermissionConstructor } from '@e-mc/types/lib/core';
|
|
2
|
+
import type { AbortComponentConstructor, ClientConstructor, ClientDbConstructor, PermissionConstructor, WorkerChannelConstructor, WorkerGroupConstructor } from '@e-mc/types/lib/core';
|
|
3
3
|
|
|
4
4
|
declare namespace core {
|
|
5
5
|
const Module: ModuleConstructor;
|
|
6
6
|
const Host: HostConstructor;
|
|
7
7
|
const Client: ClientConstructor;
|
|
8
8
|
const ClientDb: ClientDbConstructor;
|
|
9
|
+
const WorkerGroup: WorkerGroupConstructor;
|
|
10
|
+
const WorkerChannel: WorkerChannelConstructor;
|
|
9
11
|
const AbortComponent: AbortComponentConstructor;
|
|
10
12
|
const Permission: PermissionConstructor;
|
|
11
13
|
}
|