mirror of
https://github.com/status-im/react-native.git
synced 2025-01-10 01:25:39 +00:00
88ac40666c
Summary: public This diff replaces the RegEx module method parser with a handwritten recursive descent parser that's faster and easier to maintain. The new parser is ~8 times faster when tested on the UIManager.managerChildren() method, and uses ~1/10 as much RAM. The new parser also supports lightweight generics, and is more tolerant of white space. (This means that you now can – and should – use types like `NSArray<NSString *> *` for your exported properties and method arguments, instead of `NSStringArray`). Reviewed By: jspahrsummers Differential Revision: D2736636 fb-gh-sync-id: f6a11431935fa8acc8ac36f3471032ec9a1c8490
39 lines
1.1 KiB
Objective-C
39 lines
1.1 KiB
Objective-C
/**
|
|
* 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.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "RCTBridgeMethod.h"
|
|
#import "RCTNullability.h"
|
|
|
|
@class RCTBridge;
|
|
|
|
@interface RCTMethodArgument : NSObject
|
|
|
|
@property (nonatomic, copy, readonly) NSString *type;
|
|
@property (nonatomic, readonly) RCTNullability nullability;
|
|
@property (nonatomic, readonly) BOOL unused;
|
|
|
|
@end
|
|
|
|
@interface RCTModuleMethod : NSObject <RCTBridgeMethod>
|
|
|
|
@property (nonatomic, readonly) Class moduleClass;
|
|
@property (nonatomic, readonly) SEL selector;
|
|
|
|
- (instancetype)initWithMethodSignature:(NSString *)objCMethodName
|
|
JSMethodName:(NSString *)JSMethodName
|
|
moduleClass:(Class)moduleClass NS_DESIGNATED_INITIALIZER;
|
|
|
|
- (void)invokeWithBridge:(RCTBridge *)bridge
|
|
module:(id)module
|
|
arguments:(NSArray *)arguments;
|
|
|
|
@end
|