@alt-javascript/jsnosqlc-memory
v1.1.1
Published
JSNOSLQC in-memory driver — for testing and offline development
Maintainers
Readme
@alt-javascript/jsnosqlc-memory
In-memory JSNOSLQC driver. Zero external dependencies. No server required. Ideal for unit tests and local development.
Part of the @alt-javascript/jsnosqlc monorepo.
Install
npm install @alt-javascript/jsnosqlc-core @alt-javascript/jsnosqlc-memoryUsage
import { DriverManager, Filter } from '@alt-javascript/jsnosqlc-core';
import '@alt-javascript/jsnosqlc-memory'; // self-registers with DriverManager
const client = await DriverManager.getClient('jsnosqlc:memory:');
const users = client.getCollection('users');
// Store and retrieve by key
await users.store('u1', { name: 'Alice', age: 30, tags: ['admin'] });
const alice = await users.get('u1'); // { name: 'Alice', age: 30, tags: ['admin'] }
// Insert with auto-assigned id
const id = await users.insert({ name: 'Bob', age: 25 });
const bob = await users.get(id);
// Patch specific fields
await users.update('u1', { age: 31 }); // name and tags preserved
// Query with filter
const filter = Filter.where('age').gt(25).and('tags').contains('admin').build();
const cursor = await users.find(filter);
const admins = cursor.getDocuments(); // [{ name: 'Alice', age: 31, tags: ['admin'] }]
// Async iteration
for await (const user of await users.find(Filter.where('age').gte(18).build())) {
console.log(user.name);
}
await client.close();URL
jsnosqlc:memory:Each call to DriverManager.getClient('jsnosqlc:memory:') creates an independent in-memory store. Collections are isolated per client instance.
ClientDataSource
import { ClientDataSource } from '@alt-javascript/jsnosqlc-core';
import '@alt-javascript/jsnosqlc-memory';
const ds = new ClientDataSource({ url: 'jsnosqlc:memory:' });
const client = await ds.getClient();When to Use
- Unit tests — isolate business logic from external services with no setup
- Local development — stand up the application without a running database
- Demos and prototypes — no infrastructure required
- Driver development — use as reference for implementing a new JSNOSLQC driver
Supported Operations
All six Collection operations are supported: get, store, delete, insert, update, find.
All ten Filter operators are supported: eq, ne, gt, gte, lt, lte, contains, in, nin, exists.
Compound operators: Filter.or() and .not() are supported.
License
MIT
