Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=lf
2 changes: 2 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@ Please follow the template below to help reviewers understand your changes clear
<!-- Mark completed items with [x]. Remove tasks that don't apply. -->

<!-- If you added a new library or updated the existing one. -->

- [ ] Added library to **`react-native-libraries.json`**
- [ ] Updated library in **`react-native-libraries.json`**

<!-- If you added a feature or fixed a bug -->

- [ ] Documented how you found or replicated the issue.
- [ ] Explained how you fixed the issue or built the feature.
- [ ] Described how to use or verify the change.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-deploy-preview.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "[CODE] Deploy preview website"
name: '[CODE] Deploy preview website'

on:
pull_request:
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/code-deploy-production.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "[CODE] Deploy production website"
name: '[CODE] Deploy production website'

on:
push:
Expand All @@ -19,15 +19,15 @@ jobs:
name: production
url: https://reactnative.directory
steps:
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Deploy
shell: bash
run: bunx vercel --force --token "$VERCEL_TOKEN" --prod
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
# https://spectrum.chat/zeit/now/solved-project-linking-and-ci-cd-pipelines~5e6eb62a-9d56-47ac-9e32-0d973a523787
VERCEL_ORG_ID: 'team_IsLEAhLb9cZj6y1Bud9XYmeK'
VERCEL_PROJECT_ID: 'QmecQ8hTu4DUHv6js5U8L9pJ9vp54mg1bmRLWaS5RZCyt4'
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Deploy
shell: bash
run: bunx vercel --force --token "$VERCEL_TOKEN" --prod
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
# https://spectrum.chat/zeit/now/solved-project-linking-and-ci-cd-pipelines~5e6eb62a-9d56-47ac-9e32-0d973a523787
VERCEL_ORG_ID: 'team_IsLEAhLb9cZj6y1Bud9XYmeK'
VERCEL_PROJECT_ID: 'QmecQ8hTu4DUHv6js5U8L9pJ9vp54mg1bmRLWaS5RZCyt4'
24 changes: 12 additions & 12 deletions .github/workflows/code-lint-and-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "[CODE] Lint and test"
name: '[CODE] Lint and test'

on:
push:
Expand All @@ -11,14 +11,14 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: TSC
run: bun tsc
- name: Lint
run: bun lint
- name: Build Next app
run: bun next build --webpack
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: TSC
run: bun tsc
- name: Lint
run: bun lint
- name: Build Next app
run: bun next build --webpack
32 changes: 16 additions & 16 deletions .github/workflows/data-test-and-validate.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "[DATA] Test and Validate"
name: '[DATA] Test and Validate'

on:
push:
Expand All @@ -11,18 +11,18 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Validate react-native-libraries.json
run: bun data:validate
- name: Test react-native-libraries.json
run: bun data:test
- name: Check new entries in react-native-libraries.json
run: bun ci:validate
env:
CI_CHECKS_TOKEN: ${{ github.token }}
- name: Lint data
run: bun eslint react-native-libraries.json
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Validate react-native-libraries.json
run: bun data:validate
- name: Test react-native-libraries.json
run: bun data:test
- name: Check new entries in react-native-libraries.json
run: bun ci:validate
env:
CI_CHECKS_TOKEN: ${{ github.token }}
- name: Lint data
run: bun oxfmt react-native-libraries.json
20 changes: 10 additions & 10 deletions .github/workflows/vercel-cleanup-data-blobs.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "[VERCEL] Cleanup data blobs"
name: '[VERCEL] Cleanup data blobs'

on:
push:
Expand All @@ -11,12 +11,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Cleanup data blobs
run: bun ci:cleanup-blobs
env:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
- uses: actions/checkout@v6
- name: Use Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Cleanup data blobs
run: bun ci:cleanup-blobs
env:
BLOB_READ_WRITE_TOKEN: ${{ secrets.BLOB_READ_WRITE_TOKEN }}
20 changes: 20 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "./node_modules/oxfmt/configuration_schema.json",
"printWidth": 100,
"tabWidth": 2,
"singleQuote": true,
"bracketSameLine": true,
"trailingComma": "es5",
"arrowParens": "avoid",
"endOfLine": "lf",
"ignorePatterns": [
"**/.next",
"**/.swc",
"**/node_modules",
"**/out",
"**/public",
"**/assets",
"README.md",
"next-env.d.ts"
]
}
160 changes: 160 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["import", "jsx-a11y", "nextjs", "react", "typescript", "unicorn"],
"ignorePatterns": [
"**/.next",
"**/.swc",
"**/node_modules",
"**/out",
"**/public",
"**/assets",
"README.md",
"next-env.d.ts"
],
"rules": {
"curly": "error",
"eqeqeq": [
"error",
"always",
{
"null": "ignore"
}
],
"func-style": ["error", "declaration"],
"no-unused-expressions": [
"error",
{
"allowShortCircuit": true,
"enforceForJSX": true
}
],
"no-unused-vars": [
"error",
{
"vars": "all",
"args": "none",
"ignoreRestSiblings": true,
"caughtErrors": "all",
"caughtErrorsIgnorePattern": "^_"
}
],
"no-useless-computed-key": "error",
"no-useless-concat": "error",
"no-useless-constructor": "error",
"no-useless-return": "error",
"no-void": [
"error",
{
"allowAsStatement": true
}
],
"prefer-promise-reject-errors": "error",
"prefer-rest-params": "error",
"prefer-spread": "error",

"import/consistent-type-specifier-style": ["error", "prefer-inline"],
"import/default": "error",
"import/namespace": "error",
"import/no-cycle": [
"error",
{
"maxDepth": 3,
"disableScc": true
}
],
"import/no-duplicates": "error",
"import/no-named-as-default": "error",
"import/no-named-as-default-member": "error",
"import/no-self-import": "error",
"jsx-a11y/alt-text": "error",
"jsx-a11y/anchor-has-content": "error",
"jsx-a11y/anchor-is-valid": "error",
"jsx-a11y/aria-props": "error",
"jsx-a11y/heading-has-content": "error",
"jsx-a11y/img-redundant-alt": "error",
"jsx-a11y/no-noninteractive-tabindex": "error",
"jsx-a11y/no-redundant-roles": "error",
"jsx-a11y/prefer-tag-over-role": "off",
"nextjs/google-font-display": "error",
"nextjs/google-font-preconnect": "error",
"nextjs/inline-script-id": "error",
"nextjs/next-script-for-ga": "error",
"nextjs/no-assign-module-variable": "error",
"nextjs/no-async-client-component": "error",
"nextjs/no-before-interactive-script-outside-document": "error",
"nextjs/no-css-tags": "error",
"nextjs/no-document-import-in-page": "error",
"nextjs/no-duplicate-head": "error",
"nextjs/no-head-element": "error",
"nextjs/no-head-import-in-document": "error",
"nextjs/no-html-link-for-pages": "error",
"nextjs/no-img-element": "off",
"nextjs/no-page-custom-font": "error",
"nextjs/no-script-component-in-head": "error",
"nextjs/no-styled-jsx-in-document": "error",
"nextjs/no-sync-scripts": "error",
"nextjs/no-title-in-document-head": "error",
"nextjs/no-typos": "error",
"nextjs/no-unwanted-polyfillio": "error",
"react-hooks/rules-of-hooks": "error",
"react/jsx-boolean-value": ["error"],
"react/jsx-curly-brace-presence": ["error"],
"react/jsx-fragments": ["error", "syntax"],
"react/jsx-key": [
"error",
{
"checkFragmentShorthand": true,
"checkKeyMustBeforeSpread": true,
"warnOnDuplicates": true
}
],
"react/jsx-no-duplicate-props": "error",
"react/jsx-no-undef": "error",
"react/no-did-mount-set-state": "error",
"react/no-direct-mutation-state": "error",
"react/no-redundant-should-component-update": "error",
"react/no-this-in-sfc": "error",
"react/no-unknown-property": "error",
"react/no-will-update-set-state": "error",
"react/self-closing-comp": "error",
"typescript/await-thenable": "error",
"typescript/ban-ts-comment": [
"error",
{
"minimumDescriptionLength": 3,
"ts-check": false,
"ts-expect-error": "allow-with-description",
"ts-ignore": true,
"ts-nocheck": true
}
],
"typescript/consistent-type-imports": [
"error",
{
"fixStyle": "inline-type-imports"
}
],
"typescript/no-confusing-non-null-assertion": "error",
"typescript/no-extra-non-null-assertion": "error",
"typescript/no-misused-promises": [
"error",
{
"checksVoidReturn": false
}
],
"typescript/no-restricted-types": "error",
"typescript/no-unnecessary-boolean-literal-compare": "error",
"typescript/no-unnecessary-type-arguments": "error",
"typescript/no-unnecessary-type-assertion": "error",
"typescript/no-unsafe-enum-comparison": "error",
"typescript/prefer-includes": "error",
"typescript/prefer-readonly": "error",
"typescript/return-await": ["error", "error-handling-correctness-only"],
"typescript/unbound-method": "off",
"unicorn/prefer-array-find": "error",
"unicorn/prefer-array-flat": "error",
"unicorn/prefer-array-flat-map": "error",
"unicorn/prefer-array-some": "error",
"unicorn/prefer-node-protocol": "error"
}
}
Loading