UNPKG

scriptable-testlab

Version:

A lightweight, efficient tool designed to manage and update scripts for Scriptable.

71 lines 1.75 kB
import { AbsWebView } from "scriptable-abstract"; const DEFAULT_STATE = { shouldAllowRequest: () => true }; class MockWebView extends AbsWebView { constructor() { super(DEFAULT_STATE); } /** * Loads HTML and renders it. */ static async loadHTML(html, baseURL, _preferredSize, fullscreen) { const webView = new MockWebView(); await webView.loadHTML(html, baseURL); await webView.present(fullscreen); } /** * Loads a file and renders it. */ static async loadFile(fileURL, _preferredSize, fullscreen) { const webView = new MockWebView(); await webView.loadFile(fileURL); await webView.present(fullscreen); } /** * Loads URL in web view and presents the web view. */ static async loadURL(url, _preferredSize, fullscreen) { const webView = new MockWebView(); await webView.loadURL(url); await webView.present(fullscreen); } get shouldAllowRequest() { return this.state.shouldAllowRequest; } set shouldAllowRequest(value) { this.setState({ shouldAllowRequest: value }); } async loadURL(url) { this.setState({ url }); } async loadHTML(html, baseURL) { this.setState({ html, baseURL }); } async loadRequest(request) { if (this.state.shouldAllowRequest(request)) { this.setState({ url: request.url }); } } async loadFile(path) { this.setState({ url: `file://${path}` }); } async evaluateJavaScript(_javaScript, _useCallback) { return null; } async getHTML() { return this.state.html ?? ""; } async getURL() { return this.state.url ?? ""; } present(_fullscreen) { return Promise.resolve(); } async waitForLoad() { } } export { MockWebView }; //# sourceMappingURL=webview.js.map