From bcd259a355e593887be1bccf04d61bf30875461e Mon Sep 17 00:00:00 2001 From: Rick Hanlon Date: Wed, 13 Mar 2019 06:22:12 -0700 Subject: [PATCH] Enable Schema everywhere Summary: Change the codegen `srcs` to match any `**/*Schema.js` Reviewed By: TheSavior Differential Revision: D14401232 fbshipit-source-id: 61e60b1c9ca2f33efacc5caa1903b02a93cc644e --- .../__tests__/combine-js-to-schema-test.js | 14 +++++++++----- .../buck_tests/combine-js-to-schema.js | 8 +++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/react-native-codegen/buck_tests/__tests__/combine-js-to-schema-test.js b/packages/react-native-codegen/buck_tests/__tests__/combine-js-to-schema-test.js index e631e1f762f..bcf3cc6aa80 100644 --- a/packages/react-native-codegen/buck_tests/__tests__/combine-js-to-schema-test.js +++ b/packages/react-native-codegen/buck_tests/__tests__/combine-js-to-schema-test.js @@ -35,14 +35,18 @@ jest.mock( {virtual: true}, ); +jest.mock('/test/module/NotASchema', () => ({}), {virtual: true}); + test('should combine files', () => { - const files = ['/test/module/SchemaOne', '/test/module/SchemaTwo']; + const files = [ + '/test/module/SchemaOne', + '/test/module/SchemaTwo', + '/test/module/NotASchema', + ]; expect(combine(files)).toMatchSnapshot(); }); -test('should throw for failed require', () => { +test('should not throw for failed require', () => { const files = ['/test/module/does/not/exist']; - expect(() => combine(files)).toThrow( - "Can't require file at /test/module/does/not/exist", - ); + expect(() => combine(files)).not.toThrow(); }); diff --git a/packages/react-native-codegen/buck_tests/combine-js-to-schema.js b/packages/react-native-codegen/buck_tests/combine-js-to-schema.js index 64e0cb859b0..2b48486ef9e 100644 --- a/packages/react-native-codegen/buck_tests/combine-js-to-schema.js +++ b/packages/react-native-codegen/buck_tests/combine-js-to-schema.js @@ -11,12 +11,12 @@ 'use strict'; import type {SchemaType} from '../src/CodegenSchema.js'; -function parse(filename: string): SchemaType { +function parse(filename: string): ?SchemaType { try { // $FlowFixMe Can't require dynamic variables return require(filename); } catch (err) { - throw new Error(`Can't require file at ${filename} ${err}`); + // ignore } } @@ -24,7 +24,9 @@ function combineSchemas(files: Array): SchemaType { return files.reduce( (merged, filename) => { const schema = parse(filename); - merged.modules = {...merged.modules, ...schema.modules}; + if (schema && schema.modules) { + merged.modules = {...merged.modules, ...schema.modules}; + } return merged; }, {modules: {}},