mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-05-06 00:43:38 +08:00
Summary: This provides various versions of SampleTurboModule, that are: * compatible with existing NativeModule * TurboModule compliant Variants: * RCTSampleTurboModule (traditional objc module) * RCTSampleTurboCxxModule (objc++ module using CxxModule) * SampleTurboModule (pure C++ impl of a TurboModule, no ObjC) As noted in some files, they need to be codegen'ed based on the `NativeSampleTurboModule.js` (Flow type). The codegen script is not yet usable in OSS (we'll work on it some time in H2 2019). For now, these files need to be manually synced with Flow type. Reviewed By: cpojer Differential Revision: D14932539 fbshipit-source-id: fb887192384e5e6e4dff4cac68b4e037a4783cd9
35 lines
958 B
JavaScript
35 lines
958 B
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
|
|
* @format
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import type {TurboModule} from 'RCTExport';
|
|
import {getEnforcing} from 'TurboModuleRegistry';
|
|
|
|
export interface Spec extends TurboModule {
|
|
// Exported methods.
|
|
+getConstants: () => {|
|
|
const1: boolean,
|
|
const2: number,
|
|
const3: string,
|
|
|};
|
|
+voidFunc: () => void;
|
|
+getBool: (arg: boolean) => boolean;
|
|
+getNumber: (arg: number) => number;
|
|
+getString: (arg: string) => string;
|
|
+getArray: (arg: Array<any>) => Array<any>;
|
|
+getObject: (arg: Object) => Object;
|
|
+getValue: (x: number, y: string, z: Object) => Object;
|
|
+getValueWithCallback: (callback: (value: string) => void) => void;
|
|
+getValueWithPromise: (error: boolean) => Promise<string>;
|
|
}
|
|
|
|
export default getEnforcing<Spec>('SampleTurboModule');
|