@qualiture/tesla-api
Version:
An unofficial library that wraps the Tesla Owner's API
62 lines (61 loc) • 2.04 kB
JavaScript
;
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;