Skip to content

Commit

Permalink
[*] minor readme updates, + updating version due to fixes of other co…
Browse files Browse the repository at this point in the history
…ntributor, + exporting Constants, + rebuild libs
  • Loading branch information
Gugic committed Feb 22, 2017
1 parent 18ae4e8 commit 5b327ff
Show file tree
Hide file tree
Showing 25 changed files with 194 additions and 195 deletions.
2 changes: 1 addition & 1 deletion ApiAiClient.js
@@ -1 +1 @@
export {ApiAiClient} from './es6/ApiAiClient'
export * from './es6/ApiAiClient'
2 changes: 1 addition & 1 deletion ApiAiClient.ts
@@ -1 +1 @@
export * from './ts/ApiAiClient'
export * from "./ts/ApiAiClient"
2 changes: 1 addition & 1 deletion ApiAiStreamClient.ts
@@ -1,2 +1,2 @@
/// <reference path="declarations.d.ts"/>
export {ApiAiStreamClient} from './ts/ApiAiStreamClient'
export {ApiAiStreamClient} from "./ts/ApiAiStreamClient"
7 changes: 4 additions & 3 deletions README.md
Expand Up @@ -96,11 +96,11 @@ Code above should work for both TypeScript and simple ES6

*Note:* If you are going to build es5 version of your bundle with ApiAiClient inside, please add some typings for promises (e.g. @types/es6-promise)

You also can import and use all defined interfaces:
You also can import and use all defined interfaces and ApiAiConstants:

```javascript
import {IRequestOptions, IServerResponse} from "api-ai-javascript/ApiAiClient"

import {IRequestOptions, IServerResponse, ApiAiConstants} from "api-ai-javascript/ApiAiClient"
const lang = ApiAiConstants.AVAILABLE_LANGUAGES.EN;
```

You can find full list of interfaces [here](ts/Interfaces.ts)
Expand All @@ -124,6 +124,7 @@ You can find full list of interfaces [here](ts/Interfaces.ts)

## 2.0.0-beta.15
* minor fixes, minor readme updates
* exported constants

## 2.0.0-beta.14
* minor fixes
Expand Down
15 changes: 8 additions & 7 deletions es6/ApiAiClient.js
@@ -1,18 +1,19 @@
import Constants from "./Constants";
import { ApiAiConstants } from "./ApiAiConstants";
import { ApiAiClientConfigurationError } from "./Errors";
import { EventRequest } from "./Request/EventRequest";
import TextRequest from "./Request/TextRequest";
import { TTSRequest } from "./Request/TTSRequest";
export * from "./Interfaces";
export { ApiAiConstants } from "./ApiAiConstants";
export class ApiAiClient {
constructor(options) {
if (!options || !options.accessToken) {
throw new ApiAiClientConfigurationError("Access token is required for new ApiAi.Client instance");
}
this.accessToken = options.accessToken;
this.apiLang = options.lang || Constants.DEFAULT_CLIENT_LANG;
this.apiVersion = options.version || Constants.DEFAULT_API_VERSION;
this.apiBaseUrl = options.baseUrl || Constants.DEFAULT_BASE_URL;
this.apiLang = options.lang || ApiAiConstants.DEFAULT_CLIENT_LANG;
this.apiVersion = options.version || ApiAiConstants.DEFAULT_API_VERSION;
this.apiBaseUrl = options.baseUrl || ApiAiConstants.DEFAULT_BASE_URL;
this.sessionId = options.sessionId || this.guid();
this.streamClientClass = options.streamClientClass || null;
}
Expand Down Expand Up @@ -54,13 +55,13 @@ export class ApiAiClient {
return this.accessToken;
}
getApiVersion() {
return (this.apiVersion) ? this.apiVersion : Constants.DEFAULT_API_VERSION;
return (this.apiVersion) ? this.apiVersion : ApiAiConstants.DEFAULT_API_VERSION;
}
getApiLang() {
return (this.apiLang) ? this.apiLang : Constants.DEFAULT_CLIENT_LANG;
return (this.apiLang) ? this.apiLang : ApiAiConstants.DEFAULT_CLIENT_LANG;
}
getApiBaseUrl() {
return (this.apiBaseUrl) ? this.apiBaseUrl : Constants.DEFAULT_BASE_URL;
return (this.apiBaseUrl) ? this.apiBaseUrl : ApiAiConstants.DEFAULT_BASE_URL;
}
setSessionId(sessionId) {
this.sessionId = sessionId;
Expand Down
19 changes: 9 additions & 10 deletions es6/Constants.js → es6/ApiAiConstants.js
@@ -1,5 +1,5 @@
var Constants;
(function (Constants) {
export var ApiAiConstants;
(function (ApiAiConstants) {
var AVAILABLE_LANGUAGES;
(function (AVAILABLE_LANGUAGES) {
AVAILABLE_LANGUAGES[AVAILABLE_LANGUAGES["EN"] = "en"] = "EN";
Expand All @@ -17,12 +17,11 @@ var Constants;
AVAILABLE_LANGUAGES[AVAILABLE_LANGUAGES["PT"] = "pt"] = "PT";
AVAILABLE_LANGUAGES[AVAILABLE_LANGUAGES["RU"] = "ru"] = "RU";
AVAILABLE_LANGUAGES[AVAILABLE_LANGUAGES["UK"] = "uk"] = "UK";
})(AVAILABLE_LANGUAGES = Constants.AVAILABLE_LANGUAGES || (Constants.AVAILABLE_LANGUAGES = {}));
Constants.VERSION = "2.0.0-beta.8";
Constants.DEFAULT_BASE_URL = "https://api.api.ai/v1/";
Constants.DEFAULT_API_VERSION = "20150910";
Constants.DEFAULT_CLIENT_LANG = AVAILABLE_LANGUAGES.EN;
})(AVAILABLE_LANGUAGES = ApiAiConstants.AVAILABLE_LANGUAGES || (ApiAiConstants.AVAILABLE_LANGUAGES = {}));
ApiAiConstants.VERSION = "2.0.0-beta.15";
ApiAiConstants.DEFAULT_BASE_URL = "https://api.api.ai/v1/";
ApiAiConstants.DEFAULT_API_VERSION = "20150910";
ApiAiConstants.DEFAULT_CLIENT_LANG = AVAILABLE_LANGUAGES.EN;
// @todo: make configurable, ideally fix non-working v1
Constants.DEFAULT_TTS_HOST = "https://api.api.ai/api/tts";
})(Constants || (Constants = {}));
export default Constants;
ApiAiConstants.DEFAULT_TTS_HOST = "https://api.api.ai/api/tts";
})(ApiAiConstants || (ApiAiConstants = {}));
4 changes: 2 additions & 2 deletions es6/Request/TTSRequest.js
@@ -1,4 +1,4 @@
import Constants from "../Constants";
import { ApiAiConstants } from "../ApiAiConstants";
import { ApiAiClientConfigurationError, ApiAiRequestError } from "../Errors";
import XhrRequest from "../XhrRequest";
import Request from "./Request";
Expand All @@ -13,7 +13,7 @@ export class TTSRequest extends Request {
throw new ApiAiRequestError(reason);
};
// this.requestMethod = XhrRequest.Method.GET;
this.uri = Constants.DEFAULT_TTS_HOST;
this.uri = ApiAiConstants.DEFAULT_TTS_HOST;
const AudioContext = window.AudioContext || webkitAudioContext;
if (!TTSRequest.audioContext) {
TTSRequest.audioContext = new AudioContext();
Expand Down
10 changes: 4 additions & 6 deletions es6/Stream/StreamClient.js
Expand Up @@ -49,9 +49,6 @@ class StreamClient {
this.onError(IStreamClient.ERROR.ERR_CLIENT, "No user media support");
}
}
getGainNode() {
return this.gainNode;
}
startListening() {
if (!this.recorder) {
this.onError(IStreamClient.ERROR.ERR_AUDIO, "Recorder undefined");
Expand All @@ -61,6 +58,10 @@ class StreamClient {
this.onError(IStreamClient.ERROR.ERR_AUDIO, "No web socket connection");
return;
}
if (this.ws.readyState === WebSocket.CLOSED) {
this.onError(IStreamClient.ERROR.ERR_NETWORK, "WebSocket is in 'closed' state");
return;
}
const isUseVad = (endOfSpeechCallback) => {
this.resampleProcessor = this.audioContext.createResampleProcessor(256, 1, 1, 16000);
this.mediaStreamSource.connect(this.resampleProcessor);
Expand Down Expand Up @@ -132,10 +133,7 @@ class StreamClient {
this.mediaStreamSource = this.audioContext.createMediaStreamSource(stream);
this.onEvent(IStreamClient.EVENT.MSG_MEDIA_STREAM_CREATED, "Media stream created");
this.userSpeechAnalyser = this.audioContext.createAnalyser();
this.gainNode = this.audioContext.createGain();
this.mediaStreamSource.connect(this.userSpeechAnalyser);
this.mediaStreamSource.connect(this.gainNode);
this.gainNode.connect(this.audioContext.destination);
this.recorder = new Recorder(this.mediaStreamSource);
this.onEvent(IStreamClient.EVENT.MSG_INIT_RECORDER, "Recorder initialized");
if (onInit) {
Expand Down
2 changes: 1 addition & 1 deletion es6/_build.js
@@ -1,2 +1,2 @@
export { ApiAiClient } from "./ApiAiClient";
export * from "./ApiAiClient";
export { ApiAiStreamClient } from "./ApiAiStreamClient";
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -35,7 +35,7 @@
},
"scripts": {
"start": "webpack-dev-server",
"build": "webpack && webpack --env.streamless && webpack --env.compress && webpack --env.streamless --env.compress && rimraf ./srces6 && tsc -p ./tsconfig.es6src.json",
"build": "webpack && webpack --env.streamless && webpack --env.compress && webpack --env.streamless --env.compress && rimraf ./es6 && tsc -p ./tsconfig.es6.json",
"test": "karma start"
},
"repository": {
Expand Down
12 changes: 6 additions & 6 deletions spec/Client.spec.ts
@@ -1,5 +1,5 @@
import {ApiAiClient} from "../ts/ApiAiClient";
import Constants from "../ts/Constants";
import {ApiAiConstants} from "../ts/ApiAiConstants";

const ACCESS_TOKEN = "AT";
const expect = chai.expect;
Expand All @@ -23,9 +23,9 @@ describe("ApiAi.Client", () => {
});

it("should use valid credentials", () => {
expect(client.getApiLang()).to.eq(Constants.DEFAULT_CLIENT_LANG);
expect(client.getApiVersion()).to.eq(Constants.DEFAULT_API_VERSION);
expect(client.getApiBaseUrl()).to.eq(Constants.DEFAULT_BASE_URL);
expect(client.getApiLang()).to.eq(ApiAiConstants.DEFAULT_CLIENT_LANG);
expect(client.getApiVersion()).to.eq(ApiAiConstants.DEFAULT_API_VERSION);
expect(client.getApiBaseUrl()).to.eq(ApiAiConstants.DEFAULT_BASE_URL);
expect(client.getAccessToken()).to.eq(ACCESS_TOKEN);
});

Expand All @@ -35,13 +35,13 @@ describe("ApiAi.Client", () => {
const sessionId = "test";
const innerClient = new ApiAiClient({
accessToken: ACCESS_TOKEN,
lang: Constants.AVAILABLE_LANGUAGES.DE,
lang: ApiAiConstants.AVAILABLE_LANGUAGES.DE,
baseUrl,
sessionId,
version
});

expect(innerClient.getApiLang()).to.eq(Constants.AVAILABLE_LANGUAGES.DE);
expect(innerClient.getApiLang()).to.eq(ApiAiConstants.AVAILABLE_LANGUAGES.DE);
expect(innerClient.getApiVersion()).to.eq(version);
expect(innerClient.getApiBaseUrl()).to.eq(baseUrl);
expect(innerClient.getAccessToken()).to.eq(ACCESS_TOKEN);
Expand Down

0 comments on commit 5b327ff

Please sign in to comment.