From 47b6a01e1da0b7726a78da3024be521831fac8bc Mon Sep 17 00:00:00 2001 From: Fatih Kalifa Date: Tue, 10 Sep 2019 15:08:18 +0700 Subject: [PATCH 1/3] convert findSymlinkedModules to ts --- ...nkedModules.js => findSymlinkedModules.ts} | 10 ++-- packages/cli/src/tools/loadMetroConfig.js | 56 ++++++++++--------- 2 files changed, 34 insertions(+), 32 deletions(-) rename packages/cli/src/tools/{findSymlinkedModules.js => findSymlinkedModules.ts} (94%) diff --git a/packages/cli/src/tools/findSymlinkedModules.js b/packages/cli/src/tools/findSymlinkedModules.ts similarity index 94% rename from packages/cli/src/tools/findSymlinkedModules.js rename to packages/cli/src/tools/findSymlinkedModules.ts index 90a0f5933..91a060606 100644 --- a/packages/cli/src/tools/findSymlinkedModules.js +++ b/packages/cli/src/tools/findSymlinkedModules.ts @@ -32,7 +32,7 @@ import fs from 'fs'; */ export default function findSymlinkedModules( projectRoot: string, - ignoredRoots?: Array = [], + ignoredRoots: Array = [], ) { const nodeModuleRoot = path.join(projectRoot, 'node_modules'); const resolvedSymlinks = findModuleSymlinks(nodeModuleRoot, [ @@ -64,7 +64,7 @@ function findModuleSymlinks( maybeSymlinkPaths.push(folderPath); } return links.concat(resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths)); - }, []); + }, [] as string[]); // For any symlinks found, look in _that_ modules node_modules directory // and find any symlinked modules @@ -78,13 +78,13 @@ function findModuleSymlinks( ...symlinks, ]), ), - [], + [] as string[], ); return [...new Set([...symlinks, ...nestedSymlinks])]; } -function resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths) { +function resolveSymlinkPaths(maybeSymlinkPaths: string[], ignoredPaths: string[]) { return maybeSymlinkPaths.reduce((links, maybeSymlinkPath) => { if (fs.lstatSync(maybeSymlinkPath).isSymbolicLink()) { const resolved = path.resolve( @@ -96,5 +96,5 @@ function resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths) { } } return links; - }, []); + }, [] as string[]); } diff --git a/packages/cli/src/tools/loadMetroConfig.js b/packages/cli/src/tools/loadMetroConfig.js index aa6280ffb..8149a45d3 100644 --- a/packages/cli/src/tools/loadMetroConfig.js +++ b/packages/cli/src/tools/loadMetroConfig.js @@ -3,10 +3,11 @@ * @flow */ import path from 'path'; -import {createBlacklist} from 'metro'; -import {loadConfig} from 'metro-config'; -import {existsSync} from 'fs'; -import {type ConfigT} from 'types'; +import { createBlacklist } from 'metro'; +import { loadConfig } from 'metro-config'; +import { existsSync } from 'fs'; +import { type ConfigT } from 'types'; +// $FlowFixMe - converted to TS import findSymlinkedModules from './findSymlinkedModules'; const resolveSymlinksForRoots = roots => @@ -63,35 +64,36 @@ export const getDefaultConfig = (ctx: ConfigT) => { port: Number(process.env.RCT_METRO_PORT) || 8081, }, symbolicator: { - customizeFrame: (frame: {+file: ?string}) => { - const collapse = Boolean( - frame.file && INTERNAL_CALLSITES_REGEX.test(frame.file), - ); - return {collapse}; - }, + customizeFrame: (frame: {+ file: ?string + }) => { + const collapse = Boolean( + frame.file && INTERNAL_CALLSITES_REGEX.test(frame.file), + ); + return { collapse }; +}, }, - transformer: { - babelTransformerPath: require.resolve( - 'metro-react-native-babel-transformer', - ), - assetRegistryPath: path.join( - ctx.reactNativePath, - 'Libraries/Image/AssetRegistry', - ), +transformer: { + babelTransformerPath: require.resolve( + 'metro-react-native-babel-transformer', + ), + assetRegistryPath: path.join( + ctx.reactNativePath, + 'Libraries/Image/AssetRegistry', + ), }, - watchFolders: getWatchFolders(), +watchFolders: getWatchFolders(), }; }; export type ConfigOptionsT = {| maxWorkers?: number, - port?: number, - projectRoot?: string, - resetCache?: boolean, - watchFolders?: string[], - sourceExts?: string[], - reporter?: any, - config?: string, + port ?: number, + projectRoot ?: string, + resetCache ?: boolean, + watchFolders ?: string[], + sourceExts ?: string[], + reporter ?: any, + config ?: string, |}; /** @@ -114,5 +116,5 @@ export default function load(ctx: ConfigT, options?: ConfigOptionsT) { */ defaultConfig.reporter = options.reporter; } - return loadConfig({cwd: ctx.root, ...options}, defaultConfig); + return loadConfig({ cwd: ctx.root, ...options }, defaultConfig); } From 9aef8ed5b60c5063d8f5e9b6b9b7398bb6a7a44d Mon Sep 17 00:00:00 2001 From: Fatih Kalifa Date: Tue, 10 Sep 2019 15:13:25 +0700 Subject: [PATCH 2/3] lint --fix --- .../cli/src/tools/findSymlinkedModules.ts | 59 +++++++++++-------- packages/cli/src/tools/loadMetroConfig.js | 55 +++++++++-------- 2 files changed, 61 insertions(+), 53 deletions(-) diff --git a/packages/cli/src/tools/findSymlinkedModules.ts b/packages/cli/src/tools/findSymlinkedModules.ts index 91a060606..757377c49 100644 --- a/packages/cli/src/tools/findSymlinkedModules.ts +++ b/packages/cli/src/tools/findSymlinkedModules.ts @@ -52,19 +52,22 @@ function findModuleSymlinks( // Find module symlinks const moduleFolders = fs.readdirSync(modulesPath); - const symlinks = moduleFolders.reduce((links, folderName) => { - const folderPath = path.join(modulesPath, folderName); - const maybeSymlinkPaths = []; - if (folderName.startsWith('@')) { - const scopedModuleFolders = fs.readdirSync(folderPath); - maybeSymlinkPaths.push( - ...scopedModuleFolders.map(name => path.join(folderPath, name)), - ); - } else { - maybeSymlinkPaths.push(folderPath); - } - return links.concat(resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths)); - }, [] as string[]); + const symlinks = moduleFolders.reduce( + (links, folderName) => { + const folderPath = path.join(modulesPath, folderName); + const maybeSymlinkPaths = []; + if (folderName.startsWith('@')) { + const scopedModuleFolders = fs.readdirSync(folderPath); + maybeSymlinkPaths.push( + ...scopedModuleFolders.map(name => path.join(folderPath, name)), + ); + } else { + maybeSymlinkPaths.push(folderPath); + } + return links.concat(resolveSymlinkPaths(maybeSymlinkPaths, ignoredPaths)); + }, + [] as string[], + ); // For any symlinks found, look in _that_ modules node_modules directory // and find any symlinked modules @@ -84,17 +87,23 @@ function findModuleSymlinks( return [...new Set([...symlinks, ...nestedSymlinks])]; } -function resolveSymlinkPaths(maybeSymlinkPaths: string[], ignoredPaths: string[]) { - return maybeSymlinkPaths.reduce((links, maybeSymlinkPath) => { - if (fs.lstatSync(maybeSymlinkPath).isSymbolicLink()) { - const resolved = path.resolve( - path.dirname(maybeSymlinkPath), - fs.readlinkSync(maybeSymlinkPath), - ); - if (ignoredPaths.indexOf(resolved) === -1 && fs.existsSync(resolved)) { - links.push(resolved); +function resolveSymlinkPaths( + maybeSymlinkPaths: string[], + ignoredPaths: string[], +) { + return maybeSymlinkPaths.reduce( + (links, maybeSymlinkPath) => { + if (fs.lstatSync(maybeSymlinkPath).isSymbolicLink()) { + const resolved = path.resolve( + path.dirname(maybeSymlinkPath), + fs.readlinkSync(maybeSymlinkPath), + ); + if (ignoredPaths.indexOf(resolved) === -1 && fs.existsSync(resolved)) { + links.push(resolved); + } } - } - return links; - }, [] as string[]); + return links; + }, + [] as string[], + ); } diff --git a/packages/cli/src/tools/loadMetroConfig.js b/packages/cli/src/tools/loadMetroConfig.js index 8149a45d3..78ac92a31 100644 --- a/packages/cli/src/tools/loadMetroConfig.js +++ b/packages/cli/src/tools/loadMetroConfig.js @@ -3,10 +3,10 @@ * @flow */ import path from 'path'; -import { createBlacklist } from 'metro'; -import { loadConfig } from 'metro-config'; -import { existsSync } from 'fs'; -import { type ConfigT } from 'types'; +import {createBlacklist} from 'metro'; +import {loadConfig} from 'metro-config'; +import {existsSync} from 'fs'; +import {type ConfigT} from 'types'; // $FlowFixMe - converted to TS import findSymlinkedModules from './findSymlinkedModules'; @@ -64,36 +64,35 @@ export const getDefaultConfig = (ctx: ConfigT) => { port: Number(process.env.RCT_METRO_PORT) || 8081, }, symbolicator: { - customizeFrame: (frame: {+ file: ?string - }) => { - const collapse = Boolean( - frame.file && INTERNAL_CALLSITES_REGEX.test(frame.file), - ); - return { collapse }; -}, + customizeFrame: (frame: {+file: ?string}) => { + const collapse = Boolean( + frame.file && INTERNAL_CALLSITES_REGEX.test(frame.file), + ); + return {collapse}; + }, }, -transformer: { - babelTransformerPath: require.resolve( - 'metro-react-native-babel-transformer', - ), - assetRegistryPath: path.join( - ctx.reactNativePath, - 'Libraries/Image/AssetRegistry', - ), + transformer: { + babelTransformerPath: require.resolve( + 'metro-react-native-babel-transformer', + ), + assetRegistryPath: path.join( + ctx.reactNativePath, + 'Libraries/Image/AssetRegistry', + ), }, -watchFolders: getWatchFolders(), + watchFolders: getWatchFolders(), }; }; export type ConfigOptionsT = {| maxWorkers?: number, - port ?: number, - projectRoot ?: string, - resetCache ?: boolean, - watchFolders ?: string[], - sourceExts ?: string[], - reporter ?: any, - config ?: string, + port?: number, + projectRoot?: string, + resetCache?: boolean, + watchFolders?: string[], + sourceExts?: string[], + reporter?: any, + config?: string, |}; /** @@ -116,5 +115,5 @@ export default function load(ctx: ConfigT, options?: ConfigOptionsT) { */ defaultConfig.reporter = options.reporter; } - return loadConfig({ cwd: ctx.root, ...options }, defaultConfig); + return loadConfig({cwd: ctx.root, ...options}, defaultConfig); } From f1801213f495d3c72304287e0f37459f3766a6b6 Mon Sep 17 00:00:00 2001 From: Fatih Kalifa Date: Tue, 10 Sep 2019 15:53:06 +0700 Subject: [PATCH 3/3] remove @flow strict and @format --- packages/cli/src/tools/findSymlinkedModules.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/cli/src/tools/findSymlinkedModules.ts b/packages/cli/src/tools/findSymlinkedModules.ts index 757377c49..0e7befe6c 100644 --- a/packages/cli/src/tools/findSymlinkedModules.ts +++ b/packages/cli/src/tools/findSymlinkedModules.ts @@ -3,9 +3,6 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * - * @format - * @flow strict */ import path from 'path';