Skip to content

Commit 93c782e

Browse files
committed
Add more tests and docs.
1 parent 142fedd commit 93c782e

File tree

4 files changed

+108
-38
lines changed

4 files changed

+108
-38
lines changed

README.md

Lines changed: 70 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,102 @@
1-
# Ginkgoch Buffer Reader for NodeJS
2-
This is a NodeJS library to help to read [Buffer](https://cn.nodejs.org/api/buffer.html) instance easily.
1+
# Ginkgoch Buffer IO for NodeJS
2+
This is a NodeJS library to help to read/write [Buffer](https://cn.nodejs.org/api/buffer.html) instance easily.
33

44
## Install
55
```terminal
6-
npm i ginkgoch-buffer-reader --save
6+
npm i ginkgoch-buffer-io --save
77
```
88

99
## Test
1010
```terminal
1111
npm test
1212
```
1313

14-
## Example
14+
## BufferReader Example
1515

16-
**Prepare for data**
16+
**Without `Ginkgoch Buffer I/O`**
1717
```js
18-
const buffer = Buffer.alloc(4);
18+
const buffer = Buffer.alloc(16);
1919
buffer.writeInt8(8, 0);
2020
buffer.writeInt16LE(16, 1);
2121
buffer.writeUInt32LE(32, 3);
2222
buffer.writeDoubleBE(54.8765, 7);
23-
```
2423

25-
**Without `Ginkgoch Buffer Reader`**
26-
```js
2724
let i1 = buffer.readInt8(0);
2825
let i2 = buffer.readInt16LE(1);
2926
let i3 = buffer.readUInt32LE(3);
3027
let i4 = buffer.readDoubleBE(7);
3128
```
3229

33-
**With `Ginkgoch Buffer Reader`**
30+
**With `Ginkgoch Buffer I/O`**
3431
It automatically manages the read position for you. You don't need to remember the position and the boring type length calculations.
3532
```js
36-
const BufferReader = require('ginkgoch-buffer-reader');
37-
let br = new BufferReader(buffer);
33+
const { BufferReader, BufferWriter } = require('ginkgoch-buffer-io');
34+
35+
const buffer = Buffer.alloc(16);
36+
const bw = new BufferWriter(buffer);
37+
bw.writeInt8(8);
38+
bw.writeInt16(16);
39+
bw.writeUInt32(32);
40+
bw.writeDoubleBE(54.8765);
41+
42+
const br = new BufferReader(buffer);
3843
let i1 = br.nextInt8();
39-
let i2 = br.nextInt16LE();
40-
let i3 = br.nextUInt32LE();
44+
let i2 = br.nextInt16();
45+
let i3 = br.nextUInt32();
4146
let i4 = br.nextDoubleBE();
4247
```
4348

44-
## API
45-
```js
46-
constructor(buffer: Buffer);
47-
seek(offset: number, fromBeginning = true);
48-
nextBuffer(length: number);
49-
nextString(length: number, encoding = 'utf-8');
50-
nextIn8();
51-
nextUInt8();
52-
nextUInt16LE();
53-
nextUInt16BE();
54-
nextInt16LE();
55-
nextInt16BE();
56-
nextUInt32LE();
57-
nextUInt32BE();
58-
nextInt32LE();
59-
nextInt32BE();
60-
nextFloatLE();
61-
nextFloatBE();
62-
nextDoubleLE();
63-
nextDoubleBE();
64-
```
49+
## BufferReader
50+
* constructor(buffer: Buffer)
51+
* seek(offset: number, fromBeginning = true)
52+
* nextBuffer(length: number)
53+
* nextString(length: number, encoding = 'utf-8')
54+
* nextInt8()
55+
* nextUInt8()
56+
* nextUInt16()
57+
* nextUInt16LE()
58+
* nextUInt16BE()
59+
* nextInt16()
60+
* nextInt16LE()
61+
* nextInt16BE()
62+
* nextUInt32()
63+
* nextUInt32LE()
64+
* nextUInt32BE()
65+
* nextInt32()
66+
* nextInt32LE()
67+
* nextInt32BE()
68+
* nextFloat()
69+
* nextFloatLE()
70+
* nextFloatBE()
71+
* nextDouble()
72+
* nextDoubleLE()
73+
* nextDoubleBE()
74+
75+
## BufferWriter
76+
* constructor(buffer: Buffer)
77+
* seek(offset: number[, fromBeginning = true])
78+
* writeBuffer(length: number)
79+
* writeString(length: number[, encoding = 'utf-8'])
80+
* writeInt8()
81+
* writeUInt8()
82+
* writeUInt16()
83+
* writeUInt16LE()
84+
* writeUInt16BE()
85+
* writeInt16()
86+
* writeInt16LE()
87+
* writeInt16BE()
88+
* writeUInt32()
89+
* writeUInt32LE()
90+
* writeUInt32BE()
91+
* writeInt32()
92+
* writeInt32LE()
93+
* writeInt32BE()
94+
* writeFloat()
95+
* writeFloatLE()
96+
* writeFloatBE()
97+
* writeDouble()
98+
* writeDoubleLE()
99+
* writeDoubleBE()
65100

66101
## Issues
67102
Contact [ginkgoch@outlook.com](mailto:ginkgoch@outlook.com) or [sumbit an issue](https://github.com/ginkgoch/node-buffer-reader/issues).

index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
const BufferReader = require('./src/reader')
2+
const BufferWriter = require('./src/writer')
23

3-
module.exports = { BufferReader }
4+
module.exports = { BufferReader, BufferWriter }

src/reader.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const BufferReader = require('./reader.js');
1+
const { BufferReader } = require('../index');
22

33
describe('buffer reader tests', () => {
44
test('init test - normal', () => {

src/writer.test.js

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const BufferWriter = require('./writer')
1+
const { BufferWriter, BufferReader } = require('../index')
22

33
describe('BufferWriter tests', () => {
44

@@ -34,4 +34,38 @@ describe('BufferWriter tests', () => {
3434
expect(bufferConcat.length).toBe(12)
3535
expect(Buffer.compare(bufferSlice, bufferConcat)).toBeTruthy()
3636
})
37+
38+
it('demo 1', () => {
39+
const buffer = Buffer.alloc(256)
40+
const bufferWriter = new BufferWriter(buffer)
41+
bufferWriter.writeDouble(12.5)
42+
bufferWriter.writeDouble(67.7)
43+
44+
const bufferReader = new BufferReader(buffer)
45+
let value = bufferReader.nextDouble()
46+
expect(value).toBe(12.5)
47+
48+
value = bufferReader.nextDouble()
49+
expect(value).toBe(67.7)
50+
})
51+
52+
it('demo 2', () => {
53+
const buffer = Buffer.alloc(16);
54+
const bw = new BufferWriter(buffer);
55+
bw.writeInt8(8);
56+
bw.writeInt16(16);
57+
bw.writeUInt32(32);
58+
bw.writeDoubleBE(54.8765);
59+
60+
const br = new BufferReader(buffer);
61+
let i1 = br.nextInt8();
62+
let i2 = br.nextInt16();
63+
let i3 = br.nextUInt32();
64+
let i4 = br.nextDoubleBE();
65+
66+
expect(i1).toBe(8)
67+
expect(i2).toBe(16)
68+
expect(i3).toBe(32)
69+
expect(i4).toBe(54.8765)
70+
})
3771
})

0 commit comments

Comments
 (0)