0.0.10 • Published 2 years ago
jhvrequest v0.0.10
jhvrequest
jhvrequest is a javascript package for sending SAMP requests to JHelioviewer
Usage
Install the package with npm
npm i jhvrequestImport and make requests.
import { JhvRequestBuilder } from "jhvrequest";
// Load AIA 304 between 2023-01-1 and 2023-01-02 every hour.
let requestBuilder = new JhvRequestBuilder();
requestBuilder
  .SetTimeRange("2023-01-01 00:00:00", "2023-01-02 00:00:00")
  .SetCadence(3600)
  .AddSource("SDO", "AIA 304")
  .Build()
  .Send();You can add multiple sources to the request:
let requestBuilder = new JhvRequestBuilder();
requestBuilder.SetTimeRange('2023-01-01 00:00:00', '2023-01-02 00:00:00')
    .SetCadence(3600)e
    .AddSource("SDO", "AIA 304")
    .AddSource("SOHO", "LASCO C2")
    .AddSource("SOHO", "LASCO C3")
    .Build().Send();You can check if JHelioviewer is alive before making any requests
import { IsJhvRunning } from "jhvrequest";
// IsJhvRunning returns true/false
let isJhvRunning = await IsJhvRunning();
if (isJhvRunning) {
  // Send request
} else {
  // Jhv is not running
}Nodejs vs Browser environments
The dependency sampjs currently only supports a browser environment because it
depends on xmlhttprequest and parsing xml via the DOM.
But you can get this to work in a nodejs environment with the xmlhttprequest
and xmldom package by adding XMLHttpRequest to the the global variable
and hooking the xmldom.DOMParser into XMLHttpRequest.prototype.responseXML.
See test/jhvrequest.test.ts as an example.
IsJhvRunning
async function checks if JHelioviewer is running and returns a boolean.
import { IsJhvRunning } from "jhvrequest";
// result is a true/false
let result = await IsJhvRunning();JhvRequestBuilder
| Method | Description | 
|---|---|
| SetName(appName) | Sets the application name. This is the name which appears in the JHelioviewer request popup. | 
| SetTimeRange(start, end) | Set the time range to query. Start and end are strings to remove ambiguity with js dates | 
| SetCadence(seconds) | Set the time step to use between start and end. in seconds. | 
| AddSource(observatory, dataset, (Optional) server) | Add an image layer to the request. | 
| Build() | Construct a JhvRequest from the builder | 
JhvRequest
| Method | Description | 
|---|---|
| Send() | Send the request to JHelioviewer. This is an async operation and will complete after the user accepts or declines the request in JHelioviewer. |