UNPKG

bmkg-wrapper

Version:

Sebuah API wrapper untuk mempermudah akses API data terbuka Badan Meteorologi, Klimatologi, dan Geofisika.

48 lines (47 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseWeatherData = exports.searchKodeWilayah = exports.parseCsv = void 0; const axios_1 = __importDefault(require("axios")); const csv_parser_1 = __importDefault(require("csv-parser")); const constants_js_1 = require("../config/constants.js"); const parseCsv = async (url) => { const response = await axios_1.default.get(url, { responseType: 'stream' }); try { return new Promise((resolve, reject) => { const results = []; response.data .pipe((0, csv_parser_1.default)({ headers: false })) .on('data', (row) => { const kode = row[0]; const wilayah = row[1]; if (kode && wilayah) results.push({ kode, wilayah }); }) .on('end', () => resolve(results)) .on('error', (err) => reject(err)); }); } catch (err) { console.error(err); return []; } }; exports.parseCsv = parseCsv; const searchKodeWilayah = (data, value) => { const index = data.findIndex((item) => item.wilayah.toLowerCase() === value.toLowerCase()); if (index === -1) { return null; } else { return data[index].kode; } }; exports.searchKodeWilayah = searchKodeWilayah; const parseWeatherData = async (wilayah) => { const res = await axios_1.default.get(constants_js_1.ENDPOINTS.CUACA + wilayah); return res.data.data[0]; }; exports.parseWeatherData = parseWeatherData;