mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Refactor generate-specs-cli and add tests
Summary: This Diff splits the `generate-specs-cli.js` script into: * `generate-specs-cli-executor.js`: which contains the logic to generate the code for iOS. * `generate-specs-cli.js`: which contains the argument parsing logic and invokes the executor. Finally it introduces some tests. ## Changelog [iOS][Changed] - Refactor part of the codegen scripts and add tests. Reviewed By: cortinico, dmitryrykun Differential Revision: D35892576 fbshipit-source-id: 6a3205af049bf55aa4ecaf64544ebc4eb7b13f73
This commit is contained in:
committed by
Facebook GitHub Bot
parent
305a054865
commit
0465c3fd10
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Wrapper required to abstract away from the actual codegen.
|
||||
* This is needed because, when running tests in Sandcastle, not everything is setup as usually.
|
||||
* For example, the `react-native-codegen` lib is not present.
|
||||
*
|
||||
* Thanks to this wrapper, we are able to mock the getter for the codegen in a way that allow us to return
|
||||
* a custom object which mimics the Codegen interface.
|
||||
*
|
||||
* @return an object that can generate the code for the New Architecture.
|
||||
*/
|
||||
function getCodegen() {
|
||||
let RNCodegen;
|
||||
try {
|
||||
RNCodegen = require('../../packages/react-native-codegen/lib/generators/RNCodegen.js');
|
||||
} catch (e) {
|
||||
RNCodegen = require('../react-native-codegen/lib/generators/RNCodegen.js');
|
||||
}
|
||||
if (!RNCodegen) {
|
||||
throw 'RNCodegen not found.';
|
||||
}
|
||||
return RNCodegen;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getCodegen: getCodegen,
|
||||
};
|
||||
Reference in New Issue
Block a user