Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • polycentric/leveldb-capacitor-plugin
1 result
Show changes
Commits on Source (3)
{
"name": "@polycentric/leveldb-capacitor-plugin",
"version": "0.0.1",
"version": "0.0.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@polycentric/leveldb-capacitor-plugin",
"version": "0.0.1",
"version": "0.0.5",
"license": "MIT",
"dependencies": {
"@borderless/base64": "^1.0.1",
"abstract-level": "^2.0.0",
"abstract-level": "^1.0.2",
"events": "^3.3.0"
},
"devDependencies": {
......@@ -1114,20 +1114,21 @@
"license": "ISC"
},
"node_modules/abstract-level": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-2.0.0.tgz",
"integrity": "sha512-8vjY8/cluwJhbYyE1JjPMTPslT8bpkFF/Oe24KiW3jUAwV9hleHilw3ipHPK5w2pyvOYDnmUSC7w1/aKLzgi/Q==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz",
"integrity": "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==",
"license": "MIT",
"dependencies": {
"buffer": "^6.0.3",
"catering": "^2.1.0",
"is-buffer": "^2.0.5",
"level-supports": "^6.0.0",
"level-supports": "^4.0.0",
"level-transcoder": "^1.0.1",
"maybe-combine-errors": "^1.0.0",
"module-error": "^1.0.1"
"module-error": "^1.0.1",
"queue-microtask": "^1.2.3"
},
"engines": {
"node": ">=16"
"node": ">=12"
}
},
"node_modules/acorn": {
......@@ -1474,6 +1475,15 @@
"node": ">=6"
}
},
"node_modules/catering": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
"integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
......@@ -3222,12 +3232,12 @@
}
},
"node_modules/level-supports": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-6.0.0.tgz",
"integrity": "sha512-UU226PsfiFWLRPmuqgB3eADtvZM8WYv+aCnAl93B/2Ca+vgn9+b7o2boA7yOY2ri7Kk5Wk4aHxl3eNimpYZnxw==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
"integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
"license": "MIT",
"engines": {
"node": ">=16"
"node": ">=12"
}
},
"node_modules/level-transcoder": {
......@@ -3294,15 +3304,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/maybe-combine-errors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/maybe-combine-errors/-/maybe-combine-errors-1.0.0.tgz",
"integrity": "sha512-eefp6IduNPT6fVdwPp+1NgD0PML1NU5P6j1Mj5nz1nidX8/sWY7119WL8vTAHgqfsY74TzW0w1XPgdYEKkGZ5A==",
"license": "MIT",
"engines": {
"node": ">=10"
}
},
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
......@@ -3695,7 +3696,6 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
"type": "github",
......
{
"name": "@polycentric/leveldb-capacitor-plugin",
"version": "0.0.1",
"version": "0.0.5",
"type": "module",
"description": "LevelDB plugin for Capacitor supporting iOS and Android",
"main": "dist/plugin.cjs.js",
......@@ -78,7 +78,7 @@
},
"dependencies": {
"@borderless/base64": "^1.0.1",
"abstract-level": "^2.0.0",
"abstract-level": "^1.0.2",
"events": "^3.3.0"
}
}
......@@ -11,6 +11,8 @@ import type { MobileLevelPluginT } from './definitions';
const MobileLevelPlugin = registerPlugin<MobileLevelPluginT>('MobileLevel', {});
export * from './definitions';
type Callback = (err?: Error | null, value?: any) => void;
class DummyIterator extends AbstractIterator<
MobileLevel,
Uint8Array,
......@@ -39,7 +41,7 @@ class DummyIterator extends AbstractIterator<
return;
}
async _all() {
_all(_options: never, callback: Callback) {
const { gt, gte, lt, lte, ...restOptions } = this.options;
const encodedOptions = {
......@@ -50,16 +52,21 @@ class DummyIterator extends AbstractIterator<
...restOptions,
};
const { results } = await MobileLevelPlugin.iterator({
MobileLevelPlugin.iterator({
dbName: this.db.name,
options: encodedOptions,
});
const decodedResults = results.map(
([key, value]): [Uint8Array, Uint8Array] => [decode(key), decode(value)],
);
return decodedResults;
})
.then(({ results }) => {
const decodedResults = results.map(
([key, value]): [Uint8Array, Uint8Array] => [
decode(key),
decode(value),
],
);
callback(null, decodedResults);
})
.catch(err => callback(err, null));
}
_seek() {
......@@ -89,70 +96,81 @@ export class MobileLevel extends AbstractLevel<
this.name = name;
}
async _open(): Promise<void> {
console.log('hi');
await MobileLevelPlugin.open({
_open(_options: never, callback: Callback) {
MobileLevelPlugin.open({
dbName: this.name,
});
console.log('hi');
})
.then(() => callback())
.catch(err => callback(err, null));
}
async foo() {
console.log('foo');
}
async _get(key: Uint8Array): Promise<Uint8Array | null> {
_get(key: Uint8Array, _options: never, callback: Callback) {
const encodedKey = encode(key);
const { value } = await MobileLevelPlugin.get({
MobileLevelPlugin.get({
dbName: this.name,
key: encodedKey,
});
if (value === null) return null;
return decode(value);
})
.then(({ value }) => {
if (value === null) {
callback(null, null);
} else {
callback(null, decode(value));
}
})
.catch(err => callback(err, null));
}
async _put(key: Uint8Array, value: Uint8Array): Promise<void> {
_put(key: Uint8Array, value: Uint8Array, _options: never, callback: Callback) {
const encodedKey = encode(key);
const encodedValue = encode(value);
await MobileLevelPlugin.put({
MobileLevelPlugin.put({
key: encodedKey,
value: encodedValue,
dbName: this.name,
});
})
.then(() => callback())
.catch(err => callback(err, null));
}
async _delete(key: Uint8Array): Promise<void> {
_del(key: Uint8Array, _options: never, callback: Callback) {
const encodedKey = encode(key);
await MobileLevelPlugin.delete({ key: encodedKey, dbName: this.name });
MobileLevelPlugin.delete({ key: encodedKey, dbName: this.name })
.then(() => callback())
.catch(err => callback(err, null));
}
async _close(): Promise<void> {
await MobileLevelPlugin.close({
_close(callback: Callback) {
MobileLevelPlugin.close({
dbName: this.name,
});
})
.then(() => callback())
.catch(err => callback(err, null));
}
async _batch(
_batch(
operations: {
type: 'put' | 'delete';
key: Uint8Array;
value?: Uint8Array;
}[],
): Promise<void> {
_options: never,
callback: Callback,
) {
const encodedOperations = operations.map(({ type, key, value }) => ({
type,
key: encode(key),
value: value ? encode(value) : undefined,
}));
await MobileLevelPlugin.batch({
MobileLevelPlugin.batch({
operations: encodedOperations,
dbName: this.name,
});
})
.then(() => callback())
.catch(err => callback(err, null));
}
_iterator(options: {
......@@ -166,7 +184,9 @@ export class MobileLevel extends AbstractLevel<
return new DummyIterator(this, this.name, options);
}
async _clear(): Promise<void> {
await MobileLevelPlugin.clear({ dbName: this.name });
_clear(_options: never, callback: Callback) {
MobileLevelPlugin.clear({ dbName: this.name })
.then(() => callback())
.catch(err => callback(err, null));
}
}