Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 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
54e0da3
docs: contribution
krizzu Oct 13, 2025
e183197
docs: development
krizzu Oct 13, 2025
b3e8cbc
ci: run shared storage tests on PR
krizzu Oct 13, 2025
2c3c3e8
ci: run bundle
krizzu Oct 13, 2025
9ae0d99
chore: rename actions
krizzu Oct 13, 2025
4f0061c
ci: build js first
krizzu Oct 13, 2025
2986e2c
chore: formatting
krizzu Oct 13, 2025
175f726
chore: unify actions
krizzu Oct 13, 2025
48a3377
ci: use macos-latest
krizzu Oct 13, 2025
d0b3de9
ci: build js before test
krizzu Oct 13, 2025
34e7334
ci: fix tests
krizzu Oct 13, 2025
4f23938
ci: proper name for android test
krizzu Oct 13, 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"
]
}
21 changes: 8 additions & 13 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
# Contributing to React Native Async Storage

Thank you for helping out with Async Storage! We'd like to make contributions as
pleasent as possible, so here's a small guide of how we see it. Happy to hear
pleasant as possible, so here's a small guide of how we see it. Happy to hear
your feedback about anything, so please let us know.

## Tests

We use TypeScript for type check, `eslint` with `prettier` for
linting/formatting, `jest/detox` for tests (unit and e2e). All tests are run on
CircleCI for all opened pull requests, but you should use them locally when
linting/formatting. All tests are run on Github Actions for all opened pull requests, but you should use them locally when
making changes.

- `yarn test`: Run all tests, except for e2e (see note below).
- `yarn test:lint`: Run `eslint` check.
- `yarn test:ts`: Run `tsc` type check.
- `yarn test:e2e:<ios|android|macos>`: Runs e2e tests. Before you can run it,
you should build the app that can be run, by using
`yarn build:e2e:<ios|android|macos>`.
- `yarn test:format`: Run `prettier` check for formatting mistakes.

## Sending a pull request

Expand Down Expand Up @@ -65,16 +61,15 @@ Most notably prefixes you'll see:

## Release process

We use [Semantic Release](http://semantic-release.org) to automatically release
new versions of the library when changes are merged into `main` branch, which
we plan to keep stable. Bug fixes take priority in the release order.
We use [Changeset](https://github.com/changesets/changesets) to manage releases.
In your PR, run `yarn changeset` to create a new changeset, describing your changes.
The Changeset Bot will help you out during opening a PR.

## Reporting issues

You can report issues on our
[bug tracker](https://github.com/react-native-community/react-native-async-storage/issues).
Please search for existing issues and follow the issue template when opening an
one.
[bug tracker](https://github.com/react-native-async-storage/async-storage/issues).
Please search for existing issues and follow the issue template when opening a one.

## License

Expand Down
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
11 changes: 11 additions & 0 deletions .github/scripts/prepare-mkdocs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/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
cp .github/CONTRIBUTING.md docs/contributing.md
139 changes: 0 additions & 139 deletions .github/workflows/default-storage.yml

This file was deleted.

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
Loading
Loading