Skip to content

Commit d57ce10

Browse files
Move from TSLint (deprecated) to ESLint + Prettier.
1 parent 3399849 commit d57ce10

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1095
-866
lines changed

.eslintrc

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"parser": "@typescript-eslint/parser",
3+
"plugins": [
4+
"@typescript-eslint",
5+
"prettier"
6+
],
7+
"extends": [
8+
"eslint:recommended",
9+
"plugin:@typescript-eslint/eslint-recommended",
10+
"plugin:@typescript-eslint/recommended",
11+
"plugin:prettier/recommended",
12+
"prettier/@typescript-eslint"
13+
],
14+
"rules": {
15+
"prettier/prettier": "error",
16+
"no-fallthrough": "error",
17+
"no-inner-declarations": "off",
18+
"no-prototype-builtins": "off",
19+
"no-unused-expressions": "warn",
20+
"prefer-const": ["warn", {"destructuring": "all"}],
21+
"@typescript-eslint/no-empty-interface": "off",
22+
"@typescript-eslint/no-non-null-assertion": "off",
23+
"@typescript-eslint/no-use-before-define": "off",
24+
"@typescript-eslint/no-explicit-any": "off",
25+
"@typescript-eslint/no-unused-vars": "off",
26+
"@typescript-eslint/explicit-function-return-type": "off",
27+
"@typescript-eslint/quotes": ["error", "double"],
28+
}
29+
}

.prettierrc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"arrowParens": "avoid",
3+
"bracketSpacing": false,
4+
"endOfLine": "lf",
5+
"printWidth": 80,
6+
"proseWrap": "always",
7+
"tabWidth": 2,
8+
"trailingComma": "all",
9+
"semi": false,
10+
"singleQuote": false
11+
}

examples/majordomo/broker.ts

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {Router} from "zeromq"
32

43
import {Service} from "./service"
@@ -10,7 +9,7 @@ export class Broker {
109
services: Map<string, Service> = new Map()
1110
workers: Map<string, Buffer> = new Map()
1211

13-
constructor(address: string = "tcp://127.0.0.1:5555") {
12+
constructor(address = "tcp://127.0.0.1:5555") {
1413
this.address = address
1514
}
1615

@@ -21,14 +20,14 @@ export class Broker {
2120
const loop = async () => {
2221
for await (const [sender, blank, header, ...rest] of this.socket) {
2322
switch (header.toString()) {
24-
case Header.Client:
25-
this.handleClient(sender, ...rest)
26-
break
27-
case Header.Worker:
28-
this.handleWorker(sender, ...rest)
29-
break
30-
default:
31-
console.error(`invalid message header: ${header}`)
23+
case Header.Client:
24+
this.handleClient(sender, ...rest)
25+
break
26+
case Header.Worker:
27+
this.handleWorker(sender, ...rest)
28+
break
29+
default:
30+
console.error(`invalid message header: ${header}`)
3231
}
3332
}
3433
}
@@ -50,22 +49,28 @@ export class Broker {
5049

5150
handleWorker(worker: Buffer, type?: Buffer, ...rest: Buffer[]) {
5251
switch (type && type.toString()) {
53-
case Message.Ready:
54-
const [service] = rest
55-
this.register(worker, service)
56-
break
57-
case Message.Reply:
58-
const [client, blank, ...rep] = rest
59-
this.dispatchReply(worker, client, ...rep)
60-
break
61-
case Message.Heartbeat:
62-
/* Heartbeats not implemented yet. */
63-
break
64-
case Message.Disconnect:
65-
this.deregister(worker)
66-
break
67-
default:
68-
console.error(`invalid worker message type: ${type}`)
52+
case Message.Ready: {
53+
const [service] = rest
54+
this.register(worker, service)
55+
break
56+
}
57+
58+
case Message.Reply: {
59+
const [client, blank, ...rep] = rest
60+
this.dispatchReply(worker, client, ...rep)
61+
break
62+
}
63+
64+
case Message.Heartbeat:
65+
/* Heartbeats not implemented yet. */
66+
break
67+
68+
case Message.Disconnect:
69+
this.deregister(worker)
70+
break
71+
72+
default:
73+
console.error(`invalid worker message type: ${type}`)
6974
}
7075
}
7176

examples/majordomo/index.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
/* tslint:disable: no-console */
21
import {Request} from "zeromq"
32

43
import {Broker} from "./broker"
54
import {Worker} from "./worker"
65

76
async function sleep(msec: number) {
8-
return new Promise((resolve) => setTimeout(resolve, msec))
7+
return new Promise(resolve => setTimeout(resolve, msec))
98
}
109

1110
class TeaWorker extends Worker {
@@ -28,13 +27,12 @@ class CoffeeWorker extends Worker {
2827

2928
const broker = new Broker()
3029

31-
const workers = [
32-
new TeaWorker(),
33-
new CoffeeWorker(),
34-
new TeaWorker(),
35-
]
30+
const workers = [new TeaWorker(), new CoffeeWorker(), new TeaWorker()]
3631

37-
async function request(service: string, ...req: string[]): Promise<undefined | Buffer[]> {
32+
async function request(
33+
service: string,
34+
...req: string[]
35+
): Promise<undefined | Buffer[]> {
3836
const socket = new Request({receiveTimeout: 2000})
3937
socket.connect(broker.address)
4038

@@ -71,7 +69,7 @@ async function main() {
7169
broker.stop()
7270
}
7371

74-
main().catch((err) => {
72+
main().catch(err => {
7573
console.error(err)
7674
process.exit(1)
7775
})

examples/majordomo/service.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {Router} from "zeromq"
32

43
import {Header, Message} from "./types"
@@ -24,16 +23,10 @@ export class Service {
2423

2524
console.log(
2625
`dispatching '${this.name}' ` +
27-
`${client.toString("hex")} <- rep ${worker.toString("hex")}`,
26+
`${client.toString("hex")} <- rep ${worker.toString("hex")}`,
2827
)
2928

30-
await this.socket.send([
31-
client,
32-
null,
33-
Header.Client,
34-
this.name,
35-
...rep,
36-
])
29+
await this.socket.send([client, null, Header.Client, this.name, ...rep])
3730

3831
this.dispatchPending()
3932
}
@@ -46,7 +39,7 @@ export class Service {
4639

4740
console.log(
4841
`dispatching '${this.name}' ` +
49-
`${client.toString("hex")} req -> ${worker.toString("hex")}`,
42+
`${client.toString("hex")} req -> ${worker.toString("hex")}`,
5043
)
5144

5245
await this.socket.send([
@@ -62,13 +55,17 @@ export class Service {
6255
}
6356

6457
register(worker: Buffer) {
65-
console.log(`registered worker ${worker.toString("hex")} for '${this.name}'`)
58+
console.log(
59+
`registered worker ${worker.toString("hex")} for '${this.name}'`,
60+
)
6661
this.workers.set(worker.toString("hex"), worker)
6762
this.dispatchPending()
6863
}
6964

7065
deregister(worker: Buffer) {
71-
console.log(`deregistered worker ${worker.toString("hex")} for '${this.name}'`)
66+
console.log(
67+
`deregistered worker ${worker.toString("hex")} for '${this.name}'`,
68+
)
7269
this.workers.delete(worker.toString("hex"))
7370
this.dispatchPending()
7471
}

examples/majordomo/worker.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
/* tslint:disable: no-console */
21
import {Dealer} from "zeromq"
32

43
import {Header, Message} from "./types"
54

65
export class Worker {
76
address: string
8-
service: string = ""
7+
service = ""
98
socket: Dealer = new Dealer()
109

11-
constructor(address: string = "tcp://127.0.0.1:5555") {
10+
constructor(address = "tcp://127.0.0.1:5555") {
1211
this.address = address
1312
this.socket.connect(address)
1413
}
@@ -17,11 +16,17 @@ export class Worker {
1716
await this.socket.send([null, Header.Worker, Message.Ready, this.service])
1817

1918
const loop = async () => {
20-
for await (const [blank1, header, type, client, blank2, ...req] of this.socket) {
19+
for await (const [blank1, header, type, client, blank2, ...req] of this
20+
.socket) {
2121
const rep = await this.process(...req)
2222
try {
2323
await this.socket.send([
24-
null, Header.Worker, Message.Reply, client, null, ...rep,
24+
null,
25+
Header.Worker,
26+
Message.Reply,
27+
client,
28+
null,
29+
...rep,
2530
])
2631
} catch (err) {
2732
console.error(`unable to send reply for ${this.address}`)
@@ -34,7 +39,12 @@ export class Worker {
3439

3540
async stop() {
3641
if (!this.socket.closed) {
37-
await this.socket.send([null, Header.Worker, Message.Disconnect, this.service])
42+
await this.socket.send([
43+
null,
44+
Header.Worker,
45+
Message.Disconnect,
46+
this.service,
47+
])
3848
this.socket.close()
3949
}
4050
}

examples/queue/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {Dealer} from "zeromq"
32

43
import {Queue} from "./queue"
@@ -25,7 +24,7 @@ async function main() {
2524
}
2625
}
2726

28-
main().catch((err) => {
27+
main().catch(err => {
2928
console.error(err)
3029
process.exit(1)
3130
})

examples/queue/queue.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ export class Queue {
44
queue: any[] = []
55
socket: Socket
66
max: number
7-
sending: boolean = false
7+
sending = false
88

9-
constructor(socket: Socket, max: number = 100) {
9+
constructor(socket: Socket, max = 100) {
1010
this.socket = socket
1111
this.max = max
1212
}

examples/threaded-worker/index.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {Processor} from "./processor"
32

43
async function main() {
@@ -17,10 +16,10 @@ async function transform(processor: Processor, input: string) {
1716
const end = process.hrtime(start)
1817

1918
console.log(`received output '${input}' -> '${output}' in ${end[0]}s`)
20-
console.log(`---`)
19+
console.log("---")
2120
}
2221

23-
main().catch((err) => {
22+
main().catch(err => {
2423
console.error(err)
2524
process.exit(1)
2625
})

examples/threaded-worker/processor.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {cpus} from "os"
32
import {Publisher, Pull, Push} from "zeromq"
43

@@ -16,33 +15,31 @@ export class Processor {
1615

1716
constructor(threads: number = cpus().length) {
1817
console.log(`starting ${threads} worker threads`)
19-
console.log(`---`)
18+
console.log("---")
2019

2120
this.threads = threads
2221
this.init = Promise.all([
2322
this.input.bind("inproc://input"),
2423
this.output.bind("inproc://output"),
2524
this.signal.bind("inproc://signal"),
26-
new Promise((resolve) => setTimeout(resolve, 100)),
25+
new Promise(resolve => setTimeout(resolve, 100)),
2726
])
2827

29-
this.exit = Promise.all([
30-
ThreadedWorker.spawn(this.threads),
31-
])
28+
this.exit = Promise.all([ThreadedWorker.spawn(this.threads)])
3229
}
3330

3431
async process(str: string): Promise<string> {
3532
await this.init
3633

3734
const input = str.split("")
3835
for (const req of input.entries()) {
39-
await this.input.send(req.map((pt) => pt.toString()))
36+
await this.input.send(req.map(pt => pt.toString()))
4037
}
4138

4239
const output: string[] = Array.from({length: input.length})
4340
for await (const [pos, res] of this.output) {
4441
output[parseInt(pos.toString(), 10)] = res.toString()
45-
if (output.every((el) => el !== undefined)) break
42+
if (output.every(el => el !== undefined)) break
4643
}
4744

4845
return output.join("")

examples/threaded-worker/threaded-worker.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* tslint:disable: no-console */
21
import {Worker} from "worker_threads"
32
import * as zmq from "zeromq"
43

@@ -12,7 +11,7 @@ export class ThreadedWorker {
1211
new ThreadedWorker().run()
1312
`
1413

15-
new Worker(src, {eval: true}).on("exit", (code) => {
14+
new Worker(src, {eval: true}).on("exit", code => {
1615
if (code === 0) {
1716
resolve()
1817
} else {
@@ -23,7 +22,7 @@ export class ThreadedWorker {
2322
})
2423

2524
await Promise.all(workers)
26-
console.log(`all workers stopped`)
25+
console.log("all workers stopped")
2726
}
2827

2928
/* Queue only 1 incoming message. */
@@ -81,9 +80,9 @@ export class ThreadedWorker {
8180

8281
for (let i = 0; i < 200000001; i++) {
8382
if (char >= 65 && char <= 90) {
84-
char = (char - 65 + this.shift) % 26 + 65
83+
char = ((char - 65 + this.shift) % 26) + 65
8584
} else if (char >= 97 && char <= 122) {
86-
char = (char - 97 + this.shift) % 26 + 97
85+
char = ((char - 97 + this.shift) % 26) + 97
8786
}
8887
}
8988

0 commit comments

Comments
 (0)