@bigtest/client
Advanced tools
Comparing version 0.1.0 to 0.2.0-01846e4b
# @bigtest/client | ||
## 0.2.0 | ||
### Minor Changes | ||
- 46bee8bc: extract `@bigtest/client` out so that any javascript environment can | ||
connect to a bigtest orchestrator | ||
### Patch Changes | ||
- 62252502: Provide a nice error message when running tests without a server | ||
- 83153e3f: Upgrade effection dependencies to latest versions, upgrade to new style of subscriptions | ||
- Updated dependencies [83153e3f] | ||
- @bigtest/effection@0.5.3 |
@@ -9,2 +9,3 @@ "use strict"; | ||
const protocol_1 = require("./protocol"); | ||
const errors_1 = require("./errors"); | ||
let responseIds = 0; | ||
@@ -17,9 +18,22 @@ class Client { | ||
let socket = new websocket_1.w3cwebsocket(url); | ||
yield effection_1.spawn(function* detectStartupError() { | ||
let [error] = yield events_1.once(socket, 'error'); | ||
if (isErrorEvent(error)) { | ||
throw new errors_1.NoServerError(`Could not connect to server at ${url}`); | ||
} | ||
else { | ||
throw error; | ||
} | ||
}); | ||
let client = new Client(socket); | ||
let res = yield effection_1.resource(client, function* () { | ||
yield effection_2.ensure(() => socket.close()); | ||
let [{ reason, code }] = yield events_1.once(socket, 'close'); | ||
if (code !== 1000) { | ||
throw new Error(`websocket server closed connection unexpectedly: [${code}] ${reason}`); | ||
try { | ||
let [{ reason, code }] = yield events_1.once(socket, 'close'); | ||
if (code !== 1000) { | ||
throw new Error(`websocket server closed connection unexpectedly: [${code}] ${reason}`); | ||
} | ||
} | ||
finally { | ||
socket.close(); | ||
} | ||
}); | ||
@@ -76,2 +90,5 @@ yield events_1.once(socket, 'open'); | ||
exports.Client = Client; | ||
function isErrorEvent(error) { | ||
return error.type === 'error'; | ||
} | ||
//# sourceMappingURL=client.js.map |
import { w3cwebsocket } from 'websocket'; | ||
import { resource } from 'effection'; | ||
import { ensure, Mailbox } from '@bigtest/effection'; | ||
import { resource, spawn } from 'effection'; | ||
import { Mailbox } from '@bigtest/effection'; | ||
import { on, once } from '@effection/events'; | ||
import { isErrorResponse, isDataResponse, isDoneResponse } from './protocol'; | ||
import { NoServerError } from './errors'; | ||
let responseIds = 0; | ||
@@ -13,9 +14,22 @@ export class Client { | ||
let socket = new w3cwebsocket(url); | ||
yield spawn(function* detectStartupError() { | ||
let [error] = yield once(socket, 'error'); | ||
if (isErrorEvent(error)) { | ||
throw new NoServerError(`Could not connect to server at ${url}`); | ||
} | ||
else { | ||
throw error; | ||
} | ||
}); | ||
let client = new Client(socket); | ||
let res = yield resource(client, function* () { | ||
yield ensure(() => socket.close()); | ||
let [{ reason, code }] = yield once(socket, 'close'); | ||
if (code !== 1000) { | ||
throw new Error(`websocket server closed connection unexpectedly: [${code}] ${reason}`); | ||
try { | ||
let [{ reason, code }] = yield once(socket, 'close'); | ||
if (code !== 1000) { | ||
throw new Error(`websocket server closed connection unexpectedly: [${code}] ${reason}`); | ||
} | ||
} | ||
finally { | ||
socket.close(); | ||
} | ||
}); | ||
@@ -71,2 +85,5 @@ yield once(socket, 'open'); | ||
} | ||
function isErrorEvent(error) { | ||
return error.type === 'error'; | ||
} | ||
//# sourceMappingURL=client.js.map |
{ | ||
"name": "@bigtest/client", | ||
"version": "0.1.0", | ||
"version": "0.2.0-01846e4b", | ||
"description": "Communicate with a BigTest Orchestrator", | ||
@@ -22,4 +22,4 @@ "main": "dist/cjs/index.js", | ||
"dependencies": { | ||
"@bigtest/effection": "^0.5.1", | ||
"@effection/events": "^0.7.6", | ||
"@bigtest/effection": "^0.5.3", | ||
"@effection/events": "^0.7.7", | ||
"effection": "^0.7.0", | ||
@@ -29,3 +29,3 @@ "websocket": "^1.0.31" | ||
"devDependencies": { | ||
"@bigtest/effection-express": "^0.6.0", | ||
"@bigtest/effection-express": "^0.7.0", | ||
"@frontside/tsconfig": "*", | ||
@@ -32,0 +32,0 @@ "@types/mocha": "^7.0.1", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
25063
31
422
Updated@bigtest/effection@^0.5.3
Updated@effection/events@^0.7.7