Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
df61291
docs: refresh README
mfkrause Sep 2, 2026
c8de782
feat: add ActivityIndicator optimizer
mfkrause Sep 2, 2026
9aa6c33
feat(example): drive mount benchmark automatically
mfkrause Sep 2, 2026
278bbdf
feat(plugin)!: redesign configuration API
mfkrause Sep 2, 2026
3421240
perf(native-image): hoist static native image sources
mfkrause Sep 3, 2026
b10c47c
docs: update README compatibility section
mfkrause Sep 3, 2026
52ac21d
perf(native-image): optimize static srcSet sources
mfkrause Sep 3, 2026
2a68085
feat(metro): add config adapter
mfkrause Sep 3, 2026
980b36f
perf(plugin): resolve version-dependent behavior at build time
mfkrause Sep 3, 2026
ac5f130
refactor: cleanup
mfkrause Sep 3, 2026
9bb513a
fix(native-text): bail when runtime text context is unknown
mfkrause Sep 3, 2026
d1dfa8b
test: cleanup tests
mfkrause Sep 3, 2026
dad4fb5
refactor(plugin): use optimizer context object instead of positional
mfkrause Sep 3, 2026
c70e9ce
feat(static-animated): remove wrappers without animated values
mfkrause Sep 3, 2026
1d76680
fix(plugin): allow boost-force decorator more often
mfkrause Sep 3, 2026
38fa8dd
feat(stylesheet-operations): evaluate static StyleSheet operations
mfkrause Sep 3, 2026
2daff82
feat(platform-folding): fold Platform select calls and branches
mfkrause Sep 3, 2026
1406069
docs: remove deep dive, update how it works
mfkrause Sep 3, 2026
86c081b
refactor: enable linter in tests directories
mfkrause Sep 3, 2026
06268c9
chore: update dependencies
mfkrause Sep 3, 2026
6557307
ci: fix Vercel deployment
mfkrause Sep 3, 2026
13cafbc
refactor(animated-wrapper-removal): rename rule
mfkrause Sep 3, 2026
491574b
perf(native-text): preprocess selectionColor
mfkrause Sep 4, 2026
23dc4ea
fix: fix TypeScript 7 type errors
mfkrause Sep 4, 2026
127c900
fix(platform-folding): preserve select value evaluations
mfkrause Sep 4, 2026
2a5a342
docs: document immutable text style requirement
mfkrause Sep 4, 2026
35bf8ab
feat(platform-folding): resolve platform branches and expressions
mfkrause Sep 4, 2026
0ac6f90
test(plugin): move optimizer transforms to fixtures
mfkrause Sep 4, 2026
c915a92
chore(test): upgrade to Vitest 5
mfkrause Sep 4, 2026
c042736
perf(plugin): replace Object.assign with object spread
mfkrause Sep 4, 2026
cc37843
docs: document internal API support contract
mfkrause Sep 4, 2026
20ec021
feat(animated-value-initialization): lazily create animated values
mfkrause Sep 4, 2026
5d2754c
fix(plugin): preserve text context through wrappers
mfkrause Sep 4, 2026
c9e50e6
perf(native-image): narrow text ancestry checks
mfkrause Sep 4, 2026
d01b3e9
perf(native-activity-indicator): remove text ancestry checks
mfkrause Sep 4, 2026
b392c51
docs: better document platform-folding purpose
mfkrause Sep 4, 2026
7233668
feat(metro): resolve cross-file component ancestors
mfkrause Sep 4, 2026
586ba8e
feat(view): preserve runtime Text context if needed
mfkrause Sep 5, 2026
3bcc828
feat(plugin): classify react-native ancestors
mfkrause Sep 5, 2026
dbe05db
ci: test v2 branch
mfkrause Sep 5, 2026
61cecec
feat(plugin): support Uniwind integration
mfkrause Sep 5, 2026
106b7e1
fix: fix type errors
mfkrause Sep 5, 2026
5e30015
perf(metro): reduce redundant bundling transforms and analyses
mfkrause Sep 5, 2026
1e2cfe6
ci: improve release note generation
mfkrause Sep 5, 2026
191eb90
fix: preserve ancestor safety before React Compiler lowering
mfkrause Sep 5, 2026
e282015
feat: resolve spread helper return keys
mfkrause Sep 5, 2026
4b8d9e5
fix(text): preserve React Native accessibility and style parity
mfkrause Sep 5, 2026
a3ab354
feat(image): optimize load-event callbacks
mfkrause Sep 5, 2026
d234243
feat(plugin): optimize literal JSX spread props
mfkrause Sep 5, 2026
e79d07f
feat(plugin): precompute static accessibility props
mfkrause Sep 5, 2026
f32b699
fix: restore React Native version matrix compatibility
mfkrause Sep 5, 2026
a450bbe
docs: cleanup
mfkrause Sep 5, 2026
9978a0b
docs: cleanup
mfkrause Sep 13, 2026
645e410
feat: add support for React Native 0.88
mfkrause Sep 13, 2026
85cec9b
ci: remove v2 branch from CI
mfkrause Sep 13, 2026
de18dd0
docs: update domain
mfkrause Sep 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ runs:
cache: pnpm
cache-dependency-path: pnpm-lock.yaml

- name: Enable Corepack
run: corepack enable
shell: bash

- name: Install dependencies
run: pnpm install --frozen-lockfile
shell: bash
44 changes: 29 additions & 15 deletions .github/workflows/test.yml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Test & build
name: CI
on:
push:
branches:
Expand All @@ -9,6 +9,7 @@ on:

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -30,6 +31,7 @@ jobs:
run: pnpm typecheck

test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -42,6 +44,7 @@ jobs:
run: pnpm test

build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -54,33 +57,44 @@ jobs:
run: pnpm package build

parity-matrix:
name: React Native ${{ matrix.react-native }} parity
name: React Native ${{ matrix.react-native }} / Metro ${{ matrix.metro }} parity
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
react-native:
- '0.83'
- '0.84'
- '0.85'
- '0.86'
- '0.87'
include:
- react-native: '0.83'
metro: '0.83.8'
- react-native: '0.84'
metro: '0.83.8'
- react-native: '0.85'
metro: '0.84.5'
- react-native: '0.86'
metro: '0.84.6'
- react-native: '0.87'
metro: '0.87.0'
- react-native: '0.88.0-rc.0'
metro: '0.87.0'
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Select React Native version
- name: Select React Native and Metro versions
env:
METRO_VERSION: ${{ matrix.metro }}
REACT_NATIVE_VERSION: ${{ matrix.react-native }}
run: |
node <<'NODE'
const fs = require('node:fs');
const path = 'packages/react-native-boost/package.json';
const packageJson = JSON.parse(fs.readFileSync(path, 'utf8'));
const version = process.env.REACT_NATIVE_VERSION;
const metroVersion = process.env.METRO_VERSION;
const reactNativeVersion = process.env.REACT_NATIVE_VERSION;

packageJson.devDependencies['react-native'] = version;
packageJson.devDependencies['@react-native/babel-preset'] = version;
packageJson.devDependencies['metro'] = metroVersion;
packageJson.devDependencies['metro-config'] = metroVersion;
packageJson.devDependencies['react-native'] = reactNativeVersion;
packageJson.devDependencies['@react-native/babel-preset'] = reactNativeVersion;
fs.writeFileSync(path, `${JSON.stringify(packageJson, null, 2)}\n`);
NODE

Expand All @@ -95,9 +109,6 @@ jobs:
pnpm-lock.yaml
packages/react-native-boost/package.json

- name: Enable Corepack
run: corepack enable

- name: Install dependencies
run: pnpm install --no-frozen-lockfile

Expand All @@ -107,5 +118,8 @@ jobs:
- name: Build package
run: pnpm package build

- name: Test Metro integration
run: pnpm --filter react-native-boost exec vitest run --project unit src/metro/__tests__

- name: Test runtime parity
run: pnpm package test --run --project parity
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,3 @@ yarn-error.log

# pnpm
.pnpm-store/

# Turborepo
.turbo/
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v24
v26
8 changes: 1 addition & 7 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,5 @@
"arrowParens": "always",
"endOfLine": "lf",
"sortPackageJson": false,
"ignorePatterns": [
"CHANGELOG.md",
"apps/docs/**/*.md",
"apps/docs/**/*.mdx",
"apps/docs/.docusaurus/**",
"benchmarks/**"
]
"ignorePatterns": ["CHANGELOG.md", "apps/docs/**/*.md", "apps/docs/**/*.mdx", "benchmarks/**"]
}
11 changes: 6 additions & 5 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
"**/*.config.{js,mjs,cjs}",
"**/scripts",
"**/plugins",
"**/__tests__",
"apps/docs/.docusaurus/**"
"**/__tests__/**/fixtures-*/**/{code,output}.{js,jsx,ts,tsx}"
],
"rules": {
"no-unused-vars": [
Expand Down Expand Up @@ -42,7 +41,7 @@
"unicorn/error-message": "error",
"unicorn/escape-case": "error",
"unicorn/explicit-length-check": "error",
"unicorn/filename-case": "error",
"unicorn/filename-case": ["error", { "case": "kebabCase" }],
"unicorn/new-for-builtins": "error",
"unicorn/no-accessor-recursion": "error",
"unicorn/no-anonymous-default-export": "error",
Expand Down Expand Up @@ -75,7 +74,6 @@
"unicorn/no-nested-ternary": "off",
"unicorn/no-abusive-eslint-disable": "off",
"unicorn/no-zero-fractions": "error",
"unicorn/number-literal-case": "error",
"unicorn/numeric-separators-style": "error",
"unicorn/prefer-add-event-listener": "error",
"unicorn/prefer-array-find": "error",
Expand Down Expand Up @@ -131,7 +129,10 @@
},
"overrides": [
{
"files": ["packages/react-native-time-to-render/src/*.ts"],
"files": [
"packages/react-native-boost/src/plugin/__tests__/parity/mocks/*",
"packages/react-native-time-to-render/src/*Native*.ts"
],
"rules": {
"unicorn/filename-case": "off"
}
Expand Down
Loading