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