UNPKG

node-apple-weatherkit

Version:
57 lines 1.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const cross_fetch_1 = __importDefault(require("cross-fetch")); const types_1 = require("../types"); const BASE_URL_V1 = 'https://weatherkit.apple.com/api/v1'; class Api { constructor(accessToken) { this.accessToken = accessToken; this.accessToken = accessToken; } async get(path, params) { const queryParams = params ? new URLSearchParams(this.convertParams(params)).toString() : ''; const url = `${BASE_URL_V1}${path}?${queryParams}`; const response = await (0, cross_fetch_1.default)(url, { method: 'GET', headers: { Authorization: `Bearer ${this.accessToken}`, 'Content-Type': 'application/json;charset=utf-8', }, }); if (response.status != 200) { return (0, types_1.Err)(await response.text(), response.status); } return (await response.json()); } convertParams(params) { if (!params) return {}; const records = {}; let val; for (const k in params) { switch (k) { case 'currentAsOf': case 'dailyEnd': case 'dailyStart': case 'hourlyEnd': case 'hourlyStart': val = params[k]?.toISOString(); break; case 'dataSets': val = params[k]?.join(','); break; default: val = params[k]; } if (val) { records[k] = val; } } return records; } } exports.default = Api; //# sourceMappingURL=Api.js.map