pas2js/packages/rtl/webworker.pas
Michaël Van Canneyt 6996e9b418 * Fix casing
2022-08-28 12:15:42 +02:00

128 lines
4.4 KiB
ObjectPascal

unit webworker;
{$mode ObjFPC}
{$modeswitch externalclass}
interface
uses
JS, weborworker;
Type
{ TJSWorkerNavigator }
TJSWorkerNavigator = class external name 'WorkerNavigator' (TJSObject)
private
FhardwareConcurrency: Integer; external name 'hardwareConcurrency';
FLanguage: String; external name 'language';
FLanguages: TJSStringDynArray; external name 'languages';
FOnline: boolean; external name 'onLine';
FPlatform: string; external name 'platform';
FUserAgent: string; external name 'userAgent';
public
property language : String read FLanguage;
property languages : TJSStringDynArray read FLanguages;
property onLine : boolean read FOnline;
property platform : string read FPlatform;
property userAgent : string read FUserAgent;
property hardwareConcurrency : Integer Read FhardwareConcurrency;
end;
{ TJSWorkerLocation }
TJSWorkerLocation = class external name 'WorkerLocation' (TJSObject)
Private
FHash: string;external name 'hash';
FHost: string;external name 'host';
FHostName: string;external name 'hostname';
FHRef: string; external name 'href';
FOrigin : string; external name 'origin';
FPathName: string;external name 'pathname';
FPort: string;external name 'port';
FProtocol: string;external name 'protocol';
FSearch: string;external name 'search';
Public
Property hash : string Read FHash;
Property host : string read FHost;
Property hostname : string read FHostName;
Property href : string read FHRef;
Property pathname : string Read FPathName;
Property port : string Read FPort;
Property protocol : string Read FProtocol;
Property search : string read FSearch;
property origin : string read FOrigin;
end;
{ TJSWorkerGlobalScope }
TJSWorkerGlobalScope = class external name 'WorkerGlobalScope' (TWindowOrWorkerGlobalScope)
private
FConsole: TJSConsole; external name 'console';
FLocation: TJSWorkerLocation; external name 'location';
FNavigator: TJSWorkerNavigator; external name 'navigator';
FSelf : TJSWorkerGlobalScope external name 'self';
Public
procedure importScripts(path : string); varargs;
property Navigator: TJSWorkerNavigator read FNavigator;
property console : TJSConsole Read FConsole;
property location : TJSWorkerLocation Read FLocation;
Property Self_ : TJSWorkerGlobalScope Read FSelf;
end;
{ TJSDedicatedWorkerGlobalScope }
TJSDedicatedWorkerGlobalScope = class external name 'DedicatedWorkerGlobalScope' (TJSWorkerGlobalScope)
private
FName: String; external name 'name';
Public
Procedure close;
Procedure postMessage(aMessage : JSValue); overload;
Procedure postMessage(aMessage : JSValue; TransferableObjects : Array of JSValue); overload;
Property name : String Read FName;
end;
TJSClientsMatchAllOptions = class external name 'Object'
includeUncontrolled : Boolean;
type_ : string; external name 'type';
end;
TJSClients = class external name 'Clients' (TJSObject)
function claim : TJSPromise;
function get(ID : String) : TJSPromise;
function matchAll : TJSPromise;
function matchAll(Options : TJSClientsMatchAllOptions) : TJSPromise;
function matchAll(Options : TJSObject) : TJSPromise;
function openWindow(url : string) : TJSPromise;
end;
{ TJSServiceworkerGlobalScope }
TJSServiceworkerGlobalScope = class external name 'ServiceWorkerGlobalScope' (TJSWorkerGlobalScope)
private
FClients: TJSClients; external name 'clients';
FRegistration: TJSServiceWorkerRegistration; external name 'registration';
Public
Function SkipWaiting : TJSPromise; external name 'skipWaiting';
property registration : TJSServiceWorkerRegistration Read FRegistration;
property clients : TJSClients Read FClients;
end;
Var
Self_ : TJSServiceWorkerGlobalScope; external name 'self';
location : TJSWorkerLocation;
console : TJSConsole;
navigator : TJSWorkerNavigator;
caches : TJSCacheStorage;
function fetch(resource: String; init: TJSObject): TJSPromise; overload; external name 'fetch';
//function fetch(resource: String): TJSPromise; overload; external name 'fetch';
function fetch(resource: String): TJSResponse; {$IFNDEF SkipAsync}async;{$ENDIF} overload; external name 'fetch';
function fetch(resource: TJSObject; init: TJSObject): TJSPromise; overload; external name 'fetch';
function fetch(resource: TJSObject): TJSPromise; overload; external name 'fetch';
implementation
end.