Skip to content

Commit 86088c5

Browse files
committed
Cleanup [skip ci]
1 parent 2666485 commit 86088c5

5 files changed

Lines changed: 18 additions & 68 deletions

File tree

src/config.ts

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -85,37 +85,29 @@ export class Config {
8585
* connect to Skytable
8686
*/
8787
async connect() {
88-
const connect = await createConnection({
88+
const socket = await createConnection({
8989
port: this.port,
9090
host: this.host,
9191
});
92-
93-
const data = await connectionWrite(connect, getClientHandshake(this));
94-
92+
const data = await connectionWrite(socket, getClientHandshake(this));
9593
await bufferToHandshakeResult(data);
96-
97-
this.connection = connect;
98-
99-
return createDB(connect);
94+
this.connection = socket;
95+
return createDB(socket);
10096
}
10197

10298
/**
10399
* connect to Skytable
104100
*/
105101
async connectTLS(options: ConnectionTLSOptions) {
106-
const connect = await createConnectionTls({
102+
const socket = await createConnectionTls({
107103
port: this.port,
108104
host: this.host,
109105
...options,
110106
});
111-
112-
const data = await connectionWrite(connect, getClientHandshake(this));
113-
107+
const data = await connectionWrite(socket, getClientHandshake(this));
114108
await bufferToHandshakeResult(data);
115-
116-
this.connection = connect;
117-
118-
return createDB(connect);
109+
this.connection = socket;
110+
return createDB(socket);
119111
}
120112

121113
/**

src/connection.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ export function createConnection(options: NetConnectOpts): Promise<Socket> {
1111
conn.once('connect', () => {
1212
resolve(conn);
1313
});
14-
1514
conn.once('error', (error) => {
1615
console.error(`createConnection error: ${error.message}`);
1716
reject(error);
@@ -27,7 +26,6 @@ export function createConnectionTls(
2726
conn.once('connect', () => {
2827
resolve(conn);
2928
});
30-
3129
conn.once('error', (error) => {
3230
console.error(`createConnection error: ${error.message}`);
3331
reject(error);
@@ -45,7 +43,6 @@ export function connectionWrite(
4543
reject(writeError);
4644
return;
4745
}
48-
4946
connect.once('data', (data) => {
5047
resolve(data);
5148
});

src/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
export { Config as default } from './config';
2-
32
export * from './skytable';
4-
53
export * from './protocol';
6-
74
export * from './query';

src/protocol.ts

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,10 @@ export function encodeParam(param: SQParam): string {
4848
if (Buffer.isBuffer(param)) {
4949
return [PARAMS_TYPE.BINARY, param.length, '\n', param.toString()].join('');
5050
}
51-
5251
// null undefined
5352
if (param == null) {
5453
return '\x00';
5554
}
56-
5755
switch (typeof param) {
5856
case 'string':
5957
return [PARAMS_TYPE.STRING, param.length, '\n', param].join('');
@@ -91,7 +89,6 @@ export function encodeQuery(query: Query): Buffer {
9189
const dataframe = `${query.getQuery()}${query.getParams().join('')}`;
9290
const data = [query.getQueryLength(), '\n', dataframe];
9391
const requestData = ['S', data.join('').length, '\n', ...data];
94-
9592
return Buffer.from(requestData.join(''), 'utf-8');
9693
}
9794

@@ -110,27 +107,23 @@ function parseNumber<T = number>(
110107
): [T, Buffer] {
111108
const offset = getFirstSplitOffset(buffer);
112109
const val = formatFn(buffer.subarray(0, offset).toString('utf-8'));
113-
114110
return [val, buffer.subarray(offset + 1)];
115111
}
116112

117113
function parseNextBySize(size: number, buffer: Buffer): [Column[], Buffer] {
118114
let values = [];
119115
let nextBuffer = buffer;
120-
121116
for (let i = 0; i < size; i++) {
122-
const [value, remainingBuffer] = parseSingleVal(nextBuffer);
117+
const [value, remainingBuffer] = decodeValue(nextBuffer);
123118
values.push(value);
124119
nextBuffer = remainingBuffer;
125120
}
126-
127121
return [values, nextBuffer];
128122
}
129123

130-
function parseSingleVal(buffer: Buffer): [Column, Buffer] {
124+
function decodeValue(buffer: Buffer): [Column, Buffer] {
131125
const type = buffer.readUInt8(0);
132126
buffer = buffer.subarray(1);
133-
134127
switch (type) {
135128
case RESPONSES_RESULT.NULL: // Null
136129
return [null, buffer.subarray(0)];
@@ -164,7 +157,6 @@ function parseSingleVal(buffer: Buffer): [Column, Buffer] {
164157
return [Buffer.from([]), buffer.subarray(sizeOffset + 1)];
165158
}
166159
const [start, end] = [sizeOffset + 1, sizeOffset + 1 + Number(size)];
167-
168160
return [buffer.subarray(start, end), buffer.subarray(end)];
169161
}
170162
case RESPONSES_RESULT.STRING: {
@@ -173,7 +165,6 @@ function parseSingleVal(buffer: Buffer): [Column, Buffer] {
173165
const size = Number(buffer.subarray(0, sizeOffset).toString('utf-8'));
174166
const [start, end] = [sizeOffset + 1, sizeOffset + 1 + Number(size)];
175167
const str = buffer.subarray(start, end).toString('utf-8');
176-
177168
return [str, buffer.subarray(end)];
178169
}
179170
case RESPONSES_RESULT.LIST: {
@@ -183,7 +174,6 @@ function parseSingleVal(buffer: Buffer): [Column, Buffer] {
183174
if (size === 0) {
184175
return [[], buffer.subarray(sizeOffset + 1)];
185176
}
186-
187177
return parseNextBySize(size, buffer.subarray(sizeOffset + 1)) as [
188178
Column,
189179
Buffer,
@@ -194,69 +184,56 @@ function parseSingleVal(buffer: Buffer): [Column, Buffer] {
194184
}
195185
}
196186

197-
export function formatRow(buffer: Buffer): Row {
187+
export function decodeRow(buffer: Buffer): Row {
198188
const offset = getFirstSplitOffset(buffer);
199189
const columnCount = Number(buffer.subarray(0, offset).toString('utf-8'));
200190
const dataType = buffer.subarray(offset + 1);
201-
202191
const [row] = parseNextBySize(columnCount, dataType);
203-
204192
return row;
205193
}
206194

207-
export function formatRows(buffer: Buffer): Rows {
195+
export function decodeRows(buffer: Buffer): Rows {
208196
const offset = getFirstSplitOffset(buffer);
209197
const rowCount = Number(buffer.subarray(0, offset).toString('utf-8'));
210-
211198
buffer = buffer.subarray(offset + 1);
212-
213199
const columnOffset = getFirstSplitOffset(buffer);
214200
const columnCount = Number(
215201
buffer.subarray(0, columnOffset).toString('utf-8'),
216202
);
217-
218203
buffer = buffer.subarray(columnOffset + 1);
219-
220204
const result: Rows = [];
221205
let nextBuffer = buffer;
222-
223206
for (let i = 0; i < rowCount; i++) {
224207
const [row, remainingBuffer] = parseNextBySize(columnCount, nextBuffer);
225-
226208
result[i] = row;
227209
nextBuffer = remainingBuffer;
228210
}
229-
230211
return result;
231212
}
232213

233-
export function formatResponse(buffer: Buffer): QueryResult {
214+
export function decodeResponse(buffer: Buffer): QueryResult {
234215
const type = buffer.readInt8(0);
235-
236216
switch (type) {
237217
case RESPONSES_RESULT.EMPTY:
238218
return null;
239219
case RESPONSES_RESULT.ROW:
240-
return formatRow(buffer.subarray(1));
220+
return decodeRow(buffer.subarray(1));
241221
case RESPONSES_RESULT.MULTIROW:
242-
return formatRows(buffer.subarray(1));
222+
return decodeRows(buffer.subarray(1));
243223
case RESPONSES_RESULT.ERROR:
244224
throw new Error(
245225
`response error code: ${buffer.subarray(1, 2).readInt8()}`,
246226
);
247227
default:
248228
break;
249229
}
250-
251-
const [val] = parseSingleVal(buffer);
252-
230+
const [val] = decodeValue(buffer);
253231
return val;
254232
}
255233

256234
export function getClientHandshake(config: Config): string {
257235
const username = config.getUsername();
258236
const password = config.getPassword();
259-
260237
return [
261238
'H\x00\x00\x00\x00\x00',
262239
username.length,
@@ -272,11 +249,9 @@ export function bufferToHandshakeResult(buffer: Buffer): Promise<void> {
272249
return new Promise((resolve, reject) => {
273250
const [h, c1, c2, msg] = Array.from(buffer.toJSON().data);
274251
const code = [String.fromCharCode(h), c1, c2].join('');
275-
276252
if (code === HANDSHAKE_RESULT.SUCCESS) {
277253
return resolve();
278254
}
279-
280255
reject(new Error(`handshake error code ${code}, msg: ${msg}`));
281256
});
282257
}

src/skytable.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,20 @@
11
import { Socket } from 'node:net';
22
import { TLSSocket } from 'node:tls';
33
import { connectionWrite } from './connection';
4-
import { encodeQuery, formatResponse } from './protocol';
4+
import { encodeQuery, decodeResponse } from './protocol';
55
import { Query } from './query';
66

77
export type ColumnBase = string | number | boolean | null | bigint;
8-
98
export type SQParam<T = ColumnBase> = T | SQParam<T>[];
10-
119
export type ColumnBinary = typeof Buffer;
12-
1310
export type ColumnList<T> = T | ColumnList<T>[];
14-
1511
export type Column =
1612
| Buffer
1713
| ColumnBase
1814
| ColumnBinary
1915
| ColumnList<ColumnBase>;
20-
2116
export type Row = Column[];
22-
2317
export type Rows = Row[];
24-
2518
export type QueryResult = Column | Row | Rows;
2619

2720
/**
@@ -38,14 +31,10 @@ export function createDB(connection: Socket | TLSSocket) {
3831
params.forEach((param) => {
3932
queryInstance.pushParam(param);
4033
});
41-
4234
const buffer = encodeQuery(queryInstance);
43-
4435
const res = await connectionWrite(connection, buffer);
45-
46-
return formatResponse(res);
36+
return decodeResponse(res);
4737
};
48-
4938
return {
5039
query,
5140
};

0 commit comments

Comments
 (0)