Skip to content

Commit 08c203f

Browse files
committed
docs: add typedoc
1 parent 9cd7a7d commit 08c203f

File tree

13 files changed

+122
-94
lines changed

13 files changed

+122
-94
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ target
44
.tmp
55
test.js
66

7+
out
8+
temp
9+
dist
10+
etc
11+
docs
12+
13+
package-lock.json
714
js/**/*.js
15+
js/**/*.js.map
16+
js/**/*.d.ts
17+
js/tsdoc-metadata.json
818
!js/addon.js
919
test.ts

__test__/dgram.spec.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import * as path from 'path';
22
import * as fs from 'fs';
3+
import * as os from 'os';
34
import { DgramSocket } from '../js/index';
4-
import { kTmp, sliently, createDefer } from './util';
5+
import { kTmp, silently, createDefer } from './util';
56

67
const kServerPath = path.resolve(kTmp, './server.sock');
78
const kClientPath = path.resolve(kTmp, './client.sock');
@@ -11,11 +12,11 @@ const emptyFn = () => {};
1112

1213
describe('DgramSocket', () => {
1314
beforeAll(() => {
14-
sliently(() => fs.mkdirSync(kTmp));
15+
silently(() => fs.mkdirSync(kTmp));
1516
});
1617
beforeEach(async () => {
17-
sliently(() => fs.unlinkSync(kServerPath));
18-
sliently(() => fs.unlinkSync(kClientPath));
18+
silently(() => fs.unlinkSync(kServerPath));
19+
silently(() => fs.unlinkSync(kClientPath));
1920
});
2021

2122
it('should work', async () => {
@@ -288,13 +289,15 @@ describe('DgramSocket', () => {
288289
it('shoud set/send recv/send buffer size', () => {
289290
const server = new DgramSocket();
290291

291-
const size = 511;
292+
const size = 10000;
293+
const expectedSize = os.platform() === 'linux' ? size * 2 : size;
294+
292295

293296
server.setRecvBufferSize(size);
294-
expect(server.getRecvBufferSize()).toBe(size);
297+
expect(server.getRecvBufferSize()).toBe(expectedSize);
295298

296299
server.setSendBufferSize(size);
297-
expect(server.getSendBufferSize()).toBe(size);
300+
expect(server.getSendBufferSize()).toBe(expectedSize);
298301

299302
server.close();
300303
});

__test__/seqpacket.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as path from 'path';
22
import * as fs from 'fs';
33
import { SeqpacketSocket, SeqpacketServer } from '../js/seqpacket';
4-
import { kTmp, sliently, createDefer, } from './util';
4+
import { kTmp, silently, createDefer, } from './util';
55

66
const kServerpath = path.resolve(kTmp, './seqpacket_server.sock');
77

@@ -39,10 +39,10 @@ async function createTestPair(
3939

4040
describe('SeqpacketSocket', () => {
4141
beforeAll(() => {
42-
sliently(() => fs.mkdirSync(kTmp));
42+
silently(() => fs.mkdirSync(kTmp));
4343
});
4444
beforeEach(async () => {
45-
sliently(() => fs.unlinkSync(kServerpath));
45+
silently(() => fs.unlinkSync(kServerpath));
4646
});
4747

4848
it('should emit "close"', async () => {

__test__/util.js

Lines changed: 0 additions & 33 deletions
This file was deleted.

__test__/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export function wait(t: number) {
1010
})
1111
}
1212

13-
export function sliently(fn: any) {
13+
export function silently(fn: any) {
1414
try { fn() } catch (_) { }
1515
}
1616

js/dgram.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,17 @@ import {
1313
} from './addon';
1414

1515
type FnRecv = (err: undefined | Error, buf: Buffer) => void;
16-
type FnSend = (err: undefined | Error) => void;
16+
export type SendCb = (err: undefined | Error) => void;
1717

1818
function wrapSocket(obj: DgramSocket) {
1919
obj.emit = obj.emit.bind(obj);
2020
dgramCreateSocket(obj);
2121
}
2222

23+
/**
24+
* DgramSocket docs
25+
* @public
26+
*/
2327
export class DgramSocket extends EventEmitter {
2428
private closed: boolean = false;
2529

@@ -50,17 +54,35 @@ export class DgramSocket extends EventEmitter {
5054
}
5155
}
5256

57+
/**
58+
* Returns the average of two numbers.
59+
*
60+
* @remarks
61+
* This method is part of the {@link core-library#Statistics | Statistics subsystem}.
62+
*
63+
* @param x - The first input number
64+
* @param y - The second input number
65+
* @returns The arithmetic mean of `x` and `y`
66+
*/
5367
bind(socketPath: string) {
5468
this.checkClosed();
5569
dgramBind(this, socketPath);
5670
}
5771

72+
/**
73+
* TODO sendTo
74+
* @param buf
75+
* @param offset
76+
* @param length
77+
* @param destPath
78+
* @param onWrite
79+
*/
5880
sendTo(
5981
buf: Buffer,
6082
offset: number,
6183
length: number,
6284
destPath: string,
63-
onWrite?: FnSend
85+
onWrite?: SendCb
6486
) {
6587
this.checkClosed();
6688
dgramSendTo(this, buf, offset, length, destPath, onWrite);

js/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export { DgramSocket } from './dgram'
2-
export { SeqpacketSocket, SeqpacketServer } from './seqpacket'
1+
export { SendCb, DgramSocket } from './dgram'
2+
export { NotifyCb, SeqpacketSocket, SeqpacketServer } from './seqpacket'

js/seqpacket.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import {
1111
seqWrite,
1212
} from './addon'
1313

14-
// type ConnectionCb = (socket: SeqpacketSocket, addr: string) => void;
15-
type NotifyCb = () => void;
14+
export type NotifyCb = () => void;
1615

1716
function wrapSocket(obj: EventEmitter, fd?: number) {
1817
obj.emit = obj.emit.bind(obj);
1918
seqCreateSocket(obj, fd);
2019
}
2120

21+
/**
22+
* TODO add docs
23+
*/
2224
export class SeqpacketServer extends EventEmitter {
2325
private closed: boolean = false
2426

@@ -71,6 +73,9 @@ export class SeqpacketServer extends EventEmitter {
7173
// }
7274
}
7375

76+
/**
77+
* TODO add docs
78+
*/
7479
export class SeqpacketSocket extends EventEmitter {
7580
private destroyed: boolean = false
7681
private connectCb?: NotifyCb;

package.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
{
22
"name": "unix-socket",
33
"version": "0.0.0",
4-
"main": "lib/index.js",
5-
"types": "lib/index.d.ts",
4+
"main": "js/index.js",
5+
"types": "js/index.d.ts",
66
"scripts": {
77
"artifacts": "napi artifacts",
88
"build": "napi build --platform --js false --dts js/addon.d.ts && npm run build:ts",
99
"build:release": "napi build --platform --release --js false --dts js/addon.d.ts && npm run build:ts",
10-
"build:ts": "tsc js/*.ts",
10+
"build:ts": "tsc -p tsconfig.json",
11+
"check_mem": "node --max-old-space-size=128 scripts/dgram_memory.js",
12+
"doc": "typedoc --excludePrivate --excludeInternal --excludeExternals js/index.ts",
1113
"prepublishOnly": "napi prepublish -t npm",
1214
"test": "jest --testRegex '__test__/(.+).spec.ts' --runInBand",
1315
"test:dumb": "TERM=dumb npm run test",
14-
"check_mem": "node --max-old-space-size=128 scripts/dgram_memory.js",
1516
"version": "napi version"
1617
},
1718
"napi": {
@@ -25,10 +26,11 @@
2526
"license": "MIT",
2627
"devDependencies": {
2728
"@napi-rs/cli": "^2.6.2",
28-
"@types/jest": "^27.4.1",
29+
"@types/jest": "^27.5.0",
30+
"@types/node": "^17.0.31",
2931
"jest": "^27.5.1",
30-
"jsdoc": "^3.6.10",
3132
"ts-jest": "^27.1.4",
33+
"typedoc": "^0.22.15",
3234
"typescript": "^4.6.3"
3335
},
3436
"engines": {

src/dgram.rs

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -168,21 +168,6 @@ impl DgramSocketWrap {
168168
Ok(())
169169
}
170170

171-
fn emit_error(&mut self, error: napi::Error) {
172-
let env = self.env;
173-
174-
env
175-
.run_in_scope(|| {
176-
let event = env.create_string("_error").unwrap();
177-
let error = self.env.create_error(error).unwrap();
178-
self
179-
.emitter.emit(&[event.into_unknown(), error.into_unknown()])
180-
.unwrap();
181-
Ok(())
182-
})
183-
.unwrap();
184-
}
185-
186171
fn start_recv(&mut self, env: Env) -> Result<()> {
187172
let uv_loop = get_loop(&env)?;
188173

@@ -409,6 +394,7 @@ impl DgramSocketWrap {
409394

410395
let event = env.create_string("close")?;
411396
self.emitter.emit(&[event.into_unknown()])?;
397+
self.emitter.unref()?;
412398

413399
Ok(())
414400
}
@@ -527,6 +513,7 @@ extern "C" fn on_event(handle: *mut sys::uv_poll_t, status: i32, events: i32) {
527513
extern "C" fn on_close(handle: *mut sys::uv_handle_t) {
528514
unsafe {
529515
let handle = Box::from_raw(handle);
530-
Box::from_raw(handle.data as *mut HandleData);
516+
let mut data = Box::from_raw(handle.data as *mut HandleData);
517+
data.unref().unwrap();
531518
};
532519
}

0 commit comments

Comments
 (0)