diff --git a/packages/cli/src/tools/assign.js b/packages/cli/src/tools/assign.ts similarity index 70% rename from packages/cli/src/tools/assign.js rename to packages/cli/src/tools/assign.ts index 18f061712..621065bf7 100644 --- a/packages/cli/src/tools/assign.js +++ b/packages/cli/src/tools/assign.ts @@ -4,14 +4,19 @@ * Similar to Object.assign(), but it doesn't execute getters. This allows us to have * lazy properties on an object and still be able to merge them together * - * @flow */ export default function assign(target: Object, ...sources: Object[]) { sources.forEach(source => { - let descriptors = Object.keys(source).reduce((acc, key) => { - acc[key] = Object.getOwnPropertyDescriptor(source, key); - return acc; - }, {}); + let descriptors = Object.keys(source).reduce( + (acc, key) => { + const propertyDescriptor = Object.getOwnPropertyDescriptor(source, key); + if (propertyDescriptor !== undefined) { + acc[key] = propertyDescriptor; + } + return acc; + }, + {} as PropertyDescriptorMap, + ); // by default, Object.assign copies enumerable Symbols too Object.getOwnPropertySymbols(source).forEach(sym => { let descriptor = Object.getOwnPropertyDescriptor(source, sym); diff --git a/packages/cli/src/tools/config/index.js b/packages/cli/src/tools/config/index.js index eda09c404..1037c0a70 100644 --- a/packages/cli/src/tools/config/index.js +++ b/packages/cli/src/tools/config/index.js @@ -19,6 +19,7 @@ import type { UserConfigT, DependencyConfigT, } from 'types'; +// $FlowFixMe - converted to TS import assign from '../assign'; // $FlowFixMe - converted to TS import merge from '../merge'; @@ -46,7 +47,7 @@ function getDependencyConfig( : platformConfig.dependencyConfig( root, /* $FlowFixMe - can't figure out which platform's dependency - config to choose */ + config to choose */ config.dependency.platforms[platform], ); return dependency; diff --git a/packages/cli/src/tools/isValidPackageName.js b/packages/cli/src/tools/isValidPackageName.js deleted file mode 100644 index fcdf02334..000000000 --- a/packages/cli/src/tools/isValidPackageName.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * 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. - * - * @format - */ - -function isValidPackageName(name) { - return name.match(/^[$A-Z_][0-9A-Z_$]*$/i); -} - -export default isValidPackageName;