implemented es6 import utility function (Y.extend(module) === module(Y))

This commit is contained in:
Kevin Jahns 2016-10-07 21:00:17 +02:00
parent f93d7b1e70
commit 08bcdfb008
2 changed files with 31 additions and 7 deletions

View File

@ -71,6 +71,19 @@ require('y-text')(Y)
// 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
Install dependencies
```

View File

@ -14,14 +14,25 @@ module.exports = Y
Y.requiringModules = requiringModules
Y.extend = function (name, value) {
if (value instanceof Y.utils.CustomTypeDefinition) {
Y[name] = value.parseArguments
if (arguments.length === 2 && typeof name === 'string') {
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 {
Y[name] = value
}
if (requiringModules[name] != null) {
requiringModules[name].resolve()
delete requiringModules[name]
for (var i = 0; i < arguments.length; i++) {
var f = arguments[i]
if (typeof f === 'function') {
f(Y)
} else {
throw new Error('Expected function!')
}
}
}
}