/* * Copyright 2020 ARDUINO SA (http://www.arduino.cc/) * This file is part of arduino-iot-js. * Copyright (c) 2020 * Authors: Fabrizio Mirabito, Francesco Pirrotta * * This software is released under: * The GNU General Public License, which covers the main part of * arduino-iot-js * The terms of this license can be found at: * https://www.gnu.org/licenses/gpl-3.0.en.html * * You can be released from the requirements of the above licenses by purchasing * a commercial license. Buying such a license is mandatory if you want to modify or * otherwise use the software for commercial activities involving the Arduino * software without disclosing the source code of your own applications. To purchase * a commercial license, send an email to license@arduino.cc. * */ import mqtt from 'mqtt'; import fetch from 'node-fetch'; import SenML from './senML'; import { CloudClient } from './client/CloudClient'; import { ConnectionOptions } from './connection/IConnection'; import { HttpClientFactory } from './http/HttpClientFactory'; import { IMqttClient, MqttConnect } from './mqtt/IMqttClient'; import { APIConnectionBuilder } from './builder/APIConnectionBuilder'; import { TokenConnectionBuilder } from './builder/TokenConnectionBuilder'; const ArduinoIoTCloudFactory = (mqttConnect: MqttConnect) => new CloudClient([ new TokenConnectionBuilder(mqttConnect), new APIConnectionBuilder(HttpClientFactory.Create(fetch), mqttConnect), ]); const ArduinoIoTCloud = ArduinoIoTCloudFactory(mqtt.connect); export { ArduinoIoTCloudFactory, ArduinoIoTCloud }; export { SenML, IMqttClient, MqttConnect, ConnectionOptions }; export { CloudOptions, CloudMessageValue } from './client/ICloudClient';