This commit is contained in:
haad 2016-10-03 17:25:51 +02:00
parent f035d30398
commit 61af69678f
11 changed files with 230 additions and 42838 deletions

2
.gitignore vendored
View File

@ -7,3 +7,5 @@ dump.rdb
Vagrantfile
orbit-db-cache.json
examples/browser/bundle.js
dist/*.map
dist/orbitdb.js

42646
dist/orbitdb.js vendored

File diff suppressed because it is too large Load Diff

68
dist/orbitdb.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -6,10 +6,8 @@
<div id="result">Loading...</div>
<script type="text/javascript" src="../../dist/orbitdb.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../node_modules/logplease/dist/logplease.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../node_modules/ipfs/dist/index.min.js" charset="utf-8"></script>
<script type="text/javascript">
const logger = Logger.create("orbit-db example", { color: Logger.Colors.Green, showTimestamp: false, showLevel: false })
const network = '178.62.241.75:3333'
const username = 'user1'
const password = ''
@ -26,7 +24,7 @@
const startTime = new Date().getTime()
db.put(key, value + " " + count).then((res) => {
const endTime = new Date().getTime()
logger.debug(`db.put (#${count}) took ${(endTime - startTime)} ms\n`)
console.log(`db.put (#${count}) took ${(endTime - startTime)} ms\n`)
count ++
const result = db.get(key)
@ -38,12 +36,12 @@
---------------------------------------------------`
elm.innerHTML = output.split("\n").join("<br>")
logger.debug(output)
}).catch((e) => logger.error(e))
console.log(output)
}).catch((e) => console.error(e))
};
setInterval(query, 1000)
}).catch((e) => logger.error(e))
}).catch((e) => logger.error(e))
}).catch((e) => console.error(e))
}).catch((e) => console.error(e))
</script>
</body>
</html>

View File

@ -1,45 +0,0 @@
'use strict';
const IPFS = require('exports?Ipfs!ipfs/dist/index.js')
const Logger = require('logplease')
const logger = Logger.create("orbit-db example", { color: Logger.Colors.Green, showTimestamp: false, showLevel: false })
const OrbitDB = require('../../src/OrbitDB')
const network = '178.62.241.75:3333'
const username = 'user1'
const password = ''
const channel = 'browsertest1'
const key = 'greeting'
const value = 'Hello world'
try {
const elm = document.getElementById("result")
const ipfs = new IPFS()
OrbitDB.connect(network, username, password, ipfs).then((orbit) => {
orbit.kvstore(channel).then((db) => {
let count = 1
const query = () => {
const startTime = new Date().getTime()
db.put(key, value + " " + count).then((res) => {
const endTime = new Date().getTime()
logger.debug(`db.put (#${count}) took ${(endTime - startTime)} ms\n`)
count ++
const result = db.get(key)
const output = `
---------------------------------------------------
Key | Value
---------------------------------------------------
${key} | ${result}
---------------------------------------------------`
elm.innerHTML = output.split("\n").join("<br>")
logger.debug(output)
}).catch((e) => logger.error(e.stack))
}
setInterval(query, 1000)
})
})
} catch(e) {
logger.error(e.stack)
}

70
examples/browser/index.js Normal file
View File

@ -0,0 +1,70 @@
'use strict'
const IpfsApi = require('exports?IpfsApi!ipfs-api/dist/index.js')
const OrbitDB = require('../../src/OrbitDB')
const username = 'user1'
const channel = 'browsertest1'
const key = 'greeting'
try {
const elm = document.getElementById("result")
const ipfs = IpfsApi('localhost', '5001')
const orbit = new OrbitDB(ipfs, username)
const db = orbit.kvstore(channel)
const log = orbit.eventlog(channel + ".log")
const counter = orbit.counter(channel + ".count")
const creatures = ['👻', '🤖', '🐬', '🐞', '🐈']
let count = 1
const query = () => {
const startTime = new Date().getTime()
const idx = Math.floor(Math.random() * creatures.length)
// Set a key-value pair
db.put(key, "db.put #" + count + " - GrEEtinGs to " + creatures[idx])
.then((res) => {
const endTime = new Date().getTime()
console.log(`db.put (#${count}) took ${(endTime - startTime)} ms\n`)
count ++
})
.then(() => counter.inc()) // Increase the counter by one
.then(() => log.add(creatures[idx])) // Add an event to 'latest visitors' log
.then(() => {
const result = db.get(key)
const latest = log.iterator({ limit: 5 }).collect()
const count = counter.value()
const output =
`
---------------------------------------------------
Key | Value
---------------------------------------------------
${key} | ${result}
---------------------------------------------------
---------------------------------------------------
Latest Visitors
---------------------------------------------------
${latest.reverse().map((e) => e.payload.value).join('\n')}
---------------------------------------------------
Visitor Count: ${count}
---------------------------------------------------
`
elm.innerHTML = output.split("\n").join("<br>")
console.log(output)
})
.catch((e) => {
elm.innerHTML = "<i>" + e.message + "</i><br><br>" + "Make sure you have an IPFS daemon running at localhost:5001"
console.error(e.stack)
})
}
setInterval(query, 1000)
} catch(e) {
console.error(e.stack)
elm.innerHTML = e.message
}

View File

@ -14,10 +14,10 @@
"main": "src/OrbitDB.js",
"dependencies": {
"logplease": "^1.2.7",
"orbit-db-counterstore": "0.1.1",
"orbit-db-eventstore": "0.1.1",
"orbit-db-feedstore": "0.1.1",
"orbit-db-kvstore": "0.1.1",
"orbit-db-counterstore": "0.1.2",
"orbit-db-eventstore": "0.1.4",
"orbit-db-feedstore": "0.1.2",
"orbit-db-kvstore": "0.1.2",
"orbit-db-pubsub": "0.0.3"
},
"devDependencies": {
@ -25,16 +25,17 @@
"babel-core": "^6.11.4",
"babel-loader": "^6.2.4",
"babel-plugin-transform-runtime": "^6.8.0",
"babel-polyfill": "^6.16.0",
"babel-preset-es2015": "^6.6.0",
"exports-loader": "^0.6.3",
"ipfs": "^0.15.0",
"ipfs-api": "https://github.com/haadcode/js-ipfs-api.git",
"go-ipfs-dep": "https://github.com/haadcode/go-ipfs-dep.git",
"html5-fs": "https://github.com/haadcode/html5-fs.git",
"ipfs": "^0.16.0",
"ipfs-api": "https://github.com/haadcode/js-ipfs-api.git",
"ipfsd-ctl": "https://github.com/haadcode/js-ipfsd-ctl.git",
"json-loader": "^0.5.4",
"lodash": "^4.3.0",
"mocha": "^2.4.5",
"orbit-server": "^0.2.3",
"stream-http": "^2.2.1",
"webpack": "^2.1.0-beta.7"
},

View File

@ -9,7 +9,6 @@ const await = require('asyncawait/await');
const ipfsd = require('ipfsd-ctl');
// const IPFS = require('ipfs')
const OrbitDB = require('../src/OrbitDB');
const OrbitServer = require('orbit-server/src/server');
// Mute logging
require('logplease').setLogLevel('ERROR');
@ -63,7 +62,7 @@ const IpfsApis = [
IpfsApis.forEach(function(ipfsApi) {
describe('Orbit Client with ' + ipfsApi.name, function() {
this.timeout(40000);
this.timeout(20000);
let client, client2, db;
let channel = 'abcdefghijklmn';
@ -407,18 +406,6 @@ IpfsApis.forEach(function(ipfsApi) {
}));
});
describe('Options: reverse', function() {
it('returns all items reversed', async((done) => {
const messages = db.iterator({ limit: -1, reverse: true })
.collect()
.map((e) => e.hash);
assert.equal(messages.length, items.length);
assert.equal(messages[0], items[0]);
done();
}));
});
describe('Option: ranges', function() {
describe('gt & gte', function() {
it('returns 1 item when gte is the head', async((done) => {

View File

@ -1,5 +1,5 @@
const webpack = require('webpack');
const path = require('path');
const webpack = require('webpack')
const path = require('path')
module.exports = {
entry: './src/OrbitDB.js',
@ -8,21 +8,18 @@ module.exports = {
library: 'OrbitDB',
filename: './dist/orbitdb.js'
},
devtool: 'sourcemap',
node: {
console: false,
process: 'mock',
Buffer: 'buffer'
},
resolveLoader: {
root: path.join(__dirname, 'node_modules')
Buffer: true
},
resolve: {
modulesDirectories: [
modules: [
path.join(__dirname, 'node_modules')
],
alias: {
'orbit-db-stre': require.resolve('./node_modules/orbit-db-store'),
fs: require.resolve('./node_modules/logplease/src/fs-mock'),
'fs': path.join(__dirname + '/node_modules', 'html5-fs'),
http: 'stream-http',
https: 'https-browserify',
Buffer: 'buffer'
@ -30,32 +27,33 @@ module.exports = {
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom|ipfs-.+|orbit-db.+|logplease|crdts|promisify-es6)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}]
]
},
externals: {
net: '{}',
tls: '{}',
'require-dir': '{}'
}
};
}

View File

@ -1,5 +1,5 @@
const webpack = require('webpack');
const path = require('path');
const webpack = require('webpack')
const path = require('path')
module.exports = {
entry: './src/OrbitDB.js',
@ -8,10 +8,11 @@ module.exports = {
library: 'OrbitDB',
filename: './dist/orbitdb.min.js'
},
devtool: 'sourcemap',
node: {
console: false,
process: 'mock',
Buffer: 'buffer'
Buffer: true
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
@ -20,43 +21,41 @@ module.exports = {
})
],
resolveLoader: {
root: path.join(__dirname, 'node_modules')
modules: [path.join(__dirname, 'node_modules')]
},
resolve: {
modulesDirectories: [
modules: [
path.join(__dirname, 'node_modules')
],
alias: {
fs: require.resolve('./node_modules/logplease/src/fs-mock'),
http: 'stream-http',
https: 'https-browserify',
Buffer: 'buffer'
'node_modules': path.join(__dirname + '/node_modules'),
'fs': path.join(__dirname + '/node_modules', 'html5-fs'),
}
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom|ipfs-.+|orbit-db.+|logplease|crdts|promisify-es6)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom|ipfs-.+|orbit-db-.+|logplease|crdts)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}
]
},
externals: {
@ -64,4 +63,4 @@ module.exports = {
tls: '{}',
'require-dir': '{}'
}
};
}

View File

@ -1,60 +1,56 @@
const webpack = require('webpack');
const path = require('path');
const webpack = require('webpack')
const path = require('path')
module.exports = {
entry: './examples/browser/browser.js',
entry: [
'./examples/browser/index.js',
],
output: {
filename: './examples/browser/bundle.js'
},
node: {
console: false,
process: 'mock',
Buffer: 'buffer'
Buffer: true
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
mangle: false,
compress: { warnings: false }
})
// new webpack.optimize.UglifyJsPlugin({
// mangle: false,
// compress: { warnings: false }
// })
],
resolveLoader: {
root: path.join(__dirname, 'node_modules')
},
resolve: {
modulesDirectories: [
modules: [
path.join(__dirname, 'node_modules')
],
alias: {
fs: require.resolve('./node_modules/logplease/src/fs-mock'),
http: 'stream-http',
https: 'https-browserify',
Buffer: 'buffer'
'fs': path.join(__dirname + '/node_modules', 'html5-fs'),
}
},
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom|log|orbit.+|logplease|crdts|promisify-es|whatwg-fetch|node-fetch|isomorphic-fetch|db\.js)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}
},
{
test: /\.js$/,
include: /node_modules\/(hoek|qs|wreck|boom|ipfs-.+|orbit-db-.+|logplease|crdts)/,
loader: 'babel',
query: {
presets: require.resolve('babel-preset-es2015'),
plugins: require.resolve('babel-plugin-transform-runtime')
}
},
{
test: /\.json$/,
loader: 'json'
}
]
},
externals: {
@ -62,4 +58,4 @@ module.exports = {
tls: '{}',
'require-dir': '{}'
}
};
}