UNPKG

geonet

Version:

A Node.js API wrapper for GeoNet — Aotearoa's geological hazard monitoring system.

124 lines (123 loc) 5.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GeoNet = void 0; const IntensityService_1 = require("./services/IntensityService"); const StrongService_1 = require("./services/StrongService"); const NewsService_1 = require("./services/NewsService"); const QuakeService_1 = require("./services/QuakeService"); const VolcanoService_1 = require("./services/VolcanoService"); const NetworkService_1 = require("./services/NetworkService"); const QuakeMapUtil_1 = require("./utils/QuakeMapUtil"); /** * Main class for interacting with the GeoNet API and related utilities. * Provides access to all GeoNet services through a unified interface. * * @remarks * This class acts as a central interface for all GeoNet API services and related utilities, thus providing a simplified * way for accessing earthquake, volcano, network data, among others, from GeoNet. * * @example * ```typescript * import { GeoNet } from "geonet"; * const geonet = new GeoNet(); * * // Get recent earthquakes * const quakes = await geonet.getQuakes(...); * ``` * * @see {@link https://api.geonet.org.nz} GeoNet API Documentation. * @see {@link IntensityService} For intensity-related methods. * @see {@link StrongService} For strong motion-related methods. * @see {@link NewsService} For news-related methods. * @see {@link QuakeService} For quake-related methods. * @see {@link VolcanoService} For volcano-related methods. * @see {@link NetworkService} For network-related methods. * @see {@link QuakeMapUtil} For generating GeoNet quake map URLs. * * @since 1.0.0 */ class GeoNet { intensityService; strongService; newsService; quakeService; volcanoService; networkService; quakeMapUtil; /** * Creates a new instance of the GeoNet client. * * @param {IntensityService} intensityService - Service for intensity data. * @param {StrongService} strongService - Service for strong motion data. * @param {NewsService} newsService - Service for news feed data. * @param {QuakeService} quakeService - Service for earthquake data. * @param {VolcanoService} volcanoService - Service for volcanic activity data. * @param {NetworkService} networkService - Service for network sensor data. */ constructor(intensityService = new IntensityService_1.IntensityService(), strongService = new StrongService_1.StrongService(), newsService = new NewsService_1.NewsService(), quakeService = new QuakeService_1.QuakeService(), volcanoService = new VolcanoService_1.VolcanoService(), networkService = new NetworkService_1.NetworkService(), quakeMapUtil = new QuakeMapUtil_1.QuakeMapUtil()) { this.intensityService = intensityService; this.strongService = strongService; this.newsService = newsService; this.quakeService = quakeService; this.volcanoService = volcanoService; this.networkService = networkService; this.quakeMapUtil = quakeMapUtil; } /** @inheritdoc {@link IntensityService.getIntensity} */ async getIntensity(req) { return await this.intensityService.getIntensity(req); } /** @inheritdoc {@link StrongService.getStrong} */ async getStrong(publicID) { return await this.strongService.getStrong(publicID); } /** @inheritdoc {@link NewsService.getNews} */ async getNews(page) { return await this.newsService.getNews(page); } /** @inheritdoc {@link QuakeService.getQuake} */ async getQuake(publicID) { return await this.quakeService.getQuake(publicID); } /** @inheritdoc {@link QuakeService.getQuakeHistory} */ async getQuakeHistory(publicID) { return await this.quakeService.getQuakeHistory(publicID); } /** @inheritdoc {@link QuakeService.getQuakeStats} */ async getQuakeStats() { return await this.quakeService.getQuakeStats(); } /** @inheritdoc {@link QuakeService.getQuakes} */ async getQuakes(mmi) { return await this.quakeService.getQuakes(mmi); } /** @inheritdoc {@link VolcanoService.getVolcanoAlertLevel} */ async getVolcanoAlertLevel() { return await this.volcanoService.getVolcanoAlertLevel(); } /** @inheritdoc {@link VolcanoService.getVolcanoQuakes} */ async getVolcanoQuakes(volcanoID) { return await this.volcanoService.getVolcanoQuakes(volcanoID); } /** @inheritdoc {@link NetworkService.getNetworkSensor} */ async getNetworkSensor(req) { return await this.networkService.getNetworkSensor(req); } /** @inheritdoc {@link NetworkService.getNetworkGNSSDetails} */ async getNetworkGNSSDetails(code) { return await this.networkService.getNetworkGNSSDetails(code); } /** @inheritdoc {@link NetworkService.getNetworkFDSNDetails} */ async getNetworkFDSNDetails(req) { return await this.networkService.getNetworkFDSNDetails(req); } /** @inheritdoc {@link QuakeMapUtil.generateMapURL} */ generateMapURL(coordinates, mmi) { return this.quakeMapUtil.generateMapURL(coordinates, mmi); } /** @inheritdoc {@link QuakeMapUtil.generateColourCode} */ generateColourCode(mmi) { return this.quakeMapUtil.generateColourCode(mmi); } } exports.GeoNet = GeoNet;