UNPKG

@qualiture/tesla-api

Version:

An unofficial library that wraps the Tesla Owner's API

62 lines (61 loc) 2.04 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const auth_1 = __importDefault(require("./auth")); const users_1 = __importDefault(require("./users")); const vehicle_1 = __importDefault(require("./vehicle")); class TeslaAPI { auth; setAccessToken(accessToken) { this.auth = new auth_1.default(accessToken); } /** * Retrieves the version of this package * @returns Version of the `@qualiture/tesla-api` package */ getPackageVersion() { const pjson = require("../package.json"); return pjson.version; } /** * Refreshes the access token using the refresh token * @param refreshToken The refresh token * @returns Object with access token and expiration */ getRefreshedAccessToken(refreshToken) { return this.auth.getRefreshedAccessToken(refreshToken); } /** * Gets user details * @returns */ getUser() { return users_1.default.getUser(this.getAxiosConfig()); } /** * Retrieves all vehicle details for the current owner. Data is retrieved from Tesla servers (so not from car itself) * @returns Array of vehicles */ getOwnerVehicles() { return vehicle_1.default.getOwnerVehicles(this.getAxiosConfig()); } /** * Retrieves all vehicle data and configuration. Data is retrieved from the vehicle itself, specified by the `vehicleId` parameter * @param vehicleId Value of `IVehicle.id` * @returns */ getVehicleData(vehicleId, includeLocationData) { return vehicle_1.default.getVehicleData(vehicleId, this.getAxiosConfig(), includeLocationData); } getAxiosConfig() { const config = { headers: { Authorization: `Bearer ${this.auth.getAccessToken()}` } }; return config; } } exports.default = TeslaAPI;