Compare commits

...

2 Commits

Author SHA1 Message Date
Kevin Jahns
b8dd7d1862 Deploy 12.0.3 2016-10-07 21:00:42 +02:00
Kevin Jahns
9e9f238b12 Deploy 12.0.2 2016-10-05 00:59:56 +02:00
7 changed files with 54 additions and 18 deletions

View File

@@ -38,3 +38,15 @@ Y({
y.share.richtext.bind(window.quill) y.share.richtext.bind(window.quill)
}) })
Y({
db: {
name: 'indexeddb'
},
connector: {
name: 'websockets-client',
room: 'test42'
},
share: {
state : 'Map'
}
}).then((y) => { window.y = y })

View File

@@ -71,6 +71,19 @@ require('y-text')(Y)
// do the same for all modules you want to use // do the same for all modules you want to use
``` ```
### ES6 Syntax
```
import Y from 'yjs'
import yArray from 'y-array'
import yWebsocketsClient from 'y-webrtc'
import yMemory from 'y-memory'
import yArray from 'y-array'
import yMap from 'y-map'
import yText from 'y-text'
// ..
Y.extend(yArray, yWebsocketsClient, yMemory, yArray, yMap, yText /*, .. */)
```
# Text editing example # Text editing example
Install dependencies Install dependencies
``` ```
@@ -242,7 +255,7 @@ This is a complete rewrite of the 0.5 version of Yjs. Since Yjs 0.6.0 it is poss
I created this framework during my bachelor thesis at the chair of computer science 5 [(i5)](http://dbis.rwth-aachen.de/cms), RWTH University. Since December 2014 I'm working on Yjs as a part of my student worker job at the i5. I created this framework during my bachelor thesis at the chair of computer science 5 [(i5)](http://dbis.rwth-aachen.de/cms), RWTH University. Since December 2014 I'm working on Yjs as a part of my student worker job at the i5.
## License ## License
Yjs is licensed under the [MIT License](./LICENSE.txt). Yjs is licensed under the [MIT License](./LICENSE).
<yjs@dbis.rwth-aachen.de> <yjs@dbis.rwth-aachen.de>

View File

@@ -1,6 +1,6 @@
{ {
"name": "yjs", "name": "yjs",
"version": "12.0.1", "version": "12.0.3",
"homepage": "y-js.org", "homepage": "y-js.org",
"authors": [ "authors": [
"Kevin Jahns <kevin.jahns@rwth-aachen.de>" "Kevin Jahns <kevin.jahns@rwth-aachen.de>"

35
y.es6
View File

@@ -2273,7 +2273,7 @@ module.exports = function (Y/* :any */) {
} }
if (this.store.forwardAppliedOperations) { if (this.store.forwardAppliedOperations) {
var ops = [] var ops = []
ops.push({struct: 'Delete', target: [d[0], d[1]], length: del[2]}) ops.push({struct: 'Delete', target: [del[0], del[1]], length: del[2]})
this.store.y.connector.broadcastOps(ops) this.store.y.connector.broadcastOps(ops)
} }
} }
@@ -3416,19 +3416,31 @@ module.exports = Y
Y.requiringModules = requiringModules Y.requiringModules = requiringModules
Y.extend = function (name, value) { Y.extend = function (name, value) {
if (value instanceof Y.utils.CustomTypeDefinition) { if (arguments.length === 2 && typeof name === 'string') {
Y[name] = value.parseArguments if (value instanceof Y.utils.CustomTypeDefinition) {
Y[name] = value.parseArguments
} else {
Y[name] = value
}
if (requiringModules[name] != null) {
requiringModules[name].resolve()
delete requiringModules[name]
}
} else { } else {
Y[name] = value for (var i = 0; i < arguments.length; i++) {
} var f = arguments[i]
if (requiringModules[name] != null) { if (typeof f === 'function') {
requiringModules[name].resolve() f(Y)
delete requiringModules[name] } else {
throw new Error('Expected function!')
}
}
} }
} }
Y.requestModules = requestModules Y.requestModules = requestModules
function requestModules (modules) { function requestModules (modules, sourceDir) {
sourceDir = sourceDir || '/bower_components'
// determine if this module was compiled for es5 or es6 (y.js vs. y.es6) // determine if this module was compiled for es5 or es6 (y.js vs. y.es6)
// if Insert.execute is a Function, then it isnt a generator.. // if Insert.execute is a Function, then it isnt a generator..
// then load the es5(.js) files.. // then load the es5(.js) files..
@@ -3442,7 +3454,7 @@ function requestModules (modules) {
// module does not exist // module does not exist
if (typeof window !== 'undefined' && window.Y !== 'undefined') { if (typeof window !== 'undefined' && window.Y !== 'undefined') {
var imported = document.createElement('script') var imported = document.createElement('script')
imported.src = Y.sourceDir + '/' + modulename + '/' + modulename + extention imported.src = sourceDir + '/' + modulename + '/' + modulename + extention
document.head.appendChild(imported) document.head.appendChild(imported)
let requireModule = {} let requireModule = {}
@@ -3498,10 +3510,9 @@ function Y (opts/* :YOptions */) /* :Promise<YConfig> */ {
for (var name in opts.share) { for (var name in opts.share) {
modules.push(opts.share[name]) modules.push(opts.share[name])
} }
Y.sourceDir = opts.sourceDir
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
setTimeout(function () { setTimeout(function () {
Y.requestModules(modules).then(function () { Y.requestModules(modules, opts.sourceDir).then(function () {
if (opts == null) reject('An options object is expected! ') if (opts == null) reject('An options object is expected! ')
else if (opts.connector == null) reject('You must specify a connector! (missing connector property)') else if (opts.connector == null) reject('You must specify a connector! (missing connector property)')
else if (opts.connector.name == null) reject('You must specify connector name! (missing connector.name property)') else if (opts.connector.name == null) reject('You must specify connector name! (missing connector.name property)')

File diff suppressed because one or more lines are too long

4
y.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long