browser support!

This commit is contained in:
Ewout Stortenbeker 2019-12-06 15:08:56 +01:00
parent a478fb22a2
commit d2dcae8317
4 changed files with 8449 additions and 0 deletions

25
dist/browser.html vendored Normal file
View file

@ -0,0 +1,25 @@
<html>
<head>
<script src="browser.min.js"></script>
</head>
<body>
<script>
// Create AceBase using localStorage
const db = new AceBase('mydb', { temp: false }); // Set temp to true to use sessionStorage instead of localStorage
db.ready(() => {
console.log('Database ready to use');
return db.ref('browser').set({
test: 'AceBase runs in the browser!'
})
.then(ref => {
console.log(`"${ref.path}" was saved!`);
return ref.get();
})
.then(snap => {
console.log(`Got "${snap.ref.path}" value:`);
console.log(snap.val());
})
})
</script>
</body>
</html>

8389
dist/browser.js vendored Normal file

File diff suppressed because it is too large Load diff

1
dist/browser.min.js vendored Normal file

File diff suppressed because one or more lines are too long

34
src/browser.js Normal file
View file

@ -0,0 +1,34 @@
// To use AceBase in the browser with localStorage as the storage engine,
// npm run browserify, which will execute:
// browserify src/browser.js -o dist/browser.js -u src/btree.js -i ./src/data-index.js -u src/geohash.js -u src/node-cache.js -u src/promise-fs.js -u src/promise-timeout.js -i ./src/storage-acebase.js -i ./src/storage-mssql.js -i ./src/storage-sqlite.js --ignore buffer
// terser dist/browser.js -o dist/browser.min.js
const { DataReference, DataSnapshot, EventSubscription, PathReference, TypeMappings, TypeMappingOptions } = require('acebase-core');
const { AceBase, AceBaseLocalSettings } = require('./acebase-local');
const { LocalStorageSettings } = require('./storage-localstorage');
const acebase = {
AceBase,
AceBaseLocalSettings,
DataReference,
DataSnapshot,
EventSubscription,
PathReference,
TypeMappings,
TypeMappingOptions,
LocalStorageSettings
};
class BrowserAceBase extends acebase.AceBase {
constructor(name, settings) {
settings = settings || {};
settings.storage = new acebase.LocalStorageSettings();
if (settings.temp === true) {
settings.storage.session = true;
delete settings.temp;
}
super(name, settings);
}
}
window.AceBase = BrowserAceBase;
window.acebase = acebase;