Skip to content

Commit

Permalink
dep types: Use TsFlower for expo-web-browser
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisbobbe committed Aug 12, 2022
1 parent 17e42fc commit 3e87323
Show file tree
Hide file tree
Showing 9 changed files with 302 additions and 143 deletions.
7 changes: 7 additions & 0 deletions tools/tsflower
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,13 @@ run_only()
run_on_package "${package}"
format_dir "${rootdir}"/types/"${package}"

package=expo-web-browser
run_on_package "${package}"
# TODO(tsflower): skip node_modules when acting on package,
# so we don't have to delete it here
rm -rf "${rootdir}"/types/"${package}"/node_modules/
format_dir "${rootdir}"/types/"${package}"

package=react-native-safe-area-context
run_on_package "${package}"
format_dir "${rootdir}"/types/"${package}"
Expand Down
94 changes: 0 additions & 94 deletions types/expo-web-browser/WebBrowser.types.js.flow

This file was deleted.

6 changes: 6 additions & 0 deletions types/expo-web-browser/build/ExpoWebBrowser.js.flow
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/* @flow
* @generated by TsFlower
*/
import type { ProxyNativeModule as $tsflower_import_type$_$expo_2d_modules_2d_core$ProxyNativeModule, } from "expo-modules-core";
declare var _default: $tsflower_import_type$_$expo_2d_modules_2d_core$ProxyNativeModule;
export default _default;
28 changes: 28 additions & 0 deletions types/expo-web-browser/build/ExpoWebBrowser.web.js.flow
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/* @flow
* @generated by TsFlower
*/
import {
type WebBrowserAuthSessionResult,
type WebBrowserOpenOptions,
type WebBrowserResult,
} from "./WebBrowser.types";

declare var _default: {
+name: string,
openBrowserAsync(url: string, browserParams?: WebBrowserOpenOptions): Promise<WebBrowserResult>,
dismissAuthSession(): void,
maybeCompleteAuthSession({ skipRedirectCheck?: boolean | void, ... }): {
type: "success" | "failed",
message: string,
...
},
openAuthSessionAsync(
url: string,
redirectUrl?: string | void,
openOptions?: WebBrowserOpenOptions | void
): Promise<WebBrowserAuthSessionResult>,
...
};

export default _default;
declare export function featureObjectToString(features: { [key: string]: any }): string;
43 changes: 43 additions & 0 deletions types/expo-web-browser/build/WebBrowser.js.flow
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/* @flow
* @generated by TsFlower
*/
import {
type WebBrowserAuthSessionResult as WebBrowserAuthSessionResult_,
type WebBrowserCompleteAuthSessionOptions as WebBrowserCompleteAuthSessionOptions_,
type WebBrowserCompleteAuthSessionResult as WebBrowserCompleteAuthSessionResult_,
type WebBrowserCoolDownResult as WebBrowserCoolDownResult_,
type WebBrowserCustomTabsResults as WebBrowserCustomTabsResults_,
type WebBrowserMayInitWithUrlResult as WebBrowserMayInitWithUrlResult_,
type WebBrowserOpenOptions as WebBrowserOpenOptions_,
type WebBrowserRedirectResult as WebBrowserRedirectResult_,
type WebBrowserResult as WebBrowserResult_,
WebBrowserResultType,
type WebBrowserResultTypeT as WebBrowserResultTypeT_,
type WebBrowserWarmUpResult as WebBrowserWarmUpResult_,
type WebBrowserWindowFeatures as WebBrowserWindowFeatures_,
} from "./WebBrowser.types";

export { WebBrowserResultType };

export type WebBrowserAuthSessionResult = WebBrowserAuthSessionResult_;
export type WebBrowserCompleteAuthSessionOptions = WebBrowserCompleteAuthSessionOptions_;
export type WebBrowserCompleteAuthSessionResult = WebBrowserCompleteAuthSessionResult_;
export type WebBrowserCoolDownResult = WebBrowserCoolDownResult_;
export type WebBrowserCustomTabsResults = WebBrowserCustomTabsResults_;
export type WebBrowserMayInitWithUrlResult = WebBrowserMayInitWithUrlResult_;
export type WebBrowserOpenOptions = WebBrowserOpenOptions_;
export type WebBrowserRedirectResult = WebBrowserRedirectResult_;
export type WebBrowserResult = WebBrowserResult_;
export type WebBrowserResultTypeT = WebBrowserResultTypeT_;
export type WebBrowserWarmUpResult = WebBrowserWarmUpResult_;
export type WebBrowserWindowFeatures = WebBrowserWindowFeatures_;

declare export function getCustomTabsSupportingBrowsersAsync(): Promise<WebBrowserCustomTabsResults>;
declare export function warmUpAsync(browserPackage?: string): Promise<WebBrowserWarmUpResult>;
declare export function mayInitWithUrlAsync(url: string, browserPackage?: string): Promise<WebBrowserMayInitWithUrlResult>;
declare export function coolDownAsync(browserPackage?: string): Promise<WebBrowserCoolDownResult>;
declare export function openBrowserAsync(url: string, browserParams?: WebBrowserOpenOptions): Promise<WebBrowserResult>;
declare export function dismissBrowser(): void;
declare export function openAuthSessionAsync(url: string, redirectUrl: string, browserParams?: WebBrowserOpenOptions): Promise<WebBrowserAuthSessionResult>;
declare export function dismissAuthSession(): void;
declare export function maybeCompleteAuthSession(options?: WebBrowserCompleteAuthSessionOptions): WebBrowserCompleteAuthSessionResult;
69 changes: 69 additions & 0 deletions types/expo-web-browser/build/WebBrowser.types.js.flow
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/* @flow
* @generated by TsFlower
*/
export type RedirectEvent = { url: string, ... };
export type WebBrowserWindowFeatures = { [key: string]: number | boolean | string };

export type WebBrowserOpenOptions = {
toolbarColor?: string,
browserPackage?: string,
enableBarCollapsing?: boolean,
secondaryToolbarColor?: string,
showTitle?: boolean,
enableDefaultShareMenuItem?: boolean,
showInRecents?: boolean,
createTask?: boolean,
controlsColor?: string,
dismissButtonStyle?: "done" | "close" | "cancel",
readerMode?: boolean,
windowName?: string,
windowFeatures?: string | WebBrowserWindowFeatures,
...
};

export type WebBrowserAuthSessionResult = WebBrowserRedirectResult | WebBrowserResult;

export type WebBrowserCustomTabsResults = {
defaultBrowserPackage?: string,
preferredBrowserPackage?: string,
browserPackages: string[],
servicePackages: string[],
...
};

declare export var WebBrowserResultType: {|
/**
* iOS only.
*/
+CANCEL: 'cancel',
/**
* iOS only.
*/
+DISMISS: 'dismiss',
/**
* Android only.
*/
+OPENED: 'opened',
+LOCKED: 'locked',
|}
export type WebBrowserResultTypeT = $Values<typeof WebBrowserResultType>;

export type WebBrowserResult = { type: WebBrowserResultTypeT, ... };

export type WebBrowserRedirectResult = {
type: "success",
url: string,
...
};

export type ServiceActionResult = { servicePackage?: string, ... };
export type WebBrowserMayInitWithUrlResult = ServiceActionResult;
export type WebBrowserWarmUpResult = ServiceActionResult;
export type WebBrowserCoolDownResult = ServiceActionResult;
export type WebBrowserCompleteAuthSessionOptions = { skipRedirectCheck?: boolean, ... };

export type WebBrowserCompleteAuthSessionResult = {
type: "success" | "failed",
message: string,
...
};
52 changes: 3 additions & 49 deletions types/expo-web-browser/index.js.flow
Original file line number Diff line number Diff line change
@@ -1,50 +1,4 @@
/**
* Types for the NPM package `expo-web-browser`.
*
* @flow strict-local
/* @flow
* @generated
*/

import type {
WebBrowserAuthSessionResult,
WebBrowserCoolDownResult,
WebBrowserCustomTabsResults,
WebBrowserMayInitWithUrlResult,
WebBrowserOpenOptions,
WebBrowserRedirectResult,
WebBrowserResult,
WebBrowserWarmUpResult,
WebBrowserWindowFeatures,
} from './WebBrowser.types';

export * from './WebBrowser.types'
declare export function getCustomTabsSupportingBrowsersAsync(): Promise<WebBrowserCustomTabsResults>;
declare export function warmUpAsync(browserPackage?: string): Promise<WebBrowserWarmUpResult>;
declare export function mayInitWithUrlAsync(
url: string,
browserPackage?: string,
): Promise<WebBrowserMayInitWithUrlResult>;
declare export function coolDownAsync(browserPackage?: string): Promise<WebBrowserCoolDownResult>;
declare export function openBrowserAsync(
url: string,
browserParams?: WebBrowserOpenOptions,
): Promise<WebBrowserResult>;
declare export function dismissBrowser(): void;
declare export function openAuthSessionAsync(
url: string,
redirectUrl: string,
browserParams?: WebBrowserOpenOptions,
): Promise<WebBrowserAuthSessionResult>;
declare export function dismissAuthSession(): void;

/**
* Attempts to complete an auth session in the browser.
* @param options
*/
declare export function maybeCompleteAuthSession(options?: {
skipRedirectCheck?: boolean,
...
}): {
type: 'success' | 'failed',
message: string,
...
};
export * from './build/WebBrowser.js.flow';
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Chris Bobbe <[email protected]>
Date: Mon, 25 Jul 2022 13:35:00 -0700
Subject: [shortcut] expo-web-browser: Translate a TS enum

Read more about our approach in the recent patch that did this for
expo-application.
---
.../expo-web-browser/build/WebBrowser.js.flow | 3 +-
.../build/WebBrowser.types.js.flow | 35 +++++++++----------
2 files changed, 19 insertions(+), 19 deletions(-)

diff --git types/expo-web-browser/build/WebBrowser.js.flow types/expo-web-browser/build/WebBrowser.js.flow
index 506ab86a1..969ce710d 100644
--- types/expo-web-browser/build/WebBrowser.js.flow
+++ types/expo-web-browser/build/WebBrowser.js.flow
@@ -12,11 +12,12 @@ import {
type WebBrowserRedirectResult,
type WebBrowserResult,
WebBrowserResultType,
+ type WebBrowserResultTypeT,
type WebBrowserWarmUpResult,
type WebBrowserWindowFeatures,
} from "./WebBrowser.types";

-export { WebBrowserAuthSessionResult, WebBrowserCompleteAuthSessionOptions, WebBrowserCompleteAuthSessionResult, WebBrowserCoolDownResult, WebBrowserCustomTabsResults, WebBrowserMayInitWithUrlResult, WebBrowserOpenOptions, WebBrowserRedirectResult, WebBrowserResult, WebBrowserResultType, WebBrowserWarmUpResult, WebBrowserWindowFeatures };
+export { WebBrowserAuthSessionResult, WebBrowserCompleteAuthSessionOptions, WebBrowserCompleteAuthSessionResult, WebBrowserCoolDownResult, WebBrowserCustomTabsResults, WebBrowserMayInitWithUrlResult, WebBrowserOpenOptions, WebBrowserRedirectResult, WebBrowserResult, WebBrowserResultType, WebBrowserResultTypeT, WebBrowserWarmUpResult, WebBrowserWindowFeatures };
declare export function getCustomTabsSupportingBrowsersAsync(): Promise<WebBrowserCustomTabsResults>;
declare export function warmUpAsync(browserPackage?: string): Promise<WebBrowserWarmUpResult>;
declare export function mayInitWithUrlAsync(url: string, browserPackage?: string): Promise<WebBrowserMayInitWithUrlResult>;
diff --git types/expo-web-browser/build/WebBrowser.types.js.flow types/expo-web-browser/build/WebBrowser.types.js.flow
index 803676488..c4e0fdeb0 100644
--- types/expo-web-browser/build/WebBrowser.types.js.flow
+++ types/expo-web-browser/build/WebBrowser.types.js.flow
@@ -31,25 +31,24 @@ export type WebBrowserCustomTabsResults = {
...
};

-/* tsflower-unimplemented: EnumDeclaration */
-/*
-export declare enum WebBrowserResultType {
- /**
- * iOS only.
- * /
- CANCEL = "cancel",
- /**
- * iOS only.
- * /
- DISMISS = "dismiss",
- /**
- * Android only.
- * /
- OPENED = "opened",
- LOCKED = "locked"
-} */
+declare export var WebBrowserResultType: {|
+ /**
+ * iOS only.
+ */
+ +CANCEL: 'cancel',
+ /**
+ * iOS only.
+ */
+ +DISMISS: 'dismiss',
+ /**
+ * Android only.
+ */
+ +OPENED: 'opened',
+ +LOCKED: 'locked',
+|}
+export type WebBrowserResultTypeT = $Values<typeof WebBrowserResultType>;

-export type WebBrowserResult = { type: WebBrowserResultType, ... };
+export type WebBrowserResult = { type: WebBrowserResultTypeT, ... };

export type WebBrowserRedirectResult = {
type: "success",
--
2.32.0

Loading

0 comments on commit 3e87323

Please sign in to comment.