Plugin loading system for Quereus. This package provides dynamic module loading capabilities for extending Quereus with custom virtual tables, functions, collations, and types.
Note: This package uses dynamic import() which is not compatible with React Native. For React Native environments, use static imports and manual plugin registration instead.
npm install @quereus/plugin-loader
# or
yarn add @quereus/plugin-loaderimport { Database } from '@quereus/quereus';
import { loadPlugin, dynamicLoadModule } from '@quereus/plugin-loader';
const db = new Database();
// Load from npm package (Node.js)
await loadPlugin('npm:@acme/quereus-plugin-foo@^1', db, { api_key: '...' });
// Load from URL (Node.js or Browser)
await dynamicLoadModule('https://example.com/plugin.js', db, { timeout: 10000 });
// Browser with CDN (opt-in)
await loadPlugin('npm:@acme/quereus-plugin-foo@^1', db, {}, { allowCdn: true });This package is not compatible with React Native due to its use of dynamic import(). For React Native apps:
- Exclude this package from your dependencies
- Use static imports for plugins
- Manually register plugins with the database
Example for React Native:
import { Database } from '@quereus/quereus';
import myPlugin from './plugins/my-plugin';
const db = new Database();
// Manually register the plugin
const registrations = await myPlugin(db, { /* config */ });
// Register vtables
if (registrations.vtables) {
for (const vtable of registrations.vtables) {
db.registerModule(vtable.name, vtable.module, vtable.auxData);
}
}
// Register functions, collations, types similarly...See the Plugin System Documentation for complete details.
MIT