react-sqlite-hook
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -0,1 +1,7 @@ | ||
## 0.0.3 (2020-10-16) | ||
### Chores | ||
- @capacitor-community/sqlite: 2.4.2-6 | ||
## 0.0.2 (2020-10-07) | ||
@@ -2,0 +8,0 @@ |
{ | ||
"name": "react-sqlite-hook", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "React Hook for @Capacitor-community/sqlite plugin", | ||
@@ -47,6 +47,6 @@ "repository": { | ||
"@capacitor/core": "^2.4.2", | ||
"@capacitor-community/sqlite": "^2.4.2-4" | ||
"@capacitor-community/sqlite": "^2.4.2-6" | ||
}, | ||
"devDependencies": { | ||
"@capacitor-community/sqlite": "^2.4.2-4", | ||
"@capacitor-community/sqlite": "^2.4.2-6", | ||
"@capacitor/core": "^2.4.2", | ||
@@ -53,0 +53,0 @@ "@testing-library/react-hooks": "^3.4.2", |
import { AvailableResult } from './util/models'; | ||
import '@capacitor-community/sqlite'; | ||
interface Set { | ||
statement?: string; | ||
values?: Array<any>; | ||
} | ||
interface VersionUpgrade { | ||
fromVersion: number; | ||
toVersion: number; | ||
statement: string; | ||
set?: Array<Set>; | ||
} | ||
interface SQLiteResult extends AvailableResult { | ||
@@ -23,3 +33,3 @@ openDB: (dbName: string, encrypted?: boolean, mode?: string) => Promise<{ | ||
}>; | ||
executeSet: (set: Array<any>) => Promise<{ | ||
executeSet: (set: Array<Set>) => Promise<{ | ||
changes?: { | ||
@@ -68,2 +78,6 @@ changes: number; | ||
}>; | ||
addUpgradeStatement: (dbName: string, upgrade: VersionUpgrade) => Promise<{ | ||
result?: boolean; | ||
message?: string; | ||
}>; | ||
} | ||
@@ -70,0 +84,0 @@ export declare const availableFeatures: { |
@@ -20,3 +20,4 @@ import { useCallback } from 'react'; | ||
const androidPremissions = async () => { | ||
console.log("%%% in androidPremissions platform " + platform + "%%%"); | ||
console.log("%%% in androidPremissions platform " | ||
+ platform + "%%%"); | ||
try { | ||
@@ -33,3 +34,3 @@ await mSQLite.requestPermissions(); | ||
if (!availableFeaturesN.useSQLite) { | ||
return Object.assign({ openDB: featureNotAvailableError, createSyncTable: featureNotAvailableError, close: featureNotAvailableError, execute: featureNotAvailableError, executeSet: featureNotAvailableError, run: featureNotAvailableError, query: featureNotAvailableError, isDBExists: featureNotAvailableError, deleteDB: featureNotAvailableError, isJsonValid: featureNotAvailableError, importFromJson: featureNotAvailableError, exportToJson: featureNotAvailableError, setSyncDate: featureNotAvailableError }, notAvailable); | ||
return Object.assign({ openDB: featureNotAvailableError, createSyncTable: featureNotAvailableError, close: featureNotAvailableError, execute: featureNotAvailableError, executeSet: featureNotAvailableError, run: featureNotAvailableError, query: featureNotAvailableError, isDBExists: featureNotAvailableError, deleteDB: featureNotAvailableError, isJsonValid: featureNotAvailableError, importFromJson: featureNotAvailableError, exportToJson: featureNotAvailableError, setSyncDate: featureNotAvailableError, addUpgradeStatement: featureNotAvailableError }, notAvailable); | ||
} | ||
@@ -41,8 +42,10 @@ /** | ||
* @param _mode string optional | ||
* @param version number optional | ||
*/ | ||
const openDB = useCallback(async (dbName, encrypted, mode) => { | ||
const openDB = useCallback(async (dbName, encrypted, mode, version) => { | ||
console.log("%%% in openDB platform " + platform + "%%%"); | ||
if (platform === "android") { | ||
const permissions = await androidPremissions(); | ||
console.log("%%% in openDB permissions " + JSON.stringify(permissions) + "%%%"); | ||
console.log("%%% in openDB permissions " | ||
+ JSON.stringify(permissions) + "%%%"); | ||
if (!permissions.result) | ||
@@ -52,8 +55,12 @@ return permissions; | ||
if (typeof dbName === 'undefined') { | ||
return { result: false, message: 'Must provide a database name' }; | ||
return { result: false, | ||
message: 'Must provide a database name' }; | ||
} | ||
const mDatabase = dbName; | ||
const mVersion = version ? version : 1; | ||
const mEncrypted = encrypted ? encrypted : false; | ||
const mMode = mode ? mode : "no-encryption"; | ||
const r = await mSQLite.open({ database: mDatabase, encrypted: mEncrypted, mode: mMode }); | ||
const r = await mSQLite.open({ database: mDatabase, | ||
encrypted: mEncrypted, | ||
mode: mMode, version: mVersion }); | ||
if (r) { | ||
@@ -126,3 +133,4 @@ if (typeof r.result != 'undefined') { | ||
} | ||
return { changes: { changes: -1, lastId: -1 }, message: "Error in executeSet" }; | ||
return { changes: { changes: -1, lastId: -1 }, | ||
message: "Error in executeSet" }; | ||
} | ||
@@ -139,3 +147,4 @@ return { changes: { changes: -1, lastId: -1 }, message: "Set is empty" }; | ||
const vals = values ? values : []; | ||
const r = await mSQLite.run({ statement: statement, values: vals }); | ||
const r = await mSQLite.run({ statement: statement, | ||
values: vals }); | ||
console.log('result run ', r); | ||
@@ -149,3 +158,4 @@ if (r) { | ||
} | ||
return { changes: { changes: 0, lastId: -1 }, message: "Statement is empty" }; | ||
return { changes: { changes: 0, lastId: -1 }, | ||
message: "Statement is empty" }; | ||
}, []); | ||
@@ -160,3 +170,4 @@ /** | ||
const vals = values ? values : []; | ||
const r = await mSQLite.query({ statement: statement, values: vals }); | ||
const r = await mSQLite.query({ statement: statement, | ||
values: vals }); | ||
console.log('result query ', r); | ||
@@ -236,5 +247,7 @@ if (r) { | ||
} | ||
return { changes: { changes: -1 }, message: "Error in importFromJson" }; | ||
return { changes: { changes: -1 }, | ||
message: "Error in importFromJson" }; | ||
} | ||
return { changes: { changes: -1 }, message: "Must provide a Json string" }; | ||
return { changes: { changes: -1 }, | ||
message: "Must provide a Json string" }; | ||
}, []); | ||
@@ -273,8 +286,40 @@ /** | ||
} | ||
return { result: false, message: "Must provide a synchronization date" }; | ||
return { result: false, | ||
message: "Must provide a synchronization date" }; | ||
}, []); | ||
return { openDB, createSyncTable, close, execute, executeSet, run, query, | ||
isDBExists, deleteDB, isJsonValid, importFromJson, exportToJson, | ||
setSyncDate, isAvailable: true }; | ||
/** | ||
* Add the upgrade Statement for database version upgrading | ||
* @param dbName string | ||
* @param upgrade VersionUpgrade | ||
*/ | ||
const addUpgradeStatement = useCallback(async (dbName, upgrade) => { | ||
if (upgrade === null) { | ||
return { result: false, | ||
message: "Must provide an upgrade statement" }; | ||
} | ||
if (upgrade.fromVersion === null || upgrade.toVersion === null | ||
|| upgrade.statement === null) { | ||
let msg = "Must provide an upgrade statement with "; | ||
msg += "fromVersion & toVersion & statement"; | ||
return { result: false, | ||
message: msg }; | ||
} | ||
if (dbName.length > 0) { | ||
const r = await mSQLite.addUpgradeStatement({ database: dbName, upgrade: [upgrade] }); | ||
if (r) { | ||
if (typeof r.result != 'undefined') { | ||
return r; | ||
} | ||
} | ||
} | ||
else { | ||
return { result: false, | ||
message: "Must provide a database name" }; | ||
} | ||
}, []); | ||
return { openDB, createSyncTable, close, execute, executeSet, run, | ||
query, isDBExists, deleteDB, isJsonValid, importFromJson, | ||
exportToJson, setSyncDate, addUpgradeStatement, | ||
isAvailable: true }; | ||
} | ||
//# sourceMappingURL=useSQLite.js.map |
{ | ||
"name": "react-sqlite-hook", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "React Hook for @Capacitor-community/sqlite plugin", | ||
@@ -47,6 +47,6 @@ "repository": { | ||
"@capacitor/core": "^2.4.2", | ||
"@capacitor-community/sqlite": "^2.4.2-4" | ||
"@capacitor-community/sqlite": "^2.4.2-6" | ||
}, | ||
"devDependencies": { | ||
"@capacitor-community/sqlite": "^2.4.2-4", | ||
"@capacitor-community/sqlite": "^2.4.2-6", | ||
"@capacitor/core": "^2.4.2", | ||
@@ -53,0 +53,0 @@ "@testing-library/react-hooks": "^3.4.2", |
import { useCallback } from 'react'; | ||
import { Capacitor, Plugins } from '@capacitor/core'; | ||
import { AvailableResult, notAvailable } from './util/models'; | ||
import { isFeatureAvailable, featureNotAvailableError } from './util/feature-check'; | ||
import { isFeatureAvailable, featureNotAvailableError } | ||
from './util/feature-check'; | ||
import '@capacitor-community/sqlite'; | ||
interface Set { | ||
statement?: string; | ||
values?: Array<any>; | ||
} | ||
interface VersionUpgrade { | ||
fromVersion: number; | ||
toVersion: number; | ||
statement: string; | ||
set?: Array<Set>; | ||
} | ||
interface SQLiteResult extends AvailableResult { | ||
openDB: (dbName:string,encrypted?:boolean,mode?:string) => Promise<{result?: boolean, message?: string}>; | ||
createSyncTable: () => Promise<{changes?:{changes:number}}>; | ||
close: (dbName: string) => Promise<{result?: boolean, message?: string}>; | ||
execute: (statements: string) => Promise<{changes?:{changes:number},message?:string}>; | ||
executeSet: (set:Array<any>) => Promise<{changes?:{changes:number,lastId:number},message?:string}>; | ||
run: (statement:string,values?:Array<any>) => Promise<{changes?:{changes:number,lastId:number},message?:string}>; | ||
query: (statement:string,values?:Array<string>) => Promise<{values?:Array<any>,message?:string}> | ||
isDBExists: (dbName: string) => Promise<{result?: boolean, message?: string}>; | ||
deleteDB: (dbName: string) => Promise<{result?: boolean, message?: string}>; | ||
isJsonValid: (jsonstring: string) => Promise<{result?: boolean, message?: string}>; | ||
importFromJson: (jsonstring: string) => Promise<{changes?:{changes:number},message?:string}>; | ||
exportToJson: (mode: string) => Promise<{export?:any,message?:string}>; | ||
setSyncDate: (syncDate:string) => Promise<{result?: boolean, message?: string}>; | ||
openDB: (dbName: string,encrypted?: boolean,mode?: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
createSyncTable: () | ||
=> Promise<{changes?: {changes:number}}>; | ||
close: (dbName: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
execute: (statements: string) | ||
=> Promise<{changes?: {changes: number}, | ||
message?: string}>; | ||
executeSet: (set: Array<Set>) | ||
=> Promise<{changes?: {changes: number, lastId: number}, | ||
message?: string}>; | ||
run: (statement: string,values?: Array<any>) | ||
=> Promise<{changes?: {changes: number, lastId: number}, | ||
message?: string}>; | ||
query: (statement: string,values?: Array<string>) | ||
=> Promise<{values?: Array<any>,message?: string}> | ||
isDBExists: (dbName: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
deleteDB: (dbName: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
isJsonValid: (jsonstring: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
importFromJson: (jsonstring: string) | ||
=> Promise<{changes?: {changes: number}, | ||
message?: string}>; | ||
exportToJson: (mode: string) | ||
=> Promise<{export?: any,message?: string}>; | ||
setSyncDate: (syncDate: string) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
addUpgradeStatement: (dbName: string, upgrade: VersionUpgrade) | ||
=> Promise<{result?: boolean, message?: string}>; | ||
} | ||
@@ -37,3 +68,4 @@ export const availableFeatures = { | ||
const androidPremissions = async () => { | ||
console.log("%%% in androidPremissions platform " + platform + "%%%"); | ||
console.log("%%% in androidPremissions platform " | ||
+ platform + "%%%"); | ||
try { | ||
@@ -64,2 +96,3 @@ await mSQLite.requestPermissions(); | ||
setSyncDate: featureNotAvailableError, | ||
addUpgradeStatement: featureNotAvailableError, | ||
...notAvailable | ||
@@ -73,17 +106,26 @@ }; | ||
* @param _mode string optional | ||
* @param version number optional | ||
*/ | ||
const openDB = useCallback(async (dbName:string,encrypted?:boolean,mode?:string) => { | ||
const openDB = useCallback(async (dbName: string, | ||
encrypted?: boolean, | ||
mode?: string, | ||
version?: number) => { | ||
console.log("%%% in openDB platform " + platform + "%%%"); | ||
if(platform === "android") { | ||
const permissions: any = await androidPremissions(); | ||
console.log("%%% in openDB permissions " + JSON.stringify(permissions) + "%%%"); | ||
console.log("%%% in openDB permissions " | ||
+ JSON.stringify(permissions) + "%%%"); | ||
if(!permissions.result) return permissions; | ||
} | ||
if (typeof dbName === 'undefined') { | ||
return { result: false, message: 'Must provide a database name'}; | ||
return { result: false, | ||
message: 'Must provide a database name'}; | ||
} | ||
const mDatabase: string = dbName; | ||
const mVersion: number = version ? version : 1; | ||
const mEncrypted: boolean = encrypted ? encrypted : false; | ||
const mMode: string = mode ? mode : "no-encryption"; | ||
const r = await mSQLite.open({database:mDatabase,encrypted:mEncrypted,mode:mMode}); | ||
const r = await mSQLite.open({database: mDatabase, | ||
encrypted: mEncrypted, | ||
mode: mMode, version: mVersion}); | ||
if(r) { | ||
@@ -156,3 +198,4 @@ if( typeof r.result != 'undefined') { | ||
} | ||
return {changes:{changes:-1,lastId:-1},message:"Error in executeSet"}; | ||
return {changes:{changes: -1,lastId: -1}, | ||
message: "Error in executeSet"}; | ||
} | ||
@@ -166,6 +209,8 @@ return {changes:{changes:-1,lastId:-1},message:"Set is empty"}; | ||
*/ | ||
const run = useCallback(async (statement:string,values?:Array<any>) => { | ||
const run = useCallback(async (statement: string, | ||
values?: Array<any>) => { | ||
if(statement.length > 0) { | ||
const vals: Array<any> = values ? values : []; | ||
const r = await mSQLite.run({statement:statement,values:vals}); | ||
const r = await mSQLite.run({statement: statement, | ||
values: vals}); | ||
console.log('result run ',r); | ||
@@ -179,3 +224,4 @@ if(r) { | ||
} | ||
return {changes:{changes:0,lastId:-1},message:"Statement is empty"}; | ||
return {changes:{changes:0,lastId:-1}, | ||
message: "Statement is empty"}; | ||
}, []); | ||
@@ -187,6 +233,8 @@ /** | ||
*/ | ||
const query = useCallback(async (statement:string,values?:Array<string>) => { | ||
const query = useCallback(async (statement: string, | ||
values?:Array<string>) => { | ||
if(statement.length > 0) { | ||
const vals: Array<any> = values ? values : []; | ||
const r = await mSQLite.query({statement:statement,values:vals}); | ||
const r = await mSQLite.query({statement: statement, | ||
values: vals}); | ||
console.log('result query ',r); | ||
@@ -242,3 +290,4 @@ if(r) { | ||
if(jsonstring.length > 0) { | ||
const r = await mSQLite.isJsonValid({jsonstring:jsonstring}); | ||
const r = await mSQLite.isJsonValid( | ||
{jsonstring:jsonstring}); | ||
console.log('result isJsonValid ',r); | ||
@@ -260,3 +309,4 @@ if(r) { | ||
if(jsonstring.length > 0) { | ||
const r = await mSQLite.importFromJson ({jsonstring:jsonstring}); | ||
const r = await mSQLite.importFromJson ( | ||
{jsonstring:jsonstring}); | ||
console.log('result importFromJson ',r); | ||
@@ -268,5 +318,7 @@ if(r) { | ||
} | ||
return {changes:{changes:-1}, message: "Error in importFromJson"}; | ||
return {changes:{changes:-1}, | ||
message: "Error in importFromJson"}; | ||
} | ||
return {changes:{changes:-1}, message: "Must provide a Json string"}; | ||
return {changes:{changes:-1}, | ||
message: "Must provide a Json string"}; | ||
}, []); | ||
@@ -305,9 +357,41 @@ /** | ||
} | ||
return {result: false, | ||
message:"Must provide a synchronization date"}; | ||
}, []); | ||
/** | ||
* Add the upgrade Statement for database version upgrading | ||
* @param dbName string | ||
* @param upgrade VersionUpgrade | ||
*/ | ||
const addUpgradeStatement = useCallback(async (dbName:string, | ||
upgrade: VersionUpgrade) => { | ||
if(upgrade === null) { | ||
return {result: false, | ||
message:"Must provide an upgrade statement"}; | ||
} | ||
if(upgrade.fromVersion === null || upgrade.toVersion === null | ||
|| upgrade.statement === null) { | ||
let msg = "Must provide an upgrade statement with "; | ||
msg += "fromVersion & toVersion & statement" | ||
return {result: false, | ||
message: msg}; | ||
} | ||
return {result: false, message:"Must provide a synchronization date"}; | ||
if(dbName.length > 0) { | ||
const r = await mSQLite.addUpgradeStatement( | ||
{database: dbName, upgrade: [upgrade]}); | ||
if(r) { | ||
if( typeof r.result != 'undefined') { | ||
return r; | ||
} | ||
} | ||
} else { | ||
return {result: false, | ||
message:"Must provide a database name"}; | ||
} | ||
}, []); | ||
return { openDB, createSyncTable, close, execute, executeSet, run, query, | ||
isDBExists, deleteDB, isJsonValid, importFromJson, exportToJson, | ||
setSyncDate, isAvailable: true }; | ||
return { openDB, createSyncTable, close, execute, executeSet, run, | ||
query, isDBExists, deleteDB, isJsonValid, importFromJson, | ||
exportToJson, setSyncDate, addUpgradeStatement, | ||
isAvailable: true }; | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
61774
1041