Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
connect(accessToken: string, shapeshiftAccessToken?: string) {
this.stop();
this.tokens = {
accessToken,
shapeshiftAccessToken,
};
try {
this.apiConfig = buildAPIConfig(accessToken);
if (!!shapeshiftAccessToken
&& shapeshiftAccessToken !== '') {
this.apiConfig.headers = {
...this.apiConfig.headers,
token: shapeshiftAccessToken,
};
}
const wsUrl = EXCHANGE_URL
.replace(/(https:\/\/)/gi, 'wss://')
.replace(/(http:\/\/)/gi, 'ws://');
this.io = new SocketIO(`${wsUrl}:443`, {
transports: ['websocket'],
query: {
token: accessToken,
},
});
this.io.on('disconnect', () => {
this.setConnected(false);
});
this.io.on('error', () => {
this.setConnected(false);
});
this.io.on('connect', () => {
const CONFIG = {
apiKey: FIREBASE_API_KEY,
authDomain: FIREBASE_AUTH_DOMAIN,
databaseURL: FIREBASE_DATABASE_URL,
projectId: FIREBASE_PROJECT_ID,
storageBucket: FIREBASE_STORAGE_BUCKET,
messagingSenderId: FIREBASE_MESSAGING_SENDER_ID,
};
/**
* NOTE: Condition prevents repeated Firebase initialisation,
* which can occur during web version hot reload in development mode.
* Also forbids initialisation in case when firebase .env vars
* are not set (and left empty).
*/
if (!firebase.apps.length && FIREBASE_API_KEY.length > 0) {
firebase.initializeApp(CONFIG);
}