capacitor-data-storage-sqlite
CAPACITOR 3
Capacitor Data Storage SQlite Plugin is a custom Native Capacitor plugin providing a key-value permanent store for simple data of type string only to SQLite on IOS, Android and Electron platforms and to IndexDB for the Web platform.
To store JSON object
, you should manage conversion through JSON.stringify
before storing and JSON.parse
when retrieving the data
To store number
, use the same procedure, with number.toString()
and Number()
.
For both IOS and Android platforms, the store can be encrypted. The plugin uses SQLCipher for encryption with a passphrase
.
in **data/data/YOUR_PACKAGE/databases**
in **the Document folder of YOUR_APPLICATION**
in **YourApplication/Electron/Databases**
echo(...)
openStore(...)
closeStore(...)
isStoreOpen(...)
isStoreExists(...)
deleteStore(...)
setTable(...)
set(...)
get(...)
remove(...)
clear()
iskey(...)
keys()
values()
filtervalues(...)
keysvalues()
isTable(...)
tables()
deleteTable(...)
importFromJson(...)
isJsonValid(...)
exportToJson()
- Interfaces
echo(options: capEchoOptions) => Promise<capEchoResult>
Param | Type | Description |
---|---|---|
options |
capEchoOptions |
: capEchoOptions |
Returns: Promise<capEchoResult>
Since: 0.0.1
openStore(options: capOpenStorageOptions) => Promise<void>
Open a store
Param | Type | Description |
---|---|---|
options |
capOpenStorageOptions |
: capOpenStorageOptions |
Since: 0.0.1
closeStore(options: capStorageOptions) => Promise<void>
Close the Store
Param | Type | Description |
---|---|---|
options |
capStorageOptions |
: capStorageOptions |
Since: 3.0.0
isStoreOpen(options: capStorageOptions) => Promise<capDataStorageResult>
Check if the Store is opened
Param | Type | Description |
---|---|---|
options |
capStorageOptions |
: capStorageOptions |
Returns: Promise<capDataStorageResult>
Since: 3.0.0
isStoreExists(options: capStorageOptions) => Promise<capDataStorageResult>
Check if the Store exists
Param | Type | Description |
---|---|---|
options |
capStorageOptions |
: capStorageOptions |
Returns: Promise<capDataStorageResult>
Since: 3.0.0
deleteStore(options: capOpenStorageOptions) => Promise<void>
Delete a store
Param | Type | Description |
---|---|---|
options |
capOpenStorageOptions |
: capOpenStorageOptions |
Since: 0.0.1
setTable(options: capTableStorageOptions) => Promise<void>
Set or Add a table to an existing store
Param | Type | Description |
---|---|---|
options |
capTableStorageOptions |
: capTableStorageOptions |
Since: 0.0.1
set(options: capDataStorageOptions) => Promise<void>
Store a data with given key and value
Param | Type | Description |
---|---|---|
options |
capDataStorageOptions |
: capDataStorageOptions |
Since: 0.0.1
get(options: capDataStorageOptions) => Promise<capValueResult>
Retrieve a data value for a given data key
Param | Type | Description |
---|---|---|
options |
capDataStorageOptions |
: capDataStorageOptions |
Returns: Promise<capValueResult>
Since: 0.0.1
remove(options: capDataStorageOptions) => Promise<void>
Remove a data with given key
Param | Type | Description |
---|---|---|
options |
capDataStorageOptions |
: capDataStorageOptions |
Since: 0.0.1
clear() => Promise<void>
Clear the Data Store (delete all keys)
Since: 0.0.1
iskey(options: capDataStorageOptions) => Promise<capDataStorageResult>
Check if a data key exists
Param | Type | Description |
---|---|---|
options |
capDataStorageOptions |
: capDataStorageOptions |
Returns: Promise<capDataStorageResult>
Since: 0.0.1
keys() => Promise<capKeysResult>
Get the data key list
Returns: Promise<capKeysResult>
Since: 0.0.1
values() => Promise<capValuesResult>
Get the data value list
Returns: Promise<capValuesResult>
Since: 0.0.1
filtervalues(options: capFilterStorageOptions) => Promise<capValuesResult>
Get the data value list for filter keys
Param | Type | Description |
---|---|---|
options |
capFilterStorageOptions |
: capFilterStorageOptions |
Returns: Promise<capValuesResult>
Since: 2.4.2
keysvalues() => Promise<capKeysValuesResult>
Get the data key/value pair list
Returns: Promise<capKeysValuesResult>
Since: 0.0.1
isTable(options: capTableStorageOptions) => Promise<capDataStorageResult>
Check if a table exists
Param | Type | Description |
---|---|---|
options |
capTableStorageOptions |
: capTableStorageOptions |
Returns: Promise<capDataStorageResult>
Since: 3.0.0
tables() => Promise<capTablesResult>
Get the table list for the current store
Returns: Promise<capTablesResult>
Since: 3.0.0
deleteTable(options: capTableStorageOptions) => Promise<void>
Delete a table
Param | Type | Description |
---|---|---|
options |
capTableStorageOptions |
: capTableStorageOptions |
Since: 3.0.0
importFromJson(options: capStoreImportOptions) => Promise<capDataStorageChanges>
Import a database From a JSON
Param | Type |
---|---|
options |
capStoreImportOptions |
Returns: Promise<capDataStorageChanges>
Since: 3.2.0
isJsonValid(options: capStoreImportOptions) => Promise<capDataStorageResult>
Check the validity of a JSON Object
Param | Type |
---|---|
options |
capStoreImportOptions |
Returns: Promise<capDataStorageResult>
Since: 3.2.0
exportToJson() => Promise<capStoreJson>
Export the given database to a JSON Object
Returns: Promise<capStoreJson>
Since: 3.2.0
Prop | Type | Description |
---|---|---|
value |
string |
String returned |
Prop | Type | Description |
---|---|---|
value |
string |
String to be echoed |
Prop | Type | Description |
---|---|---|
database |
string |
The storage database name |
table |
string |
The storage table name |
encrypted |
boolean |
Set to true for database encryption |
mode |
string |
* Set the mode for database encryption ["encryption", "secret","newsecret"] |
Prop | Type | Description |
---|---|---|
database |
string |
The storage name |
Prop | Type | Description |
---|---|---|
result |
boolean |
result set to true when successful else false |
message |
string |
a returned message |
Prop | Type | Description |
---|---|---|
table |
string |
The storage table name |
Prop | Type | Description |
---|---|---|
key |
string |
The data name |
value |
string |
The data value when required |
Prop | Type | Description |
---|---|---|
value |
string |
the data value for a given data key |
Prop | Type | Description |
---|---|---|
keys |
string[] |
the data key list as an Array |
Prop | Type | Description |
---|---|---|
values |
string[] |
the data values list as an Array |
Prop | Type | Description |
---|---|---|
filter |
string |
The filter data for filtering keys ['%filter', 'filter', 'filter%'] for [starts with filter, contains filter, ends with filter] |
Prop | Type | Description |
---|---|---|
keysvalues |
any[] |
the data keys/values list as an Array of {key:string,value:string} |
Prop | Type | Description |
---|---|---|
tables |
string[] |
the tables list as an Array |
Prop | Type | Description |
---|---|---|
changes |
number |
the number of changes from an importFromJson command |
Prop | Type | Description |
---|---|---|
jsonstring |
string |
Set the JSON object to import |
Prop | Type | Description |
---|---|---|
export |
JsonStore |
an export JSON object |
Prop | Type | Description |
---|---|---|
database |
string |
The database name |
encrypted |
boolean |
Set to true (database encryption) / false iOS & Android only |
tables |
JsonTable[] |
* Array of Table (JsonTable) |
Prop | Type | Description |
---|---|---|
name |
string |
The database name |
values |
capDataStorageOptions[] |
* Array of Values (capDataStorageOptions) |
use the openStore
method with the following options:
{
database:"fooDB",
table:"fooTable",
encrypted:true,
mode:"encryption"
}
The existing datastore will be encrypted with a secret key and opens with given database and table names.
To define your own "secret" and "newsecret" keys:
- in IOS, go to the Pod/Development Pods/jeepqCapacitor/DataStorageSQLite/Global.swift file
- in Android, go to jeepq-capacitor/java/com.jeep.plugins.capacitor/cdssUtils/Global.java
and then update the default values before building your app.
use the openStore
method with the following options:
{
database:"fooDB",
table:"fooTable",
encrypted:true,
mode:"secret"
}
The Datastore will be encrypted and opens with given database and table names and the secret key stored in your application.
use the openStore
method with the following options:
{
database:"fooDB",
table:"fooTable",
encrypted:true,
mode:"newsecret"
}
The secret key of the encrypted datastore will be modified with the newsecret key stored in your application and the datastore will be opened with given database and table names and newsecret key.
Do not forget after this change of secret to go in the code of your app and modified in the Global
file the secret
paramater with the value of the newsecret
parameter and reassign a new value of your choice to the newsecret
parameter, before the relauch of your app.