[Pas2js] window.fetch API
Michael Van Canneyt
michael at freepascal.org
Sat Jul 27 13:17:34 CEST 2019
Added with minor changes, revision 554.
Once more many thanks!
Michael.
On Sat, 27 Jul 2019, Michael Van Canneyt wrote:
>
> Hello,
>
> This is great ! Thank you for this !
>
> I will add them to the web unit, they were on my ToDo list, you saved me
> some work :-)
>
> Michael.
>
> On Sat, 27 Jul 2019, Simon Ameis wrote:
>
>> Hello all,
>>
>> I'd like to contribute the bindings for the Fetch API as documented
>> here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
>>
>> The methods in TWindowHelper may be integrated into TJSWindow directly.
>> However I didn't want to modify the pas2js sources for my project.
>>
>> TJSReadableStream = class external name 'ReadableStream'
>> 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;
>>
>> 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 json(): TJSPromise; // resolves to JSON / TJSValue
>> function text(): TJSPromise; // resolves to USVString, always
>> decoded using UTF-8
>> 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); varargs; external
>> name 'new';
>> function clone(): TJSResponse;
>> function error(): TJSResponse;
>> function redirect(url: String; Status: NativeInt): TJSResponse;
>> end;
>>
>> TWindowHelper = class helper for TJSWindow
>> function fetch(resource: String; init: TJSObject): TJSPromise;
>> overload; external name 'fetch';
>> function fetch(resource: String): TJSPromise; overload; external
>> name 'fetch';
>> function fetch(resource: TJSObject; init: TJSObject): TJSPromise;
>> overload; external name 'fetch';
>> function fetch(resource: TJSObject): TJSPromise; overload; external
>> name 'fetch';
>> end;
>>
>> Kind Regards
>> Simon Ameis
>>
>> _______________________________________________
>> Pas2js maillist - Pas2js at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/pas2js
More information about the Pas2js
mailing list