mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
This adds a new dimension similar to dom-relay. It's different from "native" which would be Flight for RN without Relay. This has some copy-pasta that's the same between the two Relay builds but the key difference will be Metro and we're not quite sure what other differences there will be yet.
116 lines
3.0 KiB
JavaScript
116 lines
3.0 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
*/
|
|
|
|
type JSONValue =
|
|
| string
|
|
| boolean
|
|
| number
|
|
| null
|
|
| {+[key: string]: JSONValue}
|
|
| $ReadOnlyArray<JSONValue>;
|
|
|
|
declare class JSResourceReference<T> {
|
|
_moduleId: T;
|
|
getModuleId(): string;
|
|
}
|
|
|
|
// Haste
|
|
declare module 'JSResourceReference' {
|
|
declare export default typeof JSResourceReference;
|
|
}
|
|
|
|
// Metro
|
|
declare module 'JSResourceReferenceImpl' {
|
|
declare export default class JSResourceReferenceImpl<
|
|
T,
|
|
> extends JSResourceReference<T> {}
|
|
}
|
|
|
|
declare module 'ReactFlightDOMRelayServerIntegration' {
|
|
declare export opaque type Destination;
|
|
declare export opaque type BundlerConfig;
|
|
declare export function emitModel(
|
|
destination: Destination,
|
|
id: number,
|
|
json: JSONValue,
|
|
): void;
|
|
declare export function emitModule(
|
|
destination: Destination,
|
|
id: number,
|
|
json: ModuleMetaData,
|
|
): void;
|
|
declare export function emitError(
|
|
destination: Destination,
|
|
id: number,
|
|
message: string,
|
|
stack: string,
|
|
): void;
|
|
declare export function close(destination: Destination): void;
|
|
|
|
declare export type ModuleMetaData = JSONValue;
|
|
declare export function resolveModuleMetaData<T>(
|
|
config: BundlerConfig,
|
|
resourceReference: JSResourceReference<T>,
|
|
): ModuleMetaData;
|
|
}
|
|
|
|
declare module 'ReactFlightDOMRelayClientIntegration' {
|
|
declare export opaque type ModuleMetaData;
|
|
declare export function resolveModuleReference<T>(
|
|
moduleData: ModuleMetaData,
|
|
): JSResourceReference<T>;
|
|
declare export function preloadModule<T>(
|
|
moduleReference: JSResourceReference<T>,
|
|
): void;
|
|
declare export function requireModule<T>(
|
|
moduleReference: JSResourceReference<T>,
|
|
): T;
|
|
}
|
|
|
|
declare module 'ReactFlightNativeRelayServerIntegration' {
|
|
declare export opaque type Destination;
|
|
declare export opaque type BundlerConfig;
|
|
declare export function emitModel(
|
|
destination: Destination,
|
|
id: number,
|
|
json: JSONValue,
|
|
): void;
|
|
declare export function emitModule(
|
|
destination: Destination,
|
|
id: number,
|
|
json: ModuleMetaData,
|
|
): void;
|
|
declare export function emitError(
|
|
destination: Destination,
|
|
id: number,
|
|
message: string,
|
|
stack: string,
|
|
): void;
|
|
declare export function close(destination: Destination): void;
|
|
|
|
declare export type ModuleMetaData = JSONValue;
|
|
declare export function resolveModuleMetaData<T>(
|
|
config: BundlerConfig,
|
|
resourceReference: JSResourceReference<T>,
|
|
): ModuleMetaData;
|
|
}
|
|
|
|
declare module 'ReactFlightNativeRelayClientIntegration' {
|
|
declare export opaque type ModuleMetaData;
|
|
declare export function resolveModuleReference<T>(
|
|
moduleData: ModuleMetaData,
|
|
): JSResourceReference<T>;
|
|
declare export function preloadModule<T>(
|
|
moduleReference: JSResourceReference<T>,
|
|
): void;
|
|
declare export function requireModule<T>(
|
|
moduleReference: JSResourceReference<T>,
|
|
): T;
|
|
}
|