Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
3596a97
drop sqlite
krizzu Sep 2, 2025
2327cb5
rename to async-storage
krizzu Sep 2, 2025
2112d96
bump node and yarn
krizzu Sep 2, 2025
67727f0
chore: drop example from api
krizzu Sep 2, 2025
bae09e5
yarn constraints
krizzu Sep 2, 2025
ff27502
bump eslint + prettier
krizzu Sep 2, 2025
cae34f5
prettier upgrade
krizzu Sep 2, 2025
1e5db40
update api
krizzu Sep 2, 2025
c9ee708
scaffold test app
krizzu Sep 2, 2025
6ed5a72
lift and shift lib
krizzu Sep 2, 2025
f5af950
example ios setup
krizzu Sep 3, 2025
4d4eee0
drop api package
krizzu Sep 3, 2025
6a51895
ios implementation started
krizzu Sep 4, 2025
672aa4d
js implementation
krizzu Sep 4, 2025
1c339c0
example
krizzu Sep 4, 2025
c090cf0
scaffold android
krizzu Sep 9, 2025
3fb9ff3
scaffold shared storage
krizzu Sep 10, 2025
9bd954e
scaffold shared storage
krizzu Sep 10, 2025
315e5e4
add room to shared storage
krizzu Sep 10, 2025
d38f538
setup tests
krizzu Sep 11, 2025
d63f35f
add flow to result
krizzu Sep 11, 2025
5f06926
crud test and implementation
krizzu Sep 11, 2025
647bb85
more storage tests
krizzu Sep 11, 2025
92c4e4b
drop old
krizzu Sep 12, 2025
6709e42
build script
krizzu Sep 12, 2025
5712c89
js: update api
krizzu Sep 12, 2025
2095d07
use shared storage in android
krizzu Sep 12, 2025
da5f4b4
android integration
krizzu Sep 12, 2025
e64af39
android local maven
krizzu Sep 12, 2025
4f8ab48
android implementation
krizzu Sep 12, 2025
94cc2e6
ios linking
krizzu Sep 12, 2025
e17f0f8
ios integration
krizzu Sep 12, 2025
8aa878d
example
krizzu Sep 13, 2025
b87f204
fix core api
krizzu Sep 13, 2025
bfe6b8c
macos-example
krizzu Sep 14, 2025
bfa62db
support for macos
krizzu Sep 14, 2025
a245067
shared: move to interface
krizzu Sep 15, 2025
d0bfe58
storage exceptions
krizzu Sep 15, 2025
5b3a226
integrate android again
krizzu Sep 15, 2025
ef5b932
integrate apple again
krizzu Sep 16, 2025
68ebafb
fix(rn-android): catch all exception
krizzu Sep 16, 2025
23fc472
fix(example-compose): fix example
krizzu Sep 16, 2025
c9e8b82
shared-storage: logging and db files utils
krizzu Sep 16, 2025
889be07
fix(shared-storage): annotate methods as throwing
krizzu Sep 16, 2025
a1cdce8
feat(rn-native-module): handle errors from shared storage
krizzu Sep 16, 2025
02f1fe8
feat(js-module): create AsyncStorageError handle throw it
krizzu Sep 16, 2025
1e0550b
fix(rn-example): update to show errors
krizzu Sep 16, 2025
d9516ec
fix: include apple
krizzu Sep 16, 2025
3d67547
fix(async-storage): prefer enum to namespace
krizzu Sep 17, 2025
10985da
example: scaffold web
krizzu Sep 17, 2025
d4145fe
feat(async-storage): web storage
krizzu Sep 17, 2025
2486865
feat(async-storage): web storage implementation
krizzu Sep 17, 2025
56aeabc
feat(async-storage): implement web storage with idb
krizzu Sep 17, 2025
24a332b
chore: ignore example-web
krizzu Sep 17, 2025
de581ac
fix(shared-storage): update dao after renaming
krizzu Sep 18, 2025
3bbbbc7
feat(async-storage): legacy storage for android, example updated
krizzu Sep 18, 2025
b5c1f9e
feat(async-storage): ios legacy storage
krizzu Sep 18, 2025
6f946fd
feat(async-storage): legacy ios codegen
krizzu Sep 18, 2025
374f24f
example: improve example
krizzu Sep 19, 2025
21f2a8a
fix(legacy-storage): always return what requested
krizzu Sep 19, 2025
cf86924
fix(async-storage): always return what requested
krizzu Sep 19, 2025
812d5aa
feat(async-storage): web legacy + web example improvement
krizzu Sep 19, 2025
1909e12
test: saving big data
krizzu Sep 19, 2025
1e96464
feat(async-storage): windows is not supported as native target
krizzu Sep 21, 2025
be2473b
async-storage(windows): start with windows implementation
krizzu Sep 22, 2025
ff944bf
feat(async-storage): windows impl
krizzu Sep 22, 2025
2acbe10
fix(windows): ignore package.lock.json
krizzu Sep 22, 2025
f0ba663
async-storage: scripts
krizzu Sep 22, 2025
012a042
chore: more examples
krizzu Sep 22, 2025
fb21de5
tests: common
krizzu Sep 22, 2025
0342c95
test: fix after changes
krizzu Sep 22, 2025
e46e8c6
test: more cases
krizzu Sep 22, 2025
fd01fb5
tests: improve tests
krizzu Sep 23, 2025
f5e351f
fix(async-storage): coalesce values instead using OR
krizzu Sep 23, 2025
d1bde8f
fix(async-storage): regressions
krizzu Sep 23, 2025
190381c
chore: comment
krizzu Sep 25, 2025
e3167f6
fix: export error type
krizzu Sep 25, 2025
840d854
fix(async-storage): proper errors on windows
krizzu Sep 25, 2025
973f283
example: report error
krizzu Sep 25, 2025
ff85b78
docs: basic website setup
krizzu Sep 26, 2025
47cf28b
docs: v2
krizzu Sep 26, 2025
5432f6f
docs v3
krizzu Sep 26, 2025
d8ae270
chore: drop old website
krizzu Sep 26, 2025
607d3d1
docs: deployment
krizzu Sep 26, 2025
9488aa4
docs: update readme
krizzu Sep 26, 2025
b5a7ea6
docs: override outdated
krizzu Sep 26, 2025
239cf7e
docs: migration, usage
krizzu Sep 29, 2025
4ad3a34
docs: db naming section
krizzu Oct 3, 2025
75421e3
docs: error handling
krizzu Oct 3, 2025
3c7c03b
feat: brownfield integration
krizzu Oct 3, 2025
3c49ba1
docs: brownfield
krizzu Oct 5, 2025
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
  •  
  •  
  •  
7 changes: 3 additions & 4 deletions .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@
"updateInternalDependencies": "patch",
"ignore": [
"@react-native-async-storage/eslint-config",
"async-storage-website",
"@react-native-async-storage/api",
"@react-native-async-storage/sqlite-storage",
"react-native-example-sqlitestorage"
"example-react-native",
"example-web",
"example-common-tests"
]
}
4 changes: 2 additions & 2 deletions .github/actions/setup-project/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ description: Install required tools
inputs:
java-version:
description: Desired Java version
default: "17"
default: "21.0.8"
node-version:
required: false
description: node version to install
# Use pre-installed Node version in Ubuntu 22.04 runner
# https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md
default: 20.13.1
default: 22.18.0
windows-fix:
required: false
description: https://github.com/actions/setup-node/issues/899#issuecomment-1837381044
Expand Down
3 changes: 3 additions & 0 deletions .github/requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mike==2.1.3
mkdocs==1.6.1
mkdocs-material==9.6.20
98 changes: 98 additions & 0 deletions .github/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# by the following command:
#
# pip-compile
#
babel==2.17.0
# via mkdocs-material
backrefs==5.9
# via mkdocs-material
certifi==2025.8.3
# via requests
charset-normalizer==3.4.3
# via requests
click==8.2.1
# via
# mkdocs
# mkdocs-material
colorama==0.4.6
# via mkdocs-material
ghp-import==2.1.0
# via mkdocs
idna==3.10
# via requests
importlib-metadata==8.7.0
# via mike
importlib-resources==6.5.2
# via mike
jinja2==3.1.6
# via
# mike
# mkdocs
# mkdocs-material
markdown==3.9
# via
# mkdocs
# mkdocs-material
# pymdown-extensions
markupsafe==3.0.2
# via
# jinja2
# mkdocs
mergedeep==1.3.4
# via
# mkdocs
# mkdocs-get-deps
mike==2.1.3
# via -r requirements.in
mkdocs==1.6.1
# via
# -r requirements.in
# mike
# mkdocs-material
mkdocs-get-deps==0.2.0
# via mkdocs
mkdocs-material==9.6.20
# via -r requirements.in
mkdocs-material-extensions==1.3.1
# via mkdocs-material
packaging==25.0
# via mkdocs
paginate==0.5.7
# via mkdocs-material
pathspec==0.12.1
# via mkdocs
platformdirs==4.4.0
# via mkdocs-get-deps
pygments==2.19.2
# via mkdocs-material
pymdown-extensions==10.16.1
# via mkdocs-material
pyparsing==3.2.5
# via mike
python-dateutil==2.9.0.post0
# via ghp-import
pyyaml==6.0.3
# via
# mike
# mkdocs
# mkdocs-get-deps
# pymdown-extensions
# pyyaml-env-tag
pyyaml-env-tag==1.1
# via
# mike
# mkdocs
requests==2.32.5
# via mkdocs-material
six==1.17.0
# via python-dateutil
urllib3==2.5.0
# via requests
verspec==0.1.0
# via mike
watchdog==6.0.0
# via mkdocs
zipp==3.23.0
# via importlib-metadata
10 changes: 10 additions & 0 deletions .github/scripts/prepare-mkdocs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

# The website is built using MkDocs with the Material theme.
# https://squidfunk.github.io/mkdocs-material/
# It requires Python to run.
# Install the packages with the following command:
# pip install --no-deps -r requirements.txt


cp packages/async-storage/CHANGELOG.md docs/changelog.md
28 changes: 14 additions & 14 deletions .github/workflows/default-storage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
token: ${{ secrets.GH_RELEASE_TOKEN }}
filters: |
storage:
- 'packages/default-storage/**'
- 'packages/async-storage/**'

android:
name: Android
Expand All @@ -35,11 +35,11 @@ jobs:
with:
gradle-version: wrapper
arguments: react-native-async-storage_async-storage:test
build-root-directory: packages/default-storage/example/android
build-root-directory: packages/async-storage/example/android
- name: Build e2e binary
run: |
yarn build:e2e:android
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example

ios:
name: iOS
Expand All @@ -54,7 +54,7 @@ jobs:
- name: Cache /.ccache
uses: actions/cache@v3
with:
path: packages/default-storage/.ccache
path: packages/async-storage/.ccache
key: ccache-ios-${{ hashFiles('yarn.lock') }}
restore-keys: ccache-ios-
- name: Install JS dependencies
Expand All @@ -63,15 +63,15 @@ jobs:
- name: Bundle JS
run: |
yarn bundle:ios
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example
- name: Install Pods
run: |
RCT_NEW_ARCH_ENABLED=1 pod install
working-directory: packages/default-storage/example/ios
working-directory: packages/async-storage/example/ios
- name: Build e2e binary
run: |
yarn build:e2e:ios
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example

macos:
name: macOS
Expand All @@ -86,7 +86,7 @@ jobs:
- name: Cache /.ccache
uses: actions/cache@v3
with:
path: packages/default-storage/.ccache
path: packages/async-storage/.ccache
key: ccache-macos-${{ hashFiles('yarn.lock') }}
restore-keys: ccache-macos-
- name: Install JS dependencies
Expand All @@ -95,20 +95,20 @@ jobs:
- name: Bundle JS
run: |
yarn bundle:macos
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example
- name: Install Pods
run: |
RCT_NEW_ARCH_ENABLED=1 pod install
working-directory: packages/default-storage/example/macos
working-directory: packages/async-storage/example/macos
- name: Build
run: |
yarn build:e2e:macos
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example
- name: Test
if: false
run: |
yarn test:e2e:macos
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example

windows:
name: Windows
Expand All @@ -132,8 +132,8 @@ jobs:
- name: Install Windows test app
run: |
yarn install-windows-test-app -p windows
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example
- name: Build
run: |
yarn react-native run-windows --release --arch x64 --logging --no-packager --no-launch --no-deploy --msbuildprops "BundleEntryFile=index.ts,UseBundle=false" --no-telemetry
working-directory: packages/default-storage/example
working-directory: packages/async-storage/example
44 changes: 44 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Deploy docs
on:
push:
branches:
- main
paths:
- 'docs/**'
- 'mkdocs.yml'
- 'packages/async-storage/CHANGELOG.md'
workflow_dispatch:
jobs:
deploy-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
token: ${{ secrets.GH_BOT_TOKEN }}
- uses: actions/setup-python@v6
with:
python-version: 3.11
- name: Read docs version
id: version
run: |
VERSION_DOCS=$(node -p "require('./package.json').versionDocs || ''")
echo "versionDocs=$VERSION_DOCS" >> $GITHUB_OUTPUT
- name: Prepare MkDocs
run: |
pip install --no-deps -r .github/requirements.txt
.github/scripts/prepare-mkdocs.sh
# required for mike
- name: Setup git user
run: ./setup-ci-git-user.sh
working-directory: .github/scripts
env:
GITHUB_TOKEN: ${{ secrets.GH_RELEASE_TOKEN }}
GITHUB_NAME: ${{ vars.GH_BOT_NAME }}
GITHUB_EMAIL: ${{ vars.GH_BOT_EMAIL }}
GIT_SET_GLOBAL_USER: true
# required for mike
- name: Setup gh-pages remote
run: |
git remote add docs https://github.com/react-native-async-storage/react-native-async-storage.github.io.git
- name: Deploy Docs with mike
run: mike deploy -u -r docs --push ${{ steps.version.outputs.versionDocs }} latest
37 changes: 0 additions & 37 deletions .github/workflows/website-deployment.yml

This file was deleted.

17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,25 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log
yarn-error.log*
.kotlin
**/build/
xcuserdata
!src/**/build/
captures
.externalNativeBuild
.cxx
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcodeproj/project.xcworkspace/
!*.xcworkspace/contents.xcworkspacedata
**/xcshareddata/WorkspaceSettings.xcsettings


#workspaces
.turbo
/packages/*/lib
build/

# mkdocs
site/
Loading
Loading