From 145131ee21bd4d3192ba1bc16c1cc307fdcf6101 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:34:23 +0200 Subject: [PATCH 1/8] Build assets-registry for general consumption --- packages/assets/.gitignore | 5 ++ packages/assets/package.json | 13 +++-- packages/assets/path-support.js | 81 +--------------------------- packages/assets/registry.js | 27 +--------- packages/assets/src/path-support.js | 84 +++++++++++++++++++++++++++++ packages/assets/src/registry.js | 34 ++++++++++++ scripts/build/config.js | 4 ++ 7 files changed, 139 insertions(+), 109 deletions(-) create mode 100644 packages/assets/.gitignore create mode 100644 packages/assets/src/path-support.js create mode 100644 packages/assets/src/registry.js diff --git a/packages/assets/.gitignore b/packages/assets/.gitignore new file mode 100644 index 000000000000..40d93a0332c9 --- /dev/null +++ b/packages/assets/.gitignore @@ -0,0 +1,5 @@ +# Dependencies +/node_modules + +# Build output +/dist diff --git a/packages/assets/package.json b/packages/assets/package.json index c8e5100a2cc4..5ddb8627d6b2 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -11,7 +11,14 @@ "homepage": "https://github.com/facebook/react-native/tree/HEAD/packages/assets#readme", "keywords": ["assets", "registry", "react-native", "support"], "bugs": "https://github.com/facebook/react-native/issues", - "engines": { - "node": ">=18" - } + "exports": { + "./package.json": "./package.json", + "./path-support": "./dist/path-support.js", + "./registry": "./dist/registry.js" + }, + "files": [ + "dist", + "path-support.js", + "registry.js" + ] } diff --git a/packages/assets/path-support.js b/packages/assets/path-support.js index f0a85af33ff9..c6fc979405bd 100644 --- a/packages/assets/path-support.js +++ b/packages/assets/path-support.js @@ -10,83 +10,4 @@ 'use strict'; -import type {PackagerAsset} from './registry.js'; - -const androidScaleSuffix = { - '0.75': 'ldpi', - '1': 'mdpi', - '1.5': 'hdpi', - '2': 'xhdpi', - '3': 'xxhdpi', - '4': 'xxxhdpi', -}; - -const ANDROID_BASE_DENSITY = 160; - -/** - * FIXME: using number to represent discrete scale numbers is fragile in essence because of - * floating point numbers imprecision. - */ -function getAndroidAssetSuffix(scale: number): string { - if (scale.toString() in androidScaleSuffix) { - return androidScaleSuffix[scale.toString()]; - } - // NOTE: Android Gradle Plugin does not fully support the nnndpi format. - // See https://issuetracker.google.com/issues/72884435 - if (Number.isFinite(scale) && scale > 0) { - return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; - } - throw new Error('no such scale ' + scale.toString()); -} - -// See https://developer.android.com/guide/topics/resources/drawable-resource.html -const drawableFileTypes = new Set([ - 'gif', - 'jpeg', - 'jpg', - 'ktx', - 'png', - 'svg', - 'webp', - 'xml', -]); - -function getAndroidResourceFolderName( - asset: PackagerAsset, - scale: number, -): string | $TEMPORARY$string<'raw'> { - if (!drawableFileTypes.has(asset.type)) { - return 'raw'; - } - const suffix = getAndroidAssetSuffix(scale); - if (!suffix) { - throw new Error( - "Don't know which android drawable suffix to use for scale: " + - scale + - '\nAsset: ' + - JSON.stringify(asset, null, '\t') + - '\nPossible scales are:' + - JSON.stringify(androidScaleSuffix, null, '\t'), - ); - } - return 'drawable-' + suffix; -} - -function getAndroidResourceIdentifier(asset: PackagerAsset): string { - return (getBasePath(asset) + '/' + asset.name) - .toLowerCase() - .replace(/\//g, '_') // Encode folder structure in file name - .replace(/([^a-z0-9_])/g, '') // Remove illegal chars - .replace(/^assets_/, ''); // Remove "assets_" prefix -} - -function getBasePath(asset: PackagerAsset): string { - const basePath = asset.httpServerLocation; - return basePath.startsWith('/') ? basePath.slice(1) : basePath; -} - -module.exports = { - getAndroidResourceFolderName, - getAndroidResourceIdentifier, - getBasePath, -}; +module.exports = require('./dist/path-support'); diff --git a/packages/assets/registry.js b/packages/assets/registry.js index 02470da3c496..99a9406b85d1 100644 --- a/packages/assets/registry.js +++ b/packages/assets/registry.js @@ -10,29 +10,4 @@ 'use strict'; -export type PackagerAsset = { - +__packager_asset: boolean, - +fileSystemLocation: string, - +httpServerLocation: string, - +width: ?number, - +height: ?number, - +scales: Array, - +hash: string, - +name: string, - +type: string, - ... -}; - -const assets: Array = []; - -function registerAsset(asset: PackagerAsset): number { - // `push` returns new array length, so the first asset will - // get id 1 (not 0) to make the value truthy - return assets.push(asset); -} - -function getAssetByID(assetId: number): PackagerAsset { - return assets[assetId - 1]; -} - -module.exports = {registerAsset, getAssetByID}; +module.exports = require('./dist/registry'); diff --git a/packages/assets/src/path-support.js b/packages/assets/src/path-support.js new file mode 100644 index 000000000000..b87069eb4a28 --- /dev/null +++ b/packages/assets/src/path-support.js @@ -0,0 +1,84 @@ +/** + * 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 + * @flow strict + */ + +import type {PackagerAsset} from './registry.js'; + +const androidScaleSuffix = { + '0.75': 'ldpi', + '1': 'mdpi', + '1.5': 'hdpi', + '2': 'xhdpi', + '3': 'xxhdpi', + '4': 'xxxhdpi', +}; + +const ANDROID_BASE_DENSITY = 160; + +/** + * FIXME: using number to represent discrete scale numbers is fragile in essence because of + * floating point numbers imprecision. + */ +function getAndroidAssetSuffix(scale: number): string { + if (scale.toString() in androidScaleSuffix) { + return androidScaleSuffix[scale.toString()]; + } + // NOTE: Android Gradle Plugin does not fully support the nnndpi format. + // See https://issuetracker.google.com/issues/72884435 + if (Number.isFinite(scale) && scale > 0) { + return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; + } + throw new Error('no such scale ' + scale.toString()); +} + +// See https://developer.android.com/guide/topics/resources/drawable-resource.html +const drawableFileTypes = new Set([ + 'gif', + 'jpeg', + 'jpg', + 'ktx', + 'png', + 'svg', + 'webp', + 'xml', +]); + +export function getAndroidResourceFolderName( + asset: PackagerAsset, + scale: number, +): string | $TEMPORARY$string<'raw'> { + if (!drawableFileTypes.has(asset.type)) { + return 'raw'; + } + const suffix = getAndroidAssetSuffix(scale); + if (!suffix) { + throw new Error( + "Don't know which android drawable suffix to use for scale: " + + scale + + '\nAsset: ' + + JSON.stringify(asset, null, '\t') + + '\nPossible scales are:' + + JSON.stringify(androidScaleSuffix, null, '\t'), + ); + } + return 'drawable-' + suffix; +} + +export function getAndroidResourceIdentifier(asset: PackagerAsset): string { + return (getBasePath(asset) + '/' + asset.name) + .toLowerCase() + .replace(/\//g, '_') // Encode folder structure in file name + .replace(/([^a-z0-9_])/g, '') // Remove illegal chars + .replace(/^assets_/, ''); // Remove "assets_" prefix +} + +export function getBasePath(asset: PackagerAsset): string { + const basePath = asset.httpServerLocation; + return basePath.startsWith('/') ? basePath.slice(1) : basePath; +} diff --git a/packages/assets/src/registry.js b/packages/assets/src/registry.js new file mode 100644 index 000000000000..79117d49378d --- /dev/null +++ b/packages/assets/src/registry.js @@ -0,0 +1,34 @@ +/** + * 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. + * + * @flow strict + * @format + */ + +export type PackagerAsset = { + +__packager_asset: boolean, + +fileSystemLocation: string, + +httpServerLocation: string, + +width: ?number, + +height: ?number, + +scales: Array, + +hash: string, + +name: string, + +type: string, + ... +}; + +const assets: Array = []; + +export function registerAsset(asset: PackagerAsset): number { + // `push` returns new array length, so the first asset will + // get id 1 (not 0) to make the value truthy + return assets.push(asset); +} + +export function getAssetByID(assetId: number): PackagerAsset { + return assets[assetId - 1]; +} diff --git a/scripts/build/config.js b/scripts/build/config.js index a2014995b829..713efdef447f 100644 --- a/scripts/build/config.js +++ b/scripts/build/config.js @@ -42,6 +42,10 @@ export type BuildConfig = $ReadOnly<{ */ const buildConfig /*: BuildConfig */ = { packages: { + assets: { + target: 'node', + emitTypeScriptDefs: true, + }, 'community-cli-plugin': { target: 'node', }, From cc3f507c4ed81bcbb900936b61c8387bf8a8eaf2 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:20:38 +0200 Subject: [PATCH 2/8] fixup! Build assets-registry for general consumption --- packages/assets/path-support.js | 2 +- packages/assets/registry.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/assets/path-support.js b/packages/assets/path-support.js index c6fc979405bd..b61732aa9086 100644 --- a/packages/assets/path-support.js +++ b/packages/assets/path-support.js @@ -10,4 +10,4 @@ 'use strict'; -module.exports = require('./dist/path-support'); +module.exports = require('./src/path-support'); diff --git a/packages/assets/registry.js b/packages/assets/registry.js index 99a9406b85d1..0cb0f54cc8bc 100644 --- a/packages/assets/registry.js +++ b/packages/assets/registry.js @@ -10,4 +10,4 @@ 'use strict'; -module.exports = require('./dist/registry'); +module.exports = require('./src/registry'); From c16d5213ce5080fc15f962fa202f01ab7502a09e Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:33:38 +0200 Subject: [PATCH 3/8] fixup! Build assets-registry for general consumption --- .circleci/configurations/jobs.yml | 4 +++- packages/assets/package.json | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 7e9e3810f6fa..721d893fc313 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -95,7 +95,9 @@ jobs: # Run JavaScript tests - run: name: "Run Tests: JavaScript Tests" - command: node ./scripts/run-ci-javascript-tests.js --maxWorkers 2 + command: | + yarn build + node ./scripts/run-ci-javascript-tests.js --maxWorkers 2 - run_e2e: platform: js diff --git a/packages/assets/package.json b/packages/assets/package.json index 5ddb8627d6b2..83db7f839106 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -19,6 +19,7 @@ "files": [ "dist", "path-support.js", - "registry.js" + "registry.js", + "src" ] } From c0518184e2fc0471d32c41a321ee6f69c97a3a04 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 20:03:11 +0200 Subject: [PATCH 4/8] add `babel-register` wrapper files --- .circleci/configurations/jobs.yml | 4 +- packages/assets/package.json | 13 ++- .../{path-support.js => path-support.js.flow} | 0 .../assets/{registry.js => registry.js.flow} | 0 packages/assets/src/path-support.flow.js | 84 +++++++++++++++++++ packages/assets/src/path-support.js | 80 ++---------------- packages/assets/src/registry.flow.js | 34 ++++++++ packages/assets/src/registry.js | 30 ++----- 8 files changed, 141 insertions(+), 104 deletions(-) rename packages/assets/{path-support.js => path-support.js.flow} (100%) rename packages/assets/{registry.js => registry.js.flow} (100%) create mode 100644 packages/assets/src/path-support.flow.js create mode 100644 packages/assets/src/registry.flow.js diff --git a/.circleci/configurations/jobs.yml b/.circleci/configurations/jobs.yml index 721d893fc313..7e9e3810f6fa 100644 --- a/.circleci/configurations/jobs.yml +++ b/.circleci/configurations/jobs.yml @@ -95,9 +95,7 @@ jobs: # Run JavaScript tests - run: name: "Run Tests: JavaScript Tests" - command: | - yarn build - node ./scripts/run-ci-javascript-tests.js --maxWorkers 2 + command: node ./scripts/run-ci-javascript-tests.js --maxWorkers 2 - run_e2e: platform: js diff --git a/packages/assets/package.json b/packages/assets/package.json index 83db7f839106..1d026b5579a2 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -12,14 +12,13 @@ "keywords": ["assets", "registry", "react-native", "support"], "bugs": "https://github.com/facebook/react-native/issues", "exports": { - "./package.json": "./package.json", - "./path-support": "./dist/path-support.js", - "./registry": "./dist/registry.js" + "./path-support": "./src/path-support.js", + "./path-support.js": "./src/path-support.js", + "./registry": "./src/registry.js", + "./registry.js": "./src/registry.js", + "./package.json": "./package.json" }, "files": [ - "dist", - "path-support.js", - "registry.js", - "src" + "dist" ] } diff --git a/packages/assets/path-support.js b/packages/assets/path-support.js.flow similarity index 100% rename from packages/assets/path-support.js rename to packages/assets/path-support.js.flow diff --git a/packages/assets/registry.js b/packages/assets/registry.js.flow similarity index 100% rename from packages/assets/registry.js rename to packages/assets/registry.js.flow diff --git a/packages/assets/src/path-support.flow.js b/packages/assets/src/path-support.flow.js new file mode 100644 index 000000000000..b87069eb4a28 --- /dev/null +++ b/packages/assets/src/path-support.flow.js @@ -0,0 +1,84 @@ +/** + * 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 + * @flow strict + */ + +import type {PackagerAsset} from './registry.js'; + +const androidScaleSuffix = { + '0.75': 'ldpi', + '1': 'mdpi', + '1.5': 'hdpi', + '2': 'xhdpi', + '3': 'xxhdpi', + '4': 'xxxhdpi', +}; + +const ANDROID_BASE_DENSITY = 160; + +/** + * FIXME: using number to represent discrete scale numbers is fragile in essence because of + * floating point numbers imprecision. + */ +function getAndroidAssetSuffix(scale: number): string { + if (scale.toString() in androidScaleSuffix) { + return androidScaleSuffix[scale.toString()]; + } + // NOTE: Android Gradle Plugin does not fully support the nnndpi format. + // See https://issuetracker.google.com/issues/72884435 + if (Number.isFinite(scale) && scale > 0) { + return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; + } + throw new Error('no such scale ' + scale.toString()); +} + +// See https://developer.android.com/guide/topics/resources/drawable-resource.html +const drawableFileTypes = new Set([ + 'gif', + 'jpeg', + 'jpg', + 'ktx', + 'png', + 'svg', + 'webp', + 'xml', +]); + +export function getAndroidResourceFolderName( + asset: PackagerAsset, + scale: number, +): string | $TEMPORARY$string<'raw'> { + if (!drawableFileTypes.has(asset.type)) { + return 'raw'; + } + const suffix = getAndroidAssetSuffix(scale); + if (!suffix) { + throw new Error( + "Don't know which android drawable suffix to use for scale: " + + scale + + '\nAsset: ' + + JSON.stringify(asset, null, '\t') + + '\nPossible scales are:' + + JSON.stringify(androidScaleSuffix, null, '\t'), + ); + } + return 'drawable-' + suffix; +} + +export function getAndroidResourceIdentifier(asset: PackagerAsset): string { + return (getBasePath(asset) + '/' + asset.name) + .toLowerCase() + .replace(/\//g, '_') // Encode folder structure in file name + .replace(/([^a-z0-9_])/g, '') // Remove illegal chars + .replace(/^assets_/, ''); // Remove "assets_" prefix +} + +export function getBasePath(asset: PackagerAsset): string { + const basePath = asset.httpServerLocation; + return basePath.startsWith('/') ? basePath.slice(1) : basePath; +} diff --git a/packages/assets/src/path-support.js b/packages/assets/src/path-support.js index b87069eb4a28..2497d6fe1be7 100644 --- a/packages/assets/src/path-support.js +++ b/packages/assets/src/path-support.js @@ -4,81 +4,17 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * + * @flow * @format - * @flow strict + * @oncall react_native */ -import type {PackagerAsset} from './registry.js'; +/*:: +export type * from './path-support.flow'; +*/ -const androidScaleSuffix = { - '0.75': 'ldpi', - '1': 'mdpi', - '1.5': 'hdpi', - '2': 'xhdpi', - '3': 'xxhdpi', - '4': 'xxxhdpi', -}; - -const ANDROID_BASE_DENSITY = 160; - -/** - * FIXME: using number to represent discrete scale numbers is fragile in essence because of - * floating point numbers imprecision. - */ -function getAndroidAssetSuffix(scale: number): string { - if (scale.toString() in androidScaleSuffix) { - return androidScaleSuffix[scale.toString()]; - } - // NOTE: Android Gradle Plugin does not fully support the nnndpi format. - // See https://issuetracker.google.com/issues/72884435 - if (Number.isFinite(scale) && scale > 0) { - return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; - } - throw new Error('no such scale ' + scale.toString()); -} - -// See https://developer.android.com/guide/topics/resources/drawable-resource.html -const drawableFileTypes = new Set([ - 'gif', - 'jpeg', - 'jpg', - 'ktx', - 'png', - 'svg', - 'webp', - 'xml', -]); - -export function getAndroidResourceFolderName( - asset: PackagerAsset, - scale: number, -): string | $TEMPORARY$string<'raw'> { - if (!drawableFileTypes.has(asset.type)) { - return 'raw'; - } - const suffix = getAndroidAssetSuffix(scale); - if (!suffix) { - throw new Error( - "Don't know which android drawable suffix to use for scale: " + - scale + - '\nAsset: ' + - JSON.stringify(asset, null, '\t') + - '\nPossible scales are:' + - JSON.stringify(androidScaleSuffix, null, '\t'), - ); - } - return 'drawable-' + suffix; +if (!process.env.BUILD_EXCLUDE_BABEL_REGISTER) { + require('../../../scripts/build/babel-register').registerForMonorepo(); } -export function getAndroidResourceIdentifier(asset: PackagerAsset): string { - return (getBasePath(asset) + '/' + asset.name) - .toLowerCase() - .replace(/\//g, '_') // Encode folder structure in file name - .replace(/([^a-z0-9_])/g, '') // Remove illegal chars - .replace(/^assets_/, ''); // Remove "assets_" prefix -} - -export function getBasePath(asset: PackagerAsset): string { - const basePath = asset.httpServerLocation; - return basePath.startsWith('/') ? basePath.slice(1) : basePath; -} +export * from './path-support.flow'; diff --git a/packages/assets/src/registry.flow.js b/packages/assets/src/registry.flow.js new file mode 100644 index 000000000000..79117d49378d --- /dev/null +++ b/packages/assets/src/registry.flow.js @@ -0,0 +1,34 @@ +/** + * 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. + * + * @flow strict + * @format + */ + +export type PackagerAsset = { + +__packager_asset: boolean, + +fileSystemLocation: string, + +httpServerLocation: string, + +width: ?number, + +height: ?number, + +scales: Array, + +hash: string, + +name: string, + +type: string, + ... +}; + +const assets: Array = []; + +export function registerAsset(asset: PackagerAsset): number { + // `push` returns new array length, so the first asset will + // get id 1 (not 0) to make the value truthy + return assets.push(asset); +} + +export function getAssetByID(assetId: number): PackagerAsset { + return assets[assetId - 1]; +} diff --git a/packages/assets/src/registry.js b/packages/assets/src/registry.js index 79117d49378d..ec06e9d131fe 100644 --- a/packages/assets/src/registry.js +++ b/packages/assets/src/registry.js @@ -4,31 +4,17 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow strict + * @flow * @format + * @oncall react_native */ -export type PackagerAsset = { - +__packager_asset: boolean, - +fileSystemLocation: string, - +httpServerLocation: string, - +width: ?number, - +height: ?number, - +scales: Array, - +hash: string, - +name: string, - +type: string, - ... -}; +/*:: +export type * from './registry.flow'; +*/ -const assets: Array = []; - -export function registerAsset(asset: PackagerAsset): number { - // `push` returns new array length, so the first asset will - // get id 1 (not 0) to make the value truthy - return assets.push(asset); +if (!process.env.BUILD_EXCLUDE_BABEL_REGISTER) { + require('../../../scripts/build/babel-register').registerForMonorepo(); } -export function getAssetByID(assetId: number): PackagerAsset { - return assets[assetId - 1]; -} +export * from './registry.flow'; From 16a72c5b47de2bf2ff1eb90b538f018d6aec83d1 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 20:19:01 +0200 Subject: [PATCH 5/8] `@flow strict` --- packages/assets/path-support.js.flow | 2 +- packages/assets/registry.js.flow | 2 +- packages/assets/src/path-support.flow.js | 2 +- packages/assets/src/registry.flow.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/assets/path-support.js.flow b/packages/assets/path-support.js.flow index b61732aa9086..4837045be006 100644 --- a/packages/assets/path-support.js.flow +++ b/packages/assets/path-support.js.flow @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. * * @format - * @flow strict + * @flow */ 'use strict'; diff --git a/packages/assets/registry.js.flow b/packages/assets/registry.js.flow index 0cb0f54cc8bc..1d5796815f25 100644 --- a/packages/assets/registry.js.flow +++ b/packages/assets/registry.js.flow @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow strict + * @flow * @format */ diff --git a/packages/assets/src/path-support.flow.js b/packages/assets/src/path-support.flow.js index b87069eb4a28..972fe67de283 100644 --- a/packages/assets/src/path-support.flow.js +++ b/packages/assets/src/path-support.flow.js @@ -5,7 +5,7 @@ * LICENSE file in the root directory of this source tree. * * @format - * @flow strict + * @flow strict-local */ import type {PackagerAsset} from './registry.js'; diff --git a/packages/assets/src/registry.flow.js b/packages/assets/src/registry.flow.js index 79117d49378d..ac31fb8a47be 100644 --- a/packages/assets/src/registry.flow.js +++ b/packages/assets/src/registry.flow.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow strict + * @flow strict-local * @format */ From 387c27c24db063e08dc3c456a9c528199ac57e34 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 14 Sep 2023 21:14:34 +0200 Subject: [PATCH 6/8] make flow-check happy --- packages/assets/{path-support.js.flow => path-support.js} | 2 +- packages/assets/{registry.js.flow => registry.js} | 4 ++-- packages/assets/src/path-support.flow.js | 4 ++-- packages/assets/src/path-support.js | 4 ++-- packages/assets/src/registry.flow.js | 2 +- packages/assets/src/registry.js | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) rename packages/assets/{path-support.js.flow => path-support.js} (93%) rename packages/assets/{registry.js.flow => registry.js} (77%) diff --git a/packages/assets/path-support.js.flow b/packages/assets/path-support.js similarity index 93% rename from packages/assets/path-support.js.flow rename to packages/assets/path-support.js index 4837045be006..330871ae702c 100644 --- a/packages/assets/path-support.js.flow +++ b/packages/assets/path-support.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @format + * @format strict * @flow */ diff --git a/packages/assets/registry.js.flow b/packages/assets/registry.js similarity index 77% rename from packages/assets/registry.js.flow rename to packages/assets/registry.js index 1d5796815f25..48ef37b4d85c 100644 --- a/packages/assets/registry.js.flow +++ b/packages/assets/registry.js @@ -4,10 +4,10 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow + * @flow strict * @format */ 'use strict'; -module.exports = require('./src/registry'); +module.exports = require('./src/registry.flow'); diff --git a/packages/assets/src/path-support.flow.js b/packages/assets/src/path-support.flow.js index 972fe67de283..664549fcc61d 100644 --- a/packages/assets/src/path-support.flow.js +++ b/packages/assets/src/path-support.flow.js @@ -5,10 +5,10 @@ * LICENSE file in the root directory of this source tree. * * @format - * @flow strict-local + * @flow strict */ -import type {PackagerAsset} from './registry.js'; +import type {PackagerAsset} from './registry.flow.js'; const androidScaleSuffix = { '0.75': 'ldpi', diff --git a/packages/assets/src/path-support.js b/packages/assets/src/path-support.js index 2497d6fe1be7..569c7449daf5 100644 --- a/packages/assets/src/path-support.js +++ b/packages/assets/src/path-support.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow + * @flow strict-local * @format * @oncall react_native */ @@ -13,7 +13,7 @@ export type * from './path-support.flow'; */ -if (!process.env.BUILD_EXCLUDE_BABEL_REGISTER) { +if (process.env.BUILD_EXCLUDE_BABEL_REGISTER != null) { require('../../../scripts/build/babel-register').registerForMonorepo(); } diff --git a/packages/assets/src/registry.flow.js b/packages/assets/src/registry.flow.js index ac31fb8a47be..79117d49378d 100644 --- a/packages/assets/src/registry.flow.js +++ b/packages/assets/src/registry.flow.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow strict-local + * @flow strict * @format */ diff --git a/packages/assets/src/registry.js b/packages/assets/src/registry.js index ec06e9d131fe..22e1d0ebbcf7 100644 --- a/packages/assets/src/registry.js +++ b/packages/assets/src/registry.js @@ -4,7 +4,7 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * - * @flow + * @flow strict-local * @format * @oncall react_native */ @@ -13,7 +13,7 @@ export type * from './registry.flow'; */ -if (!process.env.BUILD_EXCLUDE_BABEL_REGISTER) { +if (process.env.BUILD_EXCLUDE_BABEL_REGISTER != null) { require('../../../scripts/build/babel-register').registerForMonorepo(); } From 9ba56ebf025bb1a7efc422ac74429c6385c0d640 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Fri, 15 Sep 2023 08:13:27 +0200 Subject: [PATCH 7/8] add `babel-register` to metro.config.js --- packages/rn-tester/metro.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/rn-tester/metro.config.js b/packages/rn-tester/metro.config.js index 3c41387cc19b..517293b17552 100644 --- a/packages/rn-tester/metro.config.js +++ b/packages/rn-tester/metro.config.js @@ -23,6 +23,7 @@ const config = { // Make Metro able to resolve required external dependencies watchFolders: [ path.resolve(__dirname, '../../node_modules'), + path.resolve(__dirname, '../../scripts/build'), // babel-register.js path.resolve(__dirname, '../assets'), path.resolve(__dirname, '../community-cli-plugin'), path.resolve(__dirname, '../dev-middleware'), From c2a1793e65dcce2eca0f6b892274dcdcf911a0f5 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Fri, 15 Sep 2023 08:28:14 +0200 Subject: [PATCH 8/8] fix e2e tests? --- packages/assets/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/assets/package.json b/packages/assets/package.json index 1d026b5579a2..daec3fd2949a 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -19,6 +19,9 @@ "./package.json": "./package.json" }, "files": [ - "dist" + "dist", + "path-support.js", + "registry.js", + "src" ] }