Browse Source

* Remove duplicates

Michaël Van Canneyt 3 years ago
parent
commit
19b7356981
2 changed files with 49 additions and 90 deletions
  1. 4 83
      packages/rtl/web.pas
  2. 45 7
      packages/rtl/weborworker.pas

+ 4 - 83
packages/rtl/web.pas

@@ -47,7 +47,6 @@ Type
   TJSShowOpenFilePickerOptions = class;
   TJSShowSaveFilePickerOptions = class;
   TJSClient = class;
-  TJSResponse = Class;
 
   TJSServiceWorker = weborworker.TJSServiceWorker;
   TJSServiceWorkerRegistration = weborworker.TJSServiceWorkerRegistration;
@@ -1372,22 +1371,6 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
 
 
   TJSTimerCallBack = weborworker.TJSTimerCallBack;
-  Theader = Array [0..1] of String;
-  THeaderArray = Array of Theader;
-
-  TJSHTMLHeaders = Class external name 'Headers' (TJSObject)
-  Public
-    constructor new(values : THeaderArray); overload;
-    procedure append(aName, aValue : String);
-    procedure delete(aName : String);
-    function entries : TJSIterator;
-    Function get(aName: String): string;
-    Function has(aName: String): Boolean;
-    function keys : TJSIterator; reintroduce;
-    function values : TJSIterator; reintroduce;
-    procedure set_(aName, aValue : String);
-    Property Headers[aName : string] : string Read Get Write Set_;
-  end;
 
 
   { TJSMediaQueryList }
@@ -1401,73 +1384,11 @@ TEventListenerEvent = class external name 'EventListener_Event' (TJSObject)
     Property media : String Read FMedia;
   end;
 
-  TJSReadableStream = class external name 'ReadableStream' (TJSObject)
-  private
-    flocked: Boolean; external name 'locked';
-  public
-    property locked: Boolean read flocked;
-    constructor new(underlyingSource: TJSObject);
-    constructor new(underlyingSource, queueingStrategy: TJSObject);
-    function cancel(reason: TJSDOMString): TJSPromise;
-    function getReader(): TJSObject; overload;
-    function getReader(mode: TJSObject): TJSObject; overload;
-    function pipeThrough(transformStream: TJSObject): TJSReadableStream; overload;
-    function pipeThrough(transformStream, options: TJSObject): TJSReadableStream; overload;
-    function pipeTo(destination: TJSObject): TJSPromise; overload;
-    function pipeTo(destination, options: TJSObject): TJSPromise; overload;
-    function tee(): TJSArray; // array containing two TJSReadableStream instances
-  end;
-
-  TJSWritableStream = class external name 'WritableStream' (TJSObject)
-  private
-    FLocked: Boolean; external name 'locked';
-  public
-    function abort(reason: String): TJSPromise;
-    function close: TJSPromise;
-    function getWriter: TJSObject;
-    property locked: Boolean read FLocked;
-  end;
+  TJSReadableStream = weborworker.TJSReadableStream;
+  TJSWritableStream = weborworker.TJSWritableStream;
+  TJSBody = weborworker.TJSBody;
 
-  TJSBody = class external name 'Body' (TJSObject)
-  private
-    fbody: TJSReadableStream; external name 'body';
-    fbodyUsed: Boolean; external name 'bodyUsed';
-  public
-    property body: TJSReadableStream read fbody;
-    property bodyUsed: Boolean read fbodyUsed;
-    function arrayBuffer(): TJSPromise; // resolves to TJSArrayBuffer
-    //function blob(): TJSPromise; // resolves to TJSBlob
-    function blob: TJSBlob; {$IFNDEF SkipAsync}async;{$ENDIF}
-    function json(): TJSPromise; // resolves to JSON / TJSValue
-    //function text(): TJSPromise; // resolves to USVString, always decoded using UTF-8
-    function text(): string; {$IFNDEF SkipAsync}async;{$ENDIF}
-  end;
-
-  TJSResponse = class external name 'Response' (TJSBody)
-  private
-    fheaders: TJSObject;external name 'headers';
-    fok: Boolean; external name 'ok';
-    fredirected: Boolean; external name 'redirected';
-    fstatus: NativeInt; external name 'status';
-    fstatusText: String; external name 'statusText';
-    ftype: String; external name 'type';
-    furl: String; external name 'url';
-    fuseFinalUrl: Boolean; external name 'useFinalUrl';
-  public
-    property headers: TJSObject read fheaders; //
-    property ok: Boolean read fok;
-    property redirected: Boolean read fredirected;
-    property status: NativeInt read fstatus;
-    property statusText: String read fstatusText; //
-    property type_: String read ftype; //
-    property url: String read furl; //
-    property useFinalUrl: Boolean read fuseFinalUrl write fuseFinalUrl;
-    constructor new(body: TJSObject; init: TJSObject); overload; varargs; external name 'new';
-    constructor new(Msg: string; init: TJSObject); overload; varargs; external name 'new';
-    function clone(): TJSResponse;
-    function error(): TJSResponse;
-    function redirect(url: String; Status: NativeInt): TJSResponse;
-  end;
+  TJSResponse = weborworker.TJSResponse;
 
   TJSDOMHighResTimeStamp = Double;
   TFrameRequestCallback = reference to procedure (aTime: TJSDOMHighResTimeStamp);

+ 45 - 7
packages/rtl/weborworker.pas

@@ -145,6 +145,17 @@ type
     function tee(): TJSArray; // array containing two TJSReadableStream instances
   end;
 
+  TJSWritableStream = class external name 'WritableStream' (TJSObject)
+  private
+    FLocked: Boolean; external name 'locked';
+  public
+    function abort(reason: String): TJSPromise;
+    function close: TJSPromise;
+    function getWriter: TJSObject;
+    property locked: Boolean read FLocked;
+  end;
+
+
   TJSBlob = class external name 'Blob' (TJSEventTarget)
   private
     FSize: NativeInt; external name 'size';
@@ -176,10 +187,33 @@ type
     function text(): string; {$IFNDEF SkipAsync}async;{$ENDIF}
   end;
 
+  Theader = Array [0..1] of String;
+  THeaderArray = Array of Theader;
+
+  TJSHTMLHeaders = Class external name 'Headers' (TJSObject)
+  Public
+    constructor new(values : THeaderArray); overload;
+    procedure append(aName, aValue : String);
+    procedure delete(aName : String);
+    function entries : TJSIterator;
+    Function get(aName: String): string;
+    Function has(aName: String): Boolean;
+    function keys : TJSIterator; reintroduce;
+    function values : TJSIterator; reintroduce;
+    procedure set_(aName, aValue : String);
+    Property Headers[aName : string] : string Read Get Write Set_;
+  end;
+
+  TJSResponseInit = class external name 'Object' (TJSObject)
+    status : Integer;
+    statusText : String;
+    headersObj : TJSObject;
+    headers : TJSHTMLHeaders;
+  end;
 
   TJSResponse = class external name 'Response' (TJSBody)
   private
-    fheaders: TJSObject;external name 'headers';
+    fheaders: TJSHTMLHeaders;external name 'headers';
     fok: Boolean; external name 'ok';
     fredirected: Boolean; external name 'redirected';
     fstatus: NativeInt; external name 'status';
@@ -188,7 +222,16 @@ type
     furl: String; external name 'url';
     fuseFinalUrl: Boolean; external name 'useFinalUrl';
   public
-    property headers: TJSObject read fheaders; //
+    constructor new(body: TJSObject; init: TJSObject); overload; varargs; external name 'new'; deprecated;
+    constructor new(Msg: string; init: TJSObject); overload; varargs; external name 'new';   deprecated;
+    constructor new(body: TJSObject); overload; varargs; external name 'new';
+    constructor new(Msg: string); overload; varargs; external name 'new';
+    constructor new(body: TJSObject; init: TJSResponseInit); overload; varargs; external name 'new';
+    constructor new(Msg: string; init: TJSResponseInit); overload; varargs; external name 'new';
+    function clone(): TJSResponse;
+    function error(): TJSResponse;
+    function redirect(url: String; Status: NativeInt): TJSResponse;
+    property headers: TJSHTMLHeaders read fheaders; //
     property ok: Boolean read fok;
     property redirected: Boolean read fredirected;
     property status: NativeInt read fstatus;
@@ -196,11 +239,6 @@ type
     property type_: String read ftype; //
     property url: String read furl; //
     property useFinalUrl: Boolean read fuseFinalUrl write fuseFinalUrl;
-    constructor new(body: TJSObject; init: TJSObject); overload; varargs; external name 'new';
-    constructor new(Msg: string; init: TJSObject); overload; varargs; external name 'new';
-    function clone(): TJSResponse;
-    function error(): TJSResponse;
-    function redirect(url: String; Status: NativeInt): TJSResponse;
   end;
 
   TJSFormData = class external name 'FormData' (TJSObject)