summaryrefslogtreecommitdiff
path: root/_www/functions.ts
diff options
context:
space:
mode:
Diffstat (limited to '_www/functions.ts')
-rw-r--r--_www/functions.ts412
1 files changed, 212 insertions, 200 deletions
diff --git a/_www/functions.ts b/_www/functions.ts
index 60d3af2..8810640 100644
--- a/_www/functions.ts
+++ b/_www/functions.ts
@@ -1,97 +1,92 @@
// SPDX-FileCopyrightText: 2021 M. Shulhan <ms@kilabit.info>
// SPDX-License-Identifier: GPL-3.0-or-later
-import { WuiInputNumber, WuiInputNumberOpts } from "./wui/input/number.js"
-import { WuiInputString, WuiInputStringOpts } from "./wui/input/string.js"
+import { WuiInputNumber, WuiInputNumberOpts } from "./wui/input/number.js";
+import { WuiInputString, WuiInputStringOpts } from "./wui/input/string.js";
import {
- CLASS_INPUT,
- CLASS_INPUT_LABEL,
- FormInput,
- FormInputKindNumber,
- FormInputKindString,
- HttpTargetInterface,
- TargetInterface,
- WebSocketTargetInterface,
-} from "./interface.js"
+ CLASS_INPUT,
+ CLASS_INPUT_LABEL,
+ FormInput,
+ FormInputKindNumber,
+ HttpTargetInterface,
+ TargetInterface,
+ WebSocketTargetInterface,
+} from "./interface.js";
export function GetDocumentHeight() {
- var D = document
- return Math.max(
- Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
- Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
- Math.max(D.body.clientHeight, D.documentElement.clientHeight),
- )
+ var D = document;
+ return Math.max(
+ Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
+ Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
+ Math.max(D.body.clientHeight, D.documentElement.clientHeight),
+ );
}
export function GenerateFormInput(parent: HTMLElement, fi: FormInput) {
- switch (fi.kind) {
- case FormInputKindNumber:
- let wui_input_number_opts: WuiInputNumberOpts = {
- label: fi.label,
- hint: fi.hint,
- value: +fi.value,
- class_input: CLASS_INPUT,
- class_label: CLASS_INPUT_LABEL,
- is_hint_toggled: true,
- onChangeHandler: (new_value: number) => {
- fi.value = "" + new_value
- },
- }
- if (fi.max) {
- wui_input_number_opts.max = fi.max
- }
- if (fi.min) {
- wui_input_number_opts.min = fi.min
- }
- let wui_input_number = new WuiInputNumber(
- wui_input_number_opts,
- )
- parent.appendChild(wui_input_number.el)
- break
+ switch (fi.kind) {
+ case FormInputKindNumber:
+ let wui_input_number_opts: WuiInputNumberOpts = {
+ label: fi.label,
+ hint: fi.hint,
+ value: +fi.value,
+ class_input: CLASS_INPUT,
+ class_label: CLASS_INPUT_LABEL,
+ is_hint_toggled: true,
+ onChangeHandler: (new_value: number) => {
+ fi.value = "" + new_value;
+ },
+ };
+ if (fi.max) {
+ wui_input_number_opts.max = fi.max;
+ }
+ if (fi.min) {
+ wui_input_number_opts.min = fi.min;
+ }
+ let wui_input_number = new WuiInputNumber(wui_input_number_opts);
+ parent.appendChild(wui_input_number.el);
+ break;
- default:
- let wui_input_string_opts: WuiInputStringOpts = {
- label: fi.label,
- hint: fi.hint,
- value: fi.value,
- class_input: CLASS_INPUT,
- class_label: CLASS_INPUT_LABEL,
- is_hint_toggled: true,
- onChangeHandler: (new_value: string) => {
- fi.value = new_value
- },
- }
- let wui_input_string = new WuiInputString(
- wui_input_string_opts,
- )
- parent.appendChild(wui_input_string.el)
- break
- }
+ default:
+ let wui_input_string_opts: WuiInputStringOpts = {
+ label: fi.label,
+ hint: fi.hint,
+ value: fi.value,
+ class_input: CLASS_INPUT,
+ class_label: CLASS_INPUT_LABEL,
+ is_hint_toggled: true,
+ onChangeHandler: (new_value: string) => {
+ fi.value = new_value;
+ },
+ };
+ let wui_input_string = new WuiInputString(wui_input_string_opts);
+ parent.appendChild(wui_input_string.el);
+ break;
+ }
}
export function HttpMethodToString(m: number): string {
- switch (m) {
- case 0:
- return "GET"
- case 1:
- return "CONNECT"
- case 2:
- return "DELETE"
- case 3:
- return "HEAD"
- case 4:
- return "OPTIONS"
- case 5:
- return "PATCH"
- case 6:
- return "POST"
- case 7:
- return "PUT"
- case 8:
- return "TRACE"
- }
- return "???"
+ switch (m) {
+ case 0:
+ return "GET";
+ case 1:
+ return "CONNECT";
+ case 2:
+ return "DELETE";
+ case 3:
+ return "HEAD";
+ case 4:
+ return "OPTIONS";
+ case 5:
+ return "PATCH";
+ case 6:
+ return "POST";
+ case 7:
+ return "PUT";
+ case 8:
+ return "TRACE";
+ }
+ return "???";
}
//
@@ -99,25 +94,30 @@ export function HttpMethodToString(m: number): string {
// If no header exist in storage return the one from HttpTarget itself.
//
export function LoadHttpTargetHeader(
- target: TargetInterface,
- httpTarget: HttpTargetInterface,
- key: string,
+ target: TargetInterface,
+ httpTarget: HttpTargetInterface,
+ key: string,
): string {
- let storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`
- return (
- window.localStorage.getItem(storageKey) ||
- httpTarget.Headers[key].value
- )
+ let storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const header = httpTarget.Headers[key];
+ if (header) {
+ return header.value;
+ }
+ return "";
}
function saveHttpTargetHeader(
- target: TargetInterface,
- httpTarget: HttpTargetInterface,
- key: string,
- value: string,
+ target: TargetInterface,
+ httpTarget: HttpTargetInterface,
+ key: string,
+ value: string,
) {
- let storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`
- window.localStorage.setItem(storageKey, value)
+ let storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`;
+ window.localStorage.setItem(storageKey, value);
}
//
@@ -125,70 +125,72 @@ function saveHttpTargetHeader(
// If no parameter exist in storage return the one from HttpTarget itself.
//
export function LoadHttpTargetParam(
- target: TargetInterface,
- httpTarget: HttpTargetInterface,
- key: string,
+ target: TargetInterface,
+ httpTarget: HttpTargetInterface,
+ key: string,
): string {
- let storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`
- return (
- window.localStorage.getItem(storageKey) ||
- httpTarget.Params[key].value
- )
+ let storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const param = httpTarget.Params[key];
+ if (param) {
+ return param.value;
+ }
+ return "";
}
function saveHttpTargetParam(
- target: TargetInterface,
- httpTarget: HttpTargetInterface,
- key: string,
- value: string,
+ target: TargetInterface,
+ httpTarget: HttpTargetInterface,
+ key: string,
+ value: string,
) {
- let storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`
- window.localStorage.setItem(storageKey, value)
+ let storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`;
+ window.localStorage.setItem(storageKey, value);
}
export function LoadTargetOptDuration(target: TargetInterface): number {
- let storageKey = `${target.ID}.opt.Duration`
- let val = window.localStorage.getItem(storageKey)
- if (val) {
- return +val / 1e9
- }
- return target.Opts.Duration / 1e9
+ let storageKey = `${target.ID}.opt.Duration`;
+ let val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return +val / 1e9;
+ }
+ return target.Opts.Duration / 1e9;
}
function saveTargetOptDuration(target: TargetInterface) {
- let storageKey = `${target.ID}.opt.Duration`
- window.localStorage.setItem(storageKey, "" + target.Opts.Duration)
+ let storageKey = `${target.ID}.opt.Duration`;
+ window.localStorage.setItem(storageKey, "" + target.Opts.Duration);
}
export function LoadTargetOptRatePerSecond(target: TargetInterface): number {
- let storageKey = `${target.ID}.opt.RatePerSecond`
- let val = window.localStorage.getItem(storageKey)
- if (val) {
- return +val
- }
- return target.Opts.RatePerSecond
+ let storageKey = `${target.ID}.opt.RatePerSecond`;
+ let val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return +val;
+ }
+ return target.Opts.RatePerSecond;
}
function saveTargetOptRatePerSecond(target: TargetInterface) {
- let storageKey = `${target.ID}.opt.RatePerSecond`
- window.localStorage.setItem(
- storageKey,
- "" + target.Opts.RatePerSecond,
- )
+ let storageKey = `${target.ID}.opt.RatePerSecond`;
+ window.localStorage.setItem(storageKey, "" + target.Opts.RatePerSecond);
}
export function LoadTargetOptTimeout(target: TargetInterface): number {
- let storageKey = `${target.ID}.opt.Timeout`
- let val = window.localStorage.getItem(storageKey)
- if (val) {
- return +val / 1e9
- }
- return target.Opts.Timeout / 1e9
+ let storageKey = `${target.ID}.opt.Timeout`;
+ let val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return +val / 1e9;
+ }
+ return target.Opts.Timeout / 1e9;
}
function saveTargetOptTimeout(target: TargetInterface) {
- let storageKey = `${target.ID}.opt.Timeout`
- window.localStorage.setItem(storageKey, "" + target.Opts.Timeout)
+ let storageKey = `${target.ID}.opt.Timeout`;
+ window.localStorage.setItem(storageKey, "" + target.Opts.Timeout);
}
//
@@ -196,41 +198,51 @@ function saveTargetOptTimeout(target: TargetInterface) {
// value.
//
export function LoadTargetVar(target: TargetInterface, key: string): string {
- let storageKey = `${target.ID}.var.${key}`
- return (
- window.localStorage.getItem(storageKey) ||
- target.Vars[key].value
- )
+ let storageKey = `${target.ID}.var.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const tvar = target.Vars[key];
+ if (tvar) {
+ return tvar.value;
+ }
+ return "";
}
function saveTargetVar(target: TargetInterface, key: string, value: string) {
- let storageKey = `${target.ID}.var.${key}`
- window.localStorage.setItem(storageKey, value)
+ let storageKey = `${target.ID}.var.${key}`;
+ window.localStorage.setItem(storageKey, value);
}
//
// LoadWsTargetHeader get the WebSocketTarget from local storage by key.
//
export function LoadWsTargetHeader(
- target: TargetInterface,
- wsTarget: WebSocketTargetInterface,
- key: string,
+ target: TargetInterface,
+ wsTarget: WebSocketTargetInterface,
+ key: string,
): string {
- let storageKey = `${target.ID}.ws.${wsTarget.ID}.header.${key}`
- return (
- window.localStorage.getItem(storageKey) ||
- wsTarget.Headers[key].value
- )
+ let storageKey = `${target.ID}.ws.${wsTarget.ID}.header.${key}`;
+ const val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const header = wsTarget.Headers[key];
+ if (header) {
+ return header.value;
+ }
+ return "";
}
function saveWsTargetHeader(
- target: TargetInterface,
- wsTarget: WebSocketTargetInterface,
- key: string,
- value: string,
+ target: TargetInterface,
+ wsTarget: WebSocketTargetInterface,
+ key: string,
+ value: string,
) {
- let storageKey = `${target.ID}.ws.${wsTarget.ID}.header.${key}`
- window.localStorage.setItem(storageKey, value)
+ let storageKey = `${target.ID}.ws.${wsTarget.ID}.header.${key}`;
+ window.localStorage.setItem(storageKey, value);
}
//
@@ -238,25 +250,30 @@ function saveWsTargetHeader(
// return the one from wsTarget if its not exist.
//
export function LoadWsTargetParam(
- target: TargetInterface,
- wsTarget: WebSocketTargetInterface,
- key: string,
+ target: TargetInterface,
+ wsTarget: WebSocketTargetInterface,
+ key: string,
): string {
- let storageKey = `${target.ID}.ws.${wsTarget.ID}.param.${key}`
- return (
- window.localStorage.getItem(storageKey) ||
- wsTarget.Params[key].value
- )
+ let storageKey = `${target.ID}.ws.${wsTarget.ID}.param.${key}`;
+ let val = window.localStorage.getItem(storageKey);
+ if (val) {
+ return val;
+ }
+ const param = wsTarget.Params[key];
+ if (param) {
+ return param.value;
+ }
+ return "";
}
function saveWsTargetParam(
- target: TargetInterface,
- wsTarget: WebSocketTargetInterface,
- key: string,
- value: string,
+ target: TargetInterface,
+ wsTarget: WebSocketTargetInterface,
+ key: string,
+ value: string,
) {
- let storageKey = `${target.ID}.ws.${wsTarget.ID}.param.${key}`
- window.localStorage.setItem(storageKey, value)
+ let storageKey = `${target.ID}.ws.${wsTarget.ID}.param.${key}`;
+ window.localStorage.setItem(storageKey, value);
}
//
@@ -264,36 +281,31 @@ function saveWsTargetParam(
// WebSocket to local storage.
//
export function Save(
- target: TargetInterface,
- httpTarget: HttpTargetInterface | null,
- wsTarget: WebSocketTargetInterface | null,
+ target: TargetInterface,
+ httpTarget: HttpTargetInterface | null,
+ wsTarget: WebSocketTargetInterface | null,
) {
- saveTargetOptDuration(target)
- saveTargetOptRatePerSecond(target)
- saveTargetOptTimeout(target)
+ saveTargetOptDuration(target);
+ saveTargetOptRatePerSecond(target);
+ saveTargetOptTimeout(target);
- for (const k in target.Vars) {
- let fi = target.Vars[k]
- saveTargetVar(target, k, fi.value)
- }
- if (httpTarget) {
- for (const k in httpTarget.Headers) {
- let fi = httpTarget.Headers[k]
- saveHttpTargetHeader(target, httpTarget, k, fi.value)
- }
- for (const k in httpTarget.Params) {
- let fi = httpTarget.Params[k]
- saveHttpTargetParam(target, httpTarget, k, fi.value)
- }
- }
- if (wsTarget) {
- for (const k in wsTarget.Headers) {
- let fi = wsTarget.Headers[k]
- saveWsTargetHeader(target, wsTarget, k, fi.value)
- }
- for (const k in wsTarget.Params) {
- let fi = wsTarget.Params[k]
- saveWsTargetParam(target, wsTarget, k, fi.value)
- }
- }
+ for (const [k, fi] of Object.entries(target.Vars)) {
+ saveTargetVar(target, k, fi.value);
+ }
+ if (httpTarget) {
+ for (const [k, fi] of Object.entries(httpTarget.Headers)) {
+ saveHttpTargetHeader(target, httpTarget, k, fi.value);
+ }
+ for (const [k, fi] of Object.entries(httpTarget.Params)) {
+ saveHttpTargetParam(target, httpTarget, k, fi.value);
+ }
+ }
+ if (wsTarget) {
+ for (const [k, fi] of Object.entries(wsTarget.Headers)) {
+ saveWsTargetHeader(target, wsTarget, k, fi.value);
+ }
+ for (const [k, fi] of Object.entries(wsTarget.Params)) {
+ saveWsTargetParam(target, wsTarget, k, fi.value);
+ }
+ }
}