forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Flat ReactNative renderer bundle [WIP]
Reviewed By: trueadm Differential Revision: D5013497 fbshipit-source-id: 1e23b08751b8b6e2dd570ff584c815c8a9b8f35f
- Loading branch information
1 parent
21e3d4d
commit 94c565a
Showing
173 changed files
with
14,373 additions
and
31,629 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule NativeMethodsMixin | ||
* @flow | ||
*/ | ||
|
||
'use strict'; | ||
|
||
const { | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, | ||
} = require('ReactNative'); | ||
|
||
import type {NativeMethodsMixinType} from 'ReactNativeTypes'; | ||
|
||
const {NativeMethodsMixin} = __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; | ||
|
||
module.exports = ((NativeMethodsMixin: any): $Exact<NativeMethodsMixinType>); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule ReactGlobalSharedState | ||
*/ | ||
|
||
'use strict'; | ||
|
||
const { | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, | ||
} = require('ReactNative'); | ||
|
||
module.exports = | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactGlobalSharedState; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule ReactNativeComponentTree | ||
* @flow | ||
*/ | ||
|
||
'use strict'; | ||
|
||
const { | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, | ||
} = require('ReactNative'); | ||
|
||
module.exports = | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactNativeComponentTree; |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule ReactNativePropRegistry | ||
* @flow | ||
*/ | ||
|
||
'use strict'; | ||
|
||
const { | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, | ||
} = require('ReactNative'); | ||
|
||
module.exports = | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactNativePropRegistry; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/** | ||
* Copyright (c) 2015-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule ReactNativeTypes | ||
* @flow | ||
*/ | ||
'use strict'; | ||
|
||
import type React from 'react'; | ||
|
||
export type MeasureOnSuccessCallback = ( | ||
x: number, | ||
y: number, | ||
width: number, | ||
height: number, | ||
pageX: number, | ||
pageY: number, | ||
) => void; | ||
|
||
export type MeasureInWindowOnSuccessCallback = ( | ||
x: number, | ||
y: number, | ||
width: number, | ||
height: number, | ||
) => void; | ||
|
||
export type MeasureLayoutOnSuccessCallback = ( | ||
left: number, | ||
top: number, | ||
width: number, | ||
height: number, | ||
) => void; | ||
|
||
/** | ||
* This type keeps ReactNativeFiberHostComponent and NativeMethodsMixin in sync. | ||
* It can also provide types for ReactNative applications that use NMM or refs. | ||
*/ | ||
export type NativeMethodsMixinType = { | ||
blur(): void, | ||
focus(): void, | ||
measure(callback: MeasureOnSuccessCallback): void, | ||
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void, | ||
measureLayout( | ||
relativeToNativeNode: number, | ||
onSuccess: MeasureLayoutOnSuccessCallback, | ||
onFail: () => void, | ||
): void, | ||
setNativeProps(nativeProps: Object): void, | ||
}; | ||
|
||
type ReactNativeBaseComponentViewConfig = { | ||
validAttributes: Object, | ||
uiViewClassName: string, | ||
propTypes?: Object, | ||
}; | ||
|
||
type SecretInternalsType = { | ||
NativeMethodsMixin: NativeMethodsMixinType, | ||
createReactNativeComponentClass( | ||
viewConfig: ReactNativeBaseComponentViewConfig, | ||
): any, | ||
ReactNativeComponentTree: any, | ||
ReactNativePropRegistry: any, | ||
// TODO (bvaughn) Decide which additional types to expose here? | ||
// And how much information to fill in for the above types. | ||
}; | ||
|
||
/** | ||
* Flat ReactNative renderer bundles are too big for Flow to parse effeciently. | ||
* Provide minimal Flow typing for the high-level RN API and call it a day. | ||
*/ | ||
export type ReactNativeType = { | ||
findNodeHandle(componentOrHandle: any): ?number, | ||
render( | ||
element: React.Element<any>, | ||
containerTag: any, | ||
callback: ?Function, | ||
): any, | ||
unmountComponentAtNode(containerTag: number): any, | ||
unmountComponentAtNodeAndRemoveContainer(containerTag: number): any, | ||
unstable_batchedUpdates: any, // TODO (bvaughn) Add types | ||
|
||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: SecretInternalsType, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
20 changes: 20 additions & 0 deletions
20
Libraries/Renderer/shims/createReactNativeComponentClass.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/** | ||
* Copyright 2013-present, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule createReactNativeComponentClass | ||
* @flow | ||
*/ | ||
|
||
'use strict'; | ||
|
||
const { | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, | ||
} = require('ReactNative'); | ||
|
||
module.exports = | ||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.createReactNativeComponentClass; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.