Skip to content

Commit 71971dd

Browse files
author
Dmitry Shirokov
authored
Merge pull request #12 from runk/maintenance
Maintenance
2 parents 5ee160b + 1f56a96 commit 71971dd

File tree

11 files changed

+50
-37
lines changed

11 files changed

+50
-37
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212

1313
strategy:
1414
matrix:
15-
node-version: [10.x, 12.x, 14.x]
15+
node-version: [12.x, 14.x, 16.x]
1616

1717
steps:
1818
- uses: actions/checkout@v2
@@ -26,3 +26,4 @@ jobs:
2626
- run: npm run lint
2727
- run: npm test
2828
- run: npm run build
29+
- run: npm run test-imports

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ npm i mmdb-lib
1414

1515
```typescript
1616
import fs from 'fs';
17-
import Reader from 'mmdb-lib';
17+
import * as mmdb from 'mmdb-lib';
1818

1919
// Get a buffer with mmdb database, from file system or whereever.
2020
const db = fs.readFileSync('/path/to/GeoLite2-City.mmdb');
2121

22-
const reader = new Reader<CityResponse>(db);
22+
const reader = new mmdb.Reader<CityResponse>(db);
2323
console.log(reader.get('66.6.44.4')); // inferred type `CityResponse`
2424
console.log(reader.getWithPrefixLength('66.6.44.4')); // tuple with inferred type `[CityResponse|null, number]`
2525
```

package.json

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,24 @@
1111
"geoip2"
1212
],
1313
"author": "Dmitry Shirokov <[email protected]>",
14-
"contributors": [],
15-
"dependencies": {},
14+
"contributors": [
15+
"William Storey @horgh"
16+
],
1617
"devDependencies": {
1718
"@types/ip-address": "5.8.2",
18-
"@types/jest": "26.0.4",
19-
"@types/node": "10.17.5",
19+
"@types/jest": "27.0.0",
20+
"@types/node": "16.0.0",
2021
"@types/sinon": "7.5.2",
2122
"@typescript-eslint/eslint-plugin": "^4.4.0",
2223
"@typescript-eslint/parser": "^4.4.0",
2324
"eslint": "^7.10.0",
2425
"ip-address": "6.2.0",
25-
"jest": "26.1.0",
26+
"jest": "^27.4.7",
2627
"prettier": "^2.1.2",
27-
"semantic-release": "17.1.1",
28+
"semantic-release": "^18.0.1",
2829
"sinon": "9.0.1",
29-
"ts-jest": "26.1.1",
30-
"typescript": "3.9.6"
30+
"ts-jest": "^27.1.2",
31+
"typescript": "4.5.4"
3132
},
3233
"repository": {
3334
"type": "git",
@@ -52,6 +53,7 @@
5253
"lint": "eslint . --ext .ts",
5354
"lint:types": "tsc --noEmit",
5455
"test": "jest",
56+
"test-imports": "node test/imports/commonjs.js && node test/imports/esm.mjs",
5557
"format": "prettier --write src",
5658
"prepublish": "npm run build",
5759
"semantic-release": "semantic-release"

src/__test__/integration.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import fs from 'fs';
22
import assert from 'assert';
33
import ipAddr from 'ip-address';
44
import path from 'path';
5-
import Reader from '../';
5+
import { Reader } from '../';
66
import { Cache } from '../types';
77
import { Response } from '../reader/response';
88

src/decoder.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export default class Decoder {
163163
// If the value is 30, then the size is 285 + *the next two bytes after the type
164164
// specifying bytes as a single unsigned integer*.
165165
if (size === 30) {
166-
return cursor(285 + this.db.readUInt16BE(offset, false), offset + 2);
166+
return cursor(285 + this.db.readUInt16BE(offset), offset + 2);
167167
}
168168

169169
// At this point `size` is always 31.
@@ -227,7 +227,7 @@ export default class Decoder {
227227
// bytes as a 32-bit value. In this case, the last three bits of the control byte
228228
// are ignored.
229229
} else {
230-
packed = this.db.readUInt32BE(offset, true);
230+
packed = this.db.readUInt32BE(offset);
231231
}
232232

233233
offset += pointerSize + 1;
@@ -252,11 +252,11 @@ export default class Decoder {
252252
}
253253

254254
private decodeDouble(offset: number) {
255-
return this.db.readDoubleBE(offset, true);
255+
return this.db.readDoubleBE(offset);
256256
}
257257

258258
private decodeFloat(offset: number) {
259-
return this.db.readFloatBE(offset, true);
259+
return this.db.readFloatBE(offset);
260260
}
261261

262262
private decodeMap(size: number, offset: number) {
@@ -280,7 +280,7 @@ export default class Decoder {
280280
if (size === 0) {
281281
return 0;
282282
}
283-
return this.db.readInt32BE(offset, true);
283+
return this.db.readInt32BE(offset);
284284
}
285285

286286
private decodeUint(offset: number, size: number) {
@@ -325,8 +325,7 @@ export default class Decoder {
325325
const numberOfLongs = size / 4;
326326
for (let i = 0; i < numberOfLongs; i++) {
327327
integer =
328-
integer * BigInt(4294967296) +
329-
BigInt(buffer.readUInt32BE(i << 2, true));
328+
integer * BigInt(4294967296) + BigInt(buffer.readUInt32BE(i << 2));
330329
}
331330

332331
return integer.toString();

src/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import assert from 'assert';
22
import fs from 'fs';
33
import path from 'path';
4-
import Reader from '.';
4+
import { Reader } from '.';
55

66
const dataDir = path.join(__dirname, '../test/data/test-data');
77
const read = (dir: string, filepath: string): Buffer =>

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ReaderOptions } from './types';
77

88
const DATA_SECTION_SEPARATOR_SIZE = 16;
99

10-
export default class Reader<T extends Response> {
10+
export class Reader<T extends Response> {
1111
public metadata: Metadata;
1212
private decoder: Decoder;
1313
private db: Buffer;

src/reader/walker.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ const readNodeRight28 =
4040
const readNodeLeft32 =
4141
(db: Buffer): NodeReader =>
4242
(offset: number): number =>
43-
db.readUInt32BE(offset, true);
43+
db.readUInt32BE(offset);
4444

4545
const readNodeRight32 =
4646
(db: Buffer): NodeReader =>
4747
(offset: number): number =>
48-
db.readUInt32BE(offset + 4, true);
48+
db.readUInt32BE(offset + 4);
4949

5050
export default (db: Buffer, recordSize: number): Walker => {
5151
switch (recordSize) {

test/imports/commonjs.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const fs = require('fs');
2+
const assert = require('assert');
3+
4+
const mmdb = require('../../lib/index.js');
5+
const db = fs.readFileSync('test/data/test-data/GeoIP2-City-Test.mmdb')
6+
7+
const reader = new mmdb.Reader(db)
8+
const res = reader.get('175.16.199.255');
9+
assert.strictEqual(res.city.geoname_id, 2038180);
10+
console.log('commonjs: OK');

test/imports/esm.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import fs from 'fs';
2+
import assert from 'assert';
3+
import * as mmdb from '../../lib/index.js';
4+
const db = fs.readFileSync('test/data/test-data/GeoIP2-City-Test.mmdb')
5+
6+
const reader = new mmdb.Reader(db)
7+
const res = reader.get('175.16.199.255');
8+
assert.strictEqual(res.city.geoname_id, 2038180);
9+
console.log('esm: OK');

0 commit comments

Comments
 (0)