mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-05-03 01:43:52 +02:00
128 lines
4.4 KiB
ObjectPascal
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.
|
|
|