| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This code is copied from `package:web` which still needs its own |
| // documentation for public members. Since this is a shim that users should not |
| // use, we ignore this lint for this file. |
| // ignore_for_file: public_member_api_docs |
| |
| /// A stripped down version of `package:web` to avoid pinning that repo in |
| /// Flutter as a dependency. |
| /// |
| /// These are manually copied over from `package:web` as needed, and should stay |
| /// in sync with the latest package version as much as possible. |
| /// |
| /// If missing members are needed, copy them over into the corresponding |
| /// extension or interface. If missing interfaces/types are needed, copy them |
| /// over while excluding unnecessary inheritance to make the copy minimal. These |
| /// types are erased at runtime, so excluding supertypes is safe. If a member is |
| /// needed that belongs to a supertype, then add the necessary `implements` |
| /// clause to the subtype when you add that supertype. Keep extensions next to |
| /// the interface they extend. |
| library; |
| |
| import 'dart:js_interop'; |
| |
| @JS() |
| external Window get window; |
| |
| extension type Window._(JSObject _) implements JSObject { |
| external JSPromise<Response> fetch( |
| JSAny input, [ |
| RequestInit init, |
| ]); |
| external Location get location; |
| external Window? get parent; |
| external void postMessage(JSAny message, JSString targetOrigin, JSArray<JSAny> transfers); |
| |
| external JSString? get testSelector; |
| } |
| |
| extension type Response._(JSObject _) implements JSObject { |
| external JSPromise<JSString> text(); |
| } |
| |
| extension type RequestInit._(JSObject _) implements JSObject { |
| external factory RequestInit({ |
| String method, |
| JSAny? body, |
| }); |
| } |
| |
| extension type Location._(JSObject _) implements JSObject { |
| external JSString get origin; |
| } |
| |
| extension type MessageChannel._(JSObject _) implements JSObject { |
| external factory MessageChannel(); |
| |
| external MessagePort port1; |
| external MessagePort port2; |
| } |
| |
| extension type MessagePort._(JSObject _) implements JSObject { |
| external void addEventListener(JSString eventName, JSFunction callback); |
| external void removeEventListener(JSString eventName, JSFunction callback); |
| external void postMessage(JSAny? message); |
| |
| external void start(); |
| } |
| |
| extension type Event._(JSObject _) implements JSObject { |
| external JSObject? get data; |
| } |