You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

sqlite-map

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlite-map - npm Package Compare versions

Comparing version

to
0.1.3

4

lib/factory/factory.d.ts

@@ -111,5 +111,5 @@ import { SuperArray } from "../array/array.js";

binary: {
encode(value: any): Uint8Array;
decode(value: Uint8Array): any;
encode(value: any): Uint8Array<ArrayBufferLike>;
decode(value: Uint8Array<ArrayBufferLike>): any;
};
};

@@ -51,3 +51,16 @@ import crypto from "crypto";

forEach(fn) {
for (const [key, value] of this) {
// We need to collect entries first to avoid database busy conflicts
// when the callback function modifies the map during iteration
const entries = [];
const stmt = database.prepare(`SELECT * FROM ${name}`);
try {
for (const row of stmt.iterate()) {
const typedRow = row;
entries.push([typedRow.key, serializer.decode(typedRow.value)]);
}
}
finally {
// Better-sqlite3 automatically finalizes iterators
}
for (const [key, value] of entries) {
fn(value, key, this);

@@ -70,25 +83,49 @@ }

},
*[Symbol.iterator]() {
const res = database.prepare(`SELECT * FROM ${name}`).all();
for (const row of res) {
yield [row.key, serializer.decode(row.value)];
[Symbol.iterator]: function* () {
const stmt = database.prepare(`SELECT * FROM ${name}`);
try {
for (const row of stmt.iterate()) {
const typedRow = row;
yield [typedRow.key, serializer.decode(typedRow.value)];
}
}
finally {
// Better-sqlite3 automatically finalizes iterators, but we can be explicit
}
},
keys: function* () {
const res = database.prepare(`SELECT key FROM ${name}`).all();
for (const row of res) {
yield row.key;
const stmt = database.prepare(`SELECT key FROM ${name}`);
try {
for (const row of stmt.iterate()) {
const typedRow = row;
yield typedRow.key;
}
}
finally {
// Better-sqlite3 automatically finalizes iterators
}
},
values: function* () {
const res = database.prepare(`SELECT value FROM ${name}`).all();
for (const row of res) {
yield serializer.decode(row.value);
const stmt = database.prepare(`SELECT value FROM ${name}`);
try {
for (const row of stmt.iterate()) {
const typedRow = row;
yield serializer.decode(typedRow.value);
}
}
finally {
// Better-sqlite3 automatically finalizes iterators
}
},
entries: function* () {
const res = database.prepare(`SELECT * FROM ${name}`).all();
for (const row of res) {
yield [row.key, serializer.decode(row.value)];
const stmt = database.prepare(`SELECT * FROM ${name}`);
try {
for (const row of stmt.iterate()) {
const typedRow = row;
yield [typedRow.key, serializer.decode(typedRow.value)];
}
}
finally {
// Better-sqlite3 automatically finalizes iterators
}
},

@@ -103,9 +140,11 @@ [Symbol.toStringTag]: "BetterSqlite3 Persistent Map",

var _a;
const rows = database.prepare(`SELECT * FROM ${name}`).all();
const stmt = database.prepare(`SELECT * FROM ${name}`);
const rows = stmt.all(); // We need all data anyway for this method
const res = [];
for (const row of rows) {
const value = serializer.decode(row.value);
const typedRow = row;
const value = serializer.decode(typedRow.value);
const relationValues = {};
for (const key of existingRelations) {
const columnValues = row[key];
const columnValues = typedRow[key];
if (!columnValues)

@@ -133,3 +172,3 @@ continue;

continue;
res.push({ key: row.key, value, relations: relationValues });
res.push({ key: typedRow.key, value, relations: relationValues });
}

@@ -136,0 +175,0 @@ return res;

{
"name": "sqlite-map",
"version": "0.1.2",
"version": "0.1.3",
"description": "Simple javascript persistent map and array datastructures based on better-sqlite3",

@@ -40,4 +40,9 @@ "license": "ISC",

"peerDependencies": {
"better-sqlite3": "^8.x.x"
}
"better-sqlite3": "^12.x.x"
},
"pnpm": {
"onlyBuiltDependencies": [
"better-sqlite3"
]
}
}