react-sqlite-hook
Advanced tools
Comparing version 2.0.6 to 2.1.0
@@ -0,1 +1,16 @@ | ||
## 2.1.0 (2021-09-25) | ||
### Chore | ||
- update to @capacitor/core 3.2.3 | ||
- update to @capacitor-community/sqlite 3.2.3-1 | ||
### Added Features | ||
- add `initWebStore` and `saveToStore` methods to Web platform | ||
### Bug Fixes | ||
- Fix useSQLite() when no listeners given | ||
## 2.0.6 (2021-09-15) CAPACITOR 3 LATEST | ||
@@ -2,0 +17,0 @@ |
{ | ||
"name": "react-sqlite-hook", | ||
"version": "2.0.5", | ||
"version": "2.0.6", | ||
"description": "React Hook for @Capacitor-community/sqlite plugin", | ||
@@ -45,9 +45,9 @@ "repository": { | ||
"peerDependencies": { | ||
"@capacitor-community/sqlite": "^3.2.2-2", | ||
"@capacitor/core": "^3.2.2", | ||
"@capacitor-community/sqlite": "^3.2.3-1", | ||
"@capacitor/core": "^3.2.3", | ||
"react": "^17.0.2" | ||
}, | ||
"devDependencies": { | ||
"@capacitor-community/sqlite": "^3.2.2-2", | ||
"@capacitor/core": "^3.2.2", | ||
"@capacitor-community/sqlite": "3.2.3-1", | ||
"@capacitor/core": "3.2.3", | ||
"@capacitor/docgen": "0.0.17", | ||
@@ -54,0 +54,0 @@ "@testing-library/react-hooks": "^5.1.2", |
@@ -13,7 +13,20 @@ import { AvailableResult } from './util/models'; | ||
/** | ||
* Echo a value | ||
* @param value | ||
* @returns Promise<{value: string}> | ||
* @since 1.0.0 refactor | ||
* Init the web store | ||
* @returns Promise<void> | ||
* @since 2.1.0 | ||
*/ | ||
initWebStore(): Promise<void>; | ||
/** | ||
* Save the datbase to the web store | ||
* @param database | ||
* @returns Promise<void> | ||
* @since 2.1.0 | ||
*/ | ||
saveToStore(database: string): Promise<void>; | ||
/** | ||
* Echo a value | ||
* @param value | ||
* @returns Promise<{value: string}> | ||
* @since 1.0.0 refactor | ||
*/ | ||
echo(value: string): Promise<{ | ||
@@ -186,2 +199,2 @@ value: string; | ||
*/ | ||
export declare const useSQLite: ({ onProgressImport, onProgressExport }: SQLiteProps) => SQLiteHook; | ||
export declare const useSQLite: (onProgress?: SQLiteProps | undefined) => SQLiteHook; |
@@ -10,3 +10,3 @@ import { useCallback, useMemo, useEffect } from 'react'; | ||
*/ | ||
export const useSQLite = ({ onProgressImport, onProgressExport }) => { | ||
export const useSQLite = (onProgress) => { | ||
const platform = Capacitor.getPlatform(); | ||
@@ -22,12 +22,16 @@ const sqlitePlugin = CapacitorSQLite; | ||
if (platform != "electron") { | ||
if (onProgressImport && sqlitePlugin) | ||
importListener = | ||
sqlitePlugin.addListener('sqliteImportProgressEvent', (e) => { | ||
onProgressImport(e.progress); | ||
}); | ||
if (onProgressExport && sqlitePlugin) | ||
exportListener = | ||
sqlitePlugin.addListener('sqliteExportProgressEvent', (e) => { | ||
onProgressExport(e.progress); | ||
}); | ||
if (onProgress) { | ||
if (onProgress.onProgressImport && sqlitePlugin) | ||
importListener = | ||
sqlitePlugin.addListener('sqliteImportProgressEvent', (e) => { | ||
if (typeof onProgress.onProgressImport !== 'undefined') | ||
onProgress.onProgressImport(e.progress); | ||
}); | ||
if (onProgress.onProgressExport && sqlitePlugin) | ||
exportListener = | ||
sqlitePlugin.addListener('sqliteExportProgressEvent', (e) => { | ||
if (typeof onProgress.onProgressExport !== 'undefined') | ||
onProgress.onProgressExport(e.progress); | ||
}); | ||
} | ||
} | ||
@@ -46,2 +50,38 @@ return () => { | ||
}; | ||
/** | ||
* Initialize the Web Store | ||
*/ | ||
const initWebStore = useCallback(async () => { | ||
if (platform != "web") { | ||
return Promise.reject(`Not implemented on platform ${platform}`); | ||
} | ||
try { | ||
await mSQLite.initWebStore(); | ||
return Promise.resolve(); | ||
} | ||
catch (err) { | ||
return Promise.reject(err); | ||
} | ||
}, [mSQLite]); | ||
/** | ||
* Save the Database to store | ||
* @param dbName string | ||
*/ | ||
const saveToStore = useCallback(async (dbName) => { | ||
if (platform != "web") { | ||
return Promise.reject(`Not implemented on platform ${platform}`); | ||
} | ||
if (dbName.length > 0) { | ||
try { | ||
await mSQLite.saveToStore(dbName); | ||
return Promise.resolve(); | ||
} | ||
catch (err) { | ||
return Promise.reject(err); | ||
} | ||
} | ||
else { | ||
return Promise.reject('Must provide a database name'); | ||
} | ||
}, [mSQLite]); | ||
const echo = useCallback(async (value) => { | ||
@@ -401,3 +441,3 @@ if (value) { | ||
if (!availableFeaturesN.useSQLite) { | ||
return Object.assign({ echo: featureNotAvailableError, getPlatform: featureNotAvailableError, getCapacitorSQLite: featureNotAvailableError, createConnection: featureNotAvailableError, closeConnection: featureNotAvailableError, retrieveConnection: featureNotAvailableError, retrieveAllConnections: featureNotAvailableError, closeAllConnections: featureNotAvailableError, addUpgradeStatement: featureNotAvailableError, importFromJson: featureNotAvailableError, isJsonValid: featureNotAvailableError, copyFromAssets: featureNotAvailableError, isConnection: featureNotAvailableError, isDatabase: featureNotAvailableError, getDatabaseList: featureNotAvailableError, addSQLiteSuffix: featureNotAvailableError, deleteOldDatabases: featureNotAvailableError, checkConnectionsConsistency: featureNotAvailableError, isSecretStored: featureNotAvailableError, setEncryptionSecret: featureNotAvailableError, changeEncryptionSecret: featureNotAvailableError }, notAvailable); | ||
return Object.assign({ initWebStore: featureNotAvailableError, saveToStore: featureNotAvailableError, echo: featureNotAvailableError, getPlatform: featureNotAvailableError, getCapacitorSQLite: featureNotAvailableError, createConnection: featureNotAvailableError, closeConnection: featureNotAvailableError, retrieveConnection: featureNotAvailableError, retrieveAllConnections: featureNotAvailableError, closeAllConnections: featureNotAvailableError, addUpgradeStatement: featureNotAvailableError, importFromJson: featureNotAvailableError, isJsonValid: featureNotAvailableError, copyFromAssets: featureNotAvailableError, isConnection: featureNotAvailableError, isDatabase: featureNotAvailableError, getDatabaseList: featureNotAvailableError, addSQLiteSuffix: featureNotAvailableError, deleteOldDatabases: featureNotAvailableError, checkConnectionsConsistency: featureNotAvailableError, isSecretStored: featureNotAvailableError, setEncryptionSecret: featureNotAvailableError, changeEncryptionSecret: featureNotAvailableError }, notAvailable); | ||
} | ||
@@ -411,5 +451,5 @@ else { | ||
isSecretStored, setEncryptionSecret, changeEncryptionSecret, | ||
isAvailable: true }; | ||
initWebStore, saveToStore, isAvailable: true }; | ||
} | ||
}; | ||
//# sourceMappingURL=useSQLite.js.map |
@@ -12,2 +12,4 @@ <p align="center"><br><img src="https://user-images.githubusercontent.com/236501/85893648-1c92e880-b7a8-11ea-926d-95355b8175c7.png" width="128" height="128" /></p> | ||
* [`initWebStore()`](#initwebstore) | ||
* [`saveToStore(...)`](#savetostore) | ||
* [`echo(...)`](#echo) | ||
@@ -47,2 +49,32 @@ * [`getPlatform()`](#getplatform) | ||
### initWebStore() | ||
```typescript | ||
initWebStore() => Promise<void> | ||
``` | ||
Init the web store | ||
**Since:** 2.1.0 | ||
-------------------- | ||
### saveToStore(...) | ||
```typescript | ||
saveToStore(database: string) => Promise<void> | ||
``` | ||
Save the datbase to the web store | ||
| Param | Type | | ||
| -------------- | ------------------- | | ||
| **`database`** | <code>string</code> | | ||
**Since:** 2.1.0 | ||
-------------------- | ||
### echo(...) | ||
@@ -49,0 +81,0 @@ |
{ | ||
"name": "react-sqlite-hook", | ||
"version": "2.0.6", | ||
"version": "2.1.0", | ||
"description": "React Hook for @Capacitor-community/sqlite plugin", | ||
@@ -45,9 +45,9 @@ "repository": { | ||
"peerDependencies": { | ||
"@capacitor-community/sqlite": "^3.2.2-2", | ||
"@capacitor/core": "^3.2.2", | ||
"@capacitor-community/sqlite": "^3.2.3-1", | ||
"@capacitor/core": "^3.2.3", | ||
"react": "^17.0.2" | ||
}, | ||
"devDependencies": { | ||
"@capacitor-community/sqlite": "^3.2.2-2", | ||
"@capacitor/core": "^3.2.2", | ||
"@capacitor-community/sqlite": "3.2.3-1", | ||
"@capacitor/core": "3.2.3", | ||
"@capacitor/docgen": "0.0.17", | ||
@@ -54,0 +54,0 @@ "@testing-library/react-hooks": "^5.1.2", |
@@ -9,3 +9,3 @@ <p align="center"><br><img src="https://avatars3.githubusercontent.com/u/16580653?v=4" width="128" height="128" /></p> | ||
<p align="center"> | ||
A React Hook to help Capacitor developpers to use <strong><code>@capacitor-community/sqlite@next</code></strong> plugin in React or Ionic/React applications | ||
A React Hook to help Capacitor developpers to use <strong><code>@capacitor-community/sqlite@latest</code></strong> plugin in React or Ionic/React applications | ||
</p> | ||
@@ -26,3 +26,3 @@ | ||
## @LATEST For Capacitor 3 🚧 (Master) | ||
## @LATEST For Capacitor 3 (Main) | ||
@@ -57,23 +57,26 @@ The `Capacitor3`react-sqlite-hook interfacing the `@capacitor-community/sqlite@latest` | ||
| :-------------------------- | :------ | :-- | :------- | :-- | | ||
| echo | ✅ | ✅ | 🚧 | ❌ | | ||
| getPlatform | ✅ | ✅ | 🚧 | ❌ | | ||
| getCapacitorSQLite | ✅ | ✅ | 🚧 | ❌ | | ||
| addUpgradeStatement | ✅ | ✅ | 🚧 | ❌ | | ||
| createConnection | ✅ | ✅ | 🚧 | ❌ | | ||
| retrieveConnection | ✅ | ✅ | 🚧 | ❌ | | ||
| retrieveAllConnections | ✅ | ✅ | 🚧 | ❌ | | ||
| closeConnection | ✅ | ✅ | 🚧 | ❌ | | ||
| closeAllConnections | ✅ | ✅ | 🚧 | ❌ | | ||
| isConnection | ✅ | ✅ | 🚧 | ❌ | | ||
| isDatabase | ✅ | ✅ | 🚧 | ❌ | | ||
| getDatabaseList | ✅ | ✅ | 🚧 | ❌ | | ||
| addSQLiteSuffix | ✅ | ✅ | 🚧 | ❌ | | ||
| deleteOldDatabases | ✅ | ✅ | 🚧 | ❌ | | ||
| importFromJson | ✅ | ✅ | 🚧 | ❌ | | ||
| isJsonValid | ✅ | ✅ | 🚧 | ❌ | | ||
| copyFromAssets | ✅ | ✅ | 🚧 | ❌ | | ||
| checkConnectionsConsistency | ✅ | ✅ | 🚧 | ❌ | | ||
| isSecretStored | ✅ | ✅ | 🚧 | ❌ | | ||
| setEncryptionSecret | ✅ | ✅ | 🚧 | ❌ | | ||
| changeEncryptionSecret | ✅ | ✅ | 🚧 | ❌ | | ||
| echo | ✅ | ✅ | ✅ | ✅ | | ||
| getPlatform | ✅ | ✅ | ✅ | ✅ | | ||
| getCapacitorSQLite | ✅ | ✅ | ✅ | ✅ | | ||
| addUpgradeStatement | ✅ | ✅ | ✅ | ✅ | | ||
| createConnection | ✅ | ✅ | ✅ | ✅ | | ||
| retrieveConnection | ✅ | ✅ | ✅ | ✅ | | ||
| retrieveAllConnections | ✅ | ✅ | ✅ | ✅ | | ||
| closeConnection | ✅ | ✅ | ✅ | ✅ | | ||
| closeAllConnections | ✅ | ✅ | ✅ | ✅ | | ||
| isConnection | ✅ | ✅ | ✅ | ✅ | | ||
| isDatabase | ✅ | ✅ | ✅ | ✅ | | ||
| getDatabaseList | ✅ | ✅ | ✅ | ✅ | | ||
| addSQLiteSuffix | ✅ | ✅ | ❌ | ❌ | | ||
| deleteOldDatabases | ✅ | ✅ | ❌ | ❌ | | ||
| importFromJson | ✅ | ✅ | ✅ | ✅ | | ||
| isJsonValid | ✅ | ✅ | ✅ | ✅ | | ||
| copyFromAssets | ✅ | ✅ | ✅ | ✅ | | ||
| checkConnectionsConsistency | ✅ | ✅ | ✅ | ✅ | | ||
| isSecretStored | ✅ | ✅ | ❌ | ❌ | | ||
| setEncryptionSecret | ✅ | ✅ | ❌ | ❌ | | ||
| changeEncryptionSecret | ✅ | ✅ | ❌ | ❌ | | ||
| removeListeners | ✅ | ✅ | ✅ | ✅ | | ||
| initWebStore | ❌ | ❌ | ❌ | ✅ | | ||
| saveToStore | ❌ | ❌ | ❌ | ✅ | | ||
@@ -85,4 +88,4 @@ | ||
| :--------------- | :------ | :-- | :------- | :-- | | ||
| onProgressImport | ✅ | ✅ | 🚧 | ❌ | | ||
| onProgressExport | ✅ | ✅ | 🚧 | ❌ | | ||
| onProgressImport | ✅ | ✅ | 🚧 | ✅ | | ||
| onProgressExport | ✅ | ✅ | 🚧 | ✅ | | ||
@@ -89,0 +92,0 @@ |
@@ -20,2 +20,15 @@ import { useCallback, useMemo, useEffect } from 'react'; | ||
/** | ||
* Init the web store | ||
* @returns Promise<void> | ||
* @since 2.1.0 | ||
*/ | ||
initWebStore(): Promise<void>; | ||
/** | ||
* Save the datbase to the web store | ||
* @param database | ||
* @returns Promise<void> | ||
* @since 2.1.0 | ||
*/ | ||
saveToStore(database: string): Promise<void>; | ||
/** | ||
* Echo a value | ||
@@ -201,6 +214,3 @@ * @param value | ||
*/ | ||
export const useSQLite = ({ | ||
onProgressImport, | ||
onProgressExport | ||
}: SQLiteProps): SQLiteHook => { | ||
export const useSQLite = (onProgress? : SQLiteProps): SQLiteHook => { | ||
const platform = Capacitor.getPlatform(); | ||
@@ -217,12 +227,16 @@ const sqlitePlugin: any = CapacitorSQLite; | ||
if(platform != "electron") { | ||
if(onProgressImport && sqlitePlugin) importListener = | ||
sqlitePlugin.addListener('sqliteImportProgressEvent', | ||
(e: any) => { | ||
onProgressImport(e.progress); | ||
}); | ||
if(onProgressExport && sqlitePlugin) exportListener = | ||
sqlitePlugin.addListener('sqliteExportProgressEvent', | ||
(e: any) => { | ||
onProgressExport(e.progress); | ||
}); | ||
if( onProgress ) { | ||
if(onProgress.onProgressImport && sqlitePlugin) importListener = | ||
sqlitePlugin.addListener('sqliteImportProgressEvent', | ||
(e: any) => { | ||
if(typeof onProgress.onProgressImport !== 'undefined') | ||
onProgress.onProgressImport(e.progress); | ||
}); | ||
if(onProgress.onProgressExport && sqlitePlugin) exportListener = | ||
sqlitePlugin.addListener('sqliteExportProgressEvent', | ||
(e: any) => { | ||
if(typeof onProgress.onProgressExport !== 'undefined') | ||
onProgress.onProgressExport(e.progress); | ||
}); | ||
} | ||
} | ||
@@ -241,3 +255,38 @@ return () => { | ||
/** | ||
* Initialize the Web Store | ||
*/ | ||
const initWebStore = useCallback(async (): Promise<void> => { | ||
if(platform != "web") { | ||
return Promise.reject(`Not implemented on platform ${platform}`); | ||
} | ||
try { | ||
await mSQLite.initWebStore(); | ||
return Promise.resolve(); | ||
} catch (err) { | ||
return Promise.reject(err); | ||
} | ||
}, [mSQLite]); | ||
/** | ||
* Save the Database to store | ||
* @param dbName string | ||
*/ | ||
const saveToStore = useCallback(async (dbName: string): Promise<void> => { | ||
if(platform != "web") { | ||
return Promise.reject(`Not implemented on platform ${platform}`); | ||
} | ||
if(dbName.length > 0) { | ||
try { | ||
await mSQLite.saveToStore(dbName); | ||
return Promise.resolve(); | ||
} catch (err) { | ||
return Promise.reject(err); | ||
} | ||
} else { | ||
return Promise.reject('Must provide a database name'); | ||
} | ||
}, [mSQLite]); | ||
const echo = useCallback(async (value: string): Promise<any> => { | ||
@@ -588,2 +637,4 @@ if(value) { | ||
return { | ||
initWebStore: featureNotAvailableError, | ||
saveToStore: featureNotAvailableError, | ||
echo: featureNotAvailableError, | ||
@@ -619,5 +670,5 @@ getPlatform: featureNotAvailableError, | ||
isSecretStored, setEncryptionSecret, changeEncryptionSecret, | ||
isAvailable: true}; | ||
initWebStore, saveToStore, isAvailable: true}; | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
99308
1734
129