SkinFirts uses the standard React Native 0.86 toolchain with a small number of intentional customisations: the Metro bundler is extended withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/BhushanBadhe39/SkinFirts/llms.txt
Use this file to discover all available pages before exploring further.
react-native-svg-transformer so that .svg files can be imported as React components, react-native.config.js registers the local fonts directory, and the project ships with consistent code-quality tooling through ESLint and Prettier. This page documents every configuration file so you can understand the build pipeline or adapt it for a new contributor environment.
Node / Engine Requirement
Theengines field in package.json enforces a minimum Node version:
package.json (excerpt)
node --version.
Babel
Babel is configured with the official React Native preset, which handles JSX transformation, Flow stripping, and all other syntax features required by the React Native runtime.babel.config.js
react-native-reanimated), add it to the plugins array in this file.
Metro Bundler
Metro is the JavaScript bundler for React Native. SkinFirts extends the default Metro configuration to add support for importing.svg files directly as React components using react-native-svg-transformer.
metro.config.js
| Change | Reason |
|---|---|
assetExts removes 'svg' | Prevents Metro treating SVGs as static file assets |
sourceExts adds 'svg' | Tells Metro to process SVG files through the Babel transformer |
babelTransformerPath → react-native-svg-transformer | Converts SVG XML into React component code at bundle time |
SVG Imports
Because of the transformer configuration above, any.svg file in the project can be imported as a default React component and rendered like any other JSX element:
react-native.config.js
react-native.config.js registers the project’s local font directory so that the React Native CLI can link font assets to the native projects (iOS bundle resources and Android assets).
react-native.config.js
src/assets/fonts/, run the following command to link it:
ESLint
ESLint is configured to extend the@react-native shared config, which bundles rules for React, React Native, React Hooks, and accessibility best practices.
.eslintrc.js
Prettier
Prettier enforces a consistent code style. The project’s.prettierrc.js sets three rules that differ from Prettier’s defaults:
.prettierrc.js
| Option | Value | Effect |
|---|---|---|
arrowParens | 'avoid' | Omits parentheses around single arrow-function parameters: x => x instead of (x) => x |
singleQuote | true | Uses single quotes for strings instead of double quotes |
trailingComma | 'all' | Adds trailing commas in multi-line objects, arrays, and function parameters |
Jest
The project uses the@react-native/jest-preset which configures the Jest environment, module name mapper, and setup files appropriate for React Native component testing.
jest.config.js
react-test-renderer is listed as a dev dependency at the same version as react (19.2.3). When writing component tests, import from react-test-renderer to render components in the Jest environment.Available npm Scripts
All commands should be run from the project root directory.| Script | Command | Description |
|---|---|---|
start | react-native start | Start the Metro bundler dev server |
android | react-native run-android | Build and run the app on a connected Android device or emulator |
ios | react-native run-ios | Build and run the app on iOS Simulator or a connected device |
lint | eslint . | Run ESLint across all project files |
test | jest | Run the full Jest test suite |