@capgo/capacitor-data-storage-sqlite
Version:
SQLite Storage of key/value strings pair
76 lines • 2.22 kB
JavaScript
/**
* IsJsonSQLite
* @param obj
*/
export const isJsonStore = (obj) => {
const keyFirstLevel = ["database", "encrypted", "tables"];
if (obj == null ||
(Object.keys(obj).length === 0 && obj.constructor === Object))
return false;
for (const key of Object.keys(obj)) {
if (keyFirstLevel.indexOf(key) === -1)
return false;
if (key === "database" && typeof obj[key] != "string")
return false;
if (key === "encrypted" && typeof obj[key] != "boolean")
return false;
if (key === "tables" && typeof obj[key] != "object")
return false;
if (key === "tables") {
for (const oKey of obj[key]) {
const retTable = isTable(oKey);
if (!retTable)
return false;
}
}
}
return true;
};
/**
* IsTable
* @param obj
*/
export const isTable = (obj) => {
const keyTableLevel = ["name", "values"];
if (obj == null ||
(Object.keys(obj).length === 0 && obj.constructor === Object)) {
return false;
}
for (const key of Object.keys(obj)) {
if (keyTableLevel.indexOf(key) === -1)
return false;
if (key === "name" && typeof obj[key] != "string")
return false;
if (key === "values" && typeof obj[key] != "object")
return false;
if (key === "values") {
for (const oKey of obj[key]) {
const retValue = isValue(oKey);
if (!retValue)
return false;
}
}
}
return true;
};
/**
* IsValue
* @param obj
*/
export const isValue = (obj) => {
const keyTableLevel = ["key", "value"];
if (obj == null ||
(Object.keys(obj).length === 0 && obj.constructor === Object)) {
return false;
}
for (const key of Object.keys(obj)) {
if (keyTableLevel.indexOf(key) === -1)
return false;
if (key === "key" && typeof obj[key] != "string")
return false;
if (key === "value" && typeof obj[key] != "string")
return false;
}
return true;
};
//# sourceMappingURL=json-utils.js.map