Skip to content

Commit f5aee4c

Browse files
committed
Fix build step for @callstack/out-of-tree-platforms (#46)
* feat: setup @callstack/out-of-tree-platforms to build properly * feat: add build packages step to `oot-release.js` script * chore: format package.json
1 parent 5cdfffc commit f5aee4c

File tree

7 files changed

+34
-13
lines changed

7 files changed

+34
-13
lines changed

.circleci/verdaccio.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ packages:
1919
'@react-native/*':
2020
access: $all
2121
publish: $all
22+
proxy: npmjs
23+
'@callstack/*':
24+
access: $all
25+
publish: $all
2226
'@*/*':
2327
access: $all
2428
publish: $authenticated
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Build output
2+
/dist
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './src';

packages/out-of-tree-platforms/package.json

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,26 @@
22
"name": "@callstack/out-of-tree-platforms",
33
"version": "0.74.0",
44
"description": "Utils for React Native out of tree platforms.",
5-
"license": "MIT",
5+
"keywords": ["out-of-tree", "react-native"],
6+
"homepage": "https://github.com/callstack/react-native-visionos/tree/HEAD/packages/out-of-tree-platforms#readme",
7+
"bugs": "https://github.com/callstack/react-native-visionos/issues",
68
"repository": {
79
"type": "git",
810
"url": "https://github.com/callstack/react-native-visionos.git",
911
"directory": "packages/out-of-tree-platforms"
1012
},
11-
"homepage": "https://github.com/callstack/react-native-visionos/tree/HEAD/packages/out-of-tree-platforms#readme",
12-
"keywords": [
13-
"out-of-tree",
14-
"react-native"
13+
"license": "MIT",
14+
"exports": {
15+
".": "./dist/index.js",
16+
"./package.json": "./package.json"
17+
},
18+
"files": [
19+
"dist"
1520
],
16-
"bugs": "https://github.com/facebook/react-native/issues",
21+
"devDependencies": {
22+
"metro-resolver": "^0.80.0"
23+
},
1724
"engines": {
1825
"node": ">=18"
19-
},
20-
"exports": "./index.js",
21-
"devDependencies": {
22-
"metro-resolver": "^0.80.0"
2326
}
2427
}

packages/out-of-tree-platforms/index.js renamed to packages/out-of-tree-platforms/src/index.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type ResolverConfig = {
1818
* Creates a custom Metro resolver that maps platform extensions to package names.
1919
* To be used in app's `metro.config.js` as `resolver.resolveRequest`.
2020
*/
21-
const getPlatformResolver = (config: ResolverConfig): CustomResolver => {
21+
export const getPlatformResolver = (config: ResolverConfig): CustomResolver => {
2222
return (context, moduleName, platform) => {
2323
// `customResolverOptions` is populated through `?resolver.platformExtension` query params
2424
// in the jsBundleURLForBundleRoot method of the react-native/React/Base/RCTBundleURLProvider.mm
@@ -42,5 +42,3 @@ const getPlatformResolver = (config: ResolverConfig): CustomResolver => {
4242
return context.resolveRequest(context, modifiedModuleName, platform);
4343
};
4444
};
45-
46-
module.exports = {getPlatformResolver};

scripts/build/config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@ const buildConfig /*: BuildConfig */ = {
4545
'community-cli-plugin': {
4646
target: 'node',
4747
},
48+
'out-of-tree-platforms': {
49+
target: 'node',
50+
emitTypeScriptDefs: true,
51+
},
4852
'dev-middleware': {
4953
target: 'node',
5054
emitTypeScriptDefs: true,

scripts/oot-release.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99
const forEachPackage = require('./monorepo/for-each-package');
1010
const {applyPackageVersions, publishPackage} = require('./npm-utils');
1111
const updateTemplatePackage = require('./update-template-package');
12+
const {execSync} = require('child_process');
1213
const fs = require('fs');
1314
const path = require('path');
1415
const {cat, echo, exit} = require('shelljs');
1516
const yargs = require('yargs');
1617

18+
const REPO_ROOT = path.resolve(__dirname, '../');
19+
1720
/**
1821
* This script updates core packages to the version of React Native that we are basing on,
1922
* updates internal visionOS packages and releases them.
@@ -116,6 +119,12 @@ function releaseOOT(
116119
});
117120
echo(`Updating template and it's dependencies to ${reactNativeVersion}`);
118121

122+
echo('Building packages...\n');
123+
execSync('node ./scripts/build/build.js', {
124+
cwd: REPO_ROOT,
125+
stdio: [process.stdin, process.stdout, process.stderr],
126+
});
127+
119128
// Release visionOS packages only if OTP is passed
120129
if (!oneTimePassword) {
121130
return;

0 commit comments

Comments
 (0)