UNPKG

evelodb

Version:

An awesome local database management system with nodejs. Made by Evelocore. With B-tree Operations.

161 lines (144 loc) โ€ข 4.05 kB
// This is a test file for the EveloDB module. const eveloDB = require('./evelodb.js'); let db // Initialize DB try { db = new eveloDB({ extension: 'db', noRepeat: true, encode: 'json', autoPrimaryKey: 'key' // auto incrementing key // Start unencrypted to test conversion }); } catch (err) { console.error('Init Error:', err.message); process.exit(1); } // ===== TEST FLOW ===== const testUser = { name: 'John Doe', age: 30 }; const query = { age: 30 }; const new_query = { age: 40 }; const search_query = { name: 'Joh' }; let createdId; // Create Data console.log('\nโœ… Create Data'); try { const res = db.create('users', testUser); createdId = res.__id; console.log(`Create Result:`, res); } catch (err) { console.error('Create Error:', err.message); } // Find Data console.log('\n๐Ÿ” Find Before Conversion'); try { const res = db.find('users', query).all() console.log(`Find Result:`, res); } catch (err) { console.error('Find Error:', err.message); } // Search Data console.log('\n๐Ÿ” Search by a piece of value'); try { const res = db.search('users', search_query).all() console.log(`Find Result:`, res); } catch (err) { console.error('Find Error:', err.message); } // Convert to encrypted format console.log('\n๐Ÿ” Convert to Encrypted Format'); try { const res = db.changeConfig({ from: {}, to: { encryption: 'aes-128-cbc', encryptionKey: '0123456789abcdef0123456789abcdef' } }); console.log('Conversion Result:', res); } catch (err) { console.error('Conversion Error:', err.message); } // Initialize with new config try { db = new eveloDB({ directory: './evelodatabase', extension: 'db', noRepeat: true, encryption: 'aes-128-cbc', encryptionKey: '0123456789abcdef0123456789abcdef' }); } catch (err) { console.error('Re-init Error:', err.message); } // Find Data Again console.log('\n๐Ÿ” Try Reading Encrypted With New DB Config'); try { const res = db.find('users', query).all() console.log(`Find Result:`, res); } catch (err) { console.error('Find Error:', err.message); } // Edit Data console.log('\n๐Ÿ” Editing data'); try { const res = db.edit('users', query, new_query); console.log(`Editing Result:`, res); } catch (err) { console.error('Edit Error:', err.message); } // Find Data Again console.log('\n๐Ÿ” Find old object again after edit'); try { const res = db.find('users', query).all() console.log(`Find Result:`, res); } catch (err) { console.error('Find Error:', err.message); } // Find Data Again console.log('\n๐Ÿ” Find new object again after edit'); try { const res = db.find('users', new_query).all() console.log(`Find Result:`, res); } catch (err) { console.error('Find Error:', err.message); } // Convert config back to plain JSON console.log('\n๐Ÿ”“ Convert Back to Plain JSON'); try { const res = db.changeConfig({ from: { encryption: 'aes-128-cbc', encryptionKey: '0123456789abcdef0123456789abcdef' }, to: {} }); console.log('Conversion Result:', res); } catch (err) { console.error('Conversion Error:', err.message); } // Initialize with new config try { db = new eveloDB({ extension: 'db', noRepeat: true }); } catch (err) { console.error('Re-init Error:', err.message); } // Delete Data console.log('\n๐Ÿงน Clean Up'); try { const res = db.delete('users', new_query); console.log(`Delete Result:`, res); } catch (err) { console.error('Delete Error:', err.message); } // Reset collection console.log('\n๐Ÿงน Drop Collection') try { const res = db.drop('users'); console.log(`Drop Result:`, res); } catch (err) { console.error('Drop Error:', err.message); }