Skip to content

Commit

Permalink
updated require refs
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt-Esch committed Apr 4, 2014
1 parent 9acfda3 commit 91ad33f
Show file tree
Hide file tree
Showing 20 changed files with 130 additions and 126 deletions.
3 changes: 3 additions & 0 deletions create-element.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var createElement = require("./vdom/create-element")

module.exports = createElement
3 changes: 3 additions & 0 deletions diff.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var diff = require("./vtree/diff")

module.exports = diff
3 changes: 3 additions & 0 deletions h.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var h = require("./h/")

module.exports = h
24 changes: 12 additions & 12 deletions h/index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
var extend = require("extend")
var isArray = require("x-is-array")
var isString = require("x-is-string")

var isArray = require("./lib/is-array")
var isString = require("./lib/is-string")
var parseTag = require("./lib/parse-tag")
var isVirtualDOMNode = require("./lib/is-virtual-dom")
var isVirtualTextNode = require("./lib/is-virtual-text")
var VNode = require("../vtree/vnode.js")
var VText = require("../vtree/vtext.js")
var isVNode = require("../vtree/is-vnode")
var isVText = require("../vtree/is-vtext")
var isWidget = require("../vtree/is-widget")

var VirtualDOMNode = require("./virtual-dom-node.js")
var VirtualTextNode = require("./virtual-text-node.js")
var parseTag = require("./parse-tag")

module.exports = h

Expand Down Expand Up @@ -36,20 +37,19 @@ function h(tagName, properties, children) {
}
}

return new VirtualDOMNode(tag, props, childNodes)
return new VNode(tag, props, childNodes)
}

function addChild(c, childNodes) {
if (isString(c)) {
childNodes.push(new VirtualTextNode(c))
} else {
// For now, we push all objects regardless of type
childNodes.push(new VText(c))
} else if (isVNode(c) || isWidget(c)) {
childNodes.push(c)
}
}

function isChild(x) {
return isVirtualDOMNode(x) || isVirtualTextNode(x)
return isVNode(x) || isVText(x) || isWidget(x)
}

function isChildren(x) {
Expand Down
8 changes: 0 additions & 8 deletions lib/is-array.js

This file was deleted.

5 changes: 0 additions & 5 deletions lib/is-object.js

This file was deleted.

7 changes: 0 additions & 7 deletions lib/is-string.js

This file was deleted.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
"cuid": "^1.2.1",
"extend": "~1.2.1",
"global": "^3.0.0",
"semver": "~2.2.1"
"semver": "~2.2.1",
"x-is-array": "^0.1.0",
"x-is-object": "^0.1.0",
"x-is-string": "^0.1.0"
},
"devDependencies": {
"min-document": "^2.3.0",
Expand Down
3 changes: 3 additions & 0 deletions patch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
var patch = require("./vdom/patch")

module.exports = patch
24 changes: 16 additions & 8 deletions test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ var test = require("tape")
var h = require("../h")
var diff = require("../diff")
var patch = require("../patch")
var Node = require("../virtual-dom-node")
var render = require("../create-element")
var version = require("../version")
var Node = require("../vtree/vnode")
var render = require("../vdom/create-element")
var version = require("../vtree/version")


// VirtualDOMNode tests
// VirtualNode tests
test("Node is a function", function (assert) {
assert.equal(typeof Node, "function")
assert.end()
})

test("Node type and version are set", function (assert) {
assert.equal(Node.prototype.type, "VirtualDOMNode")
assert.equal(Node.prototype.type, "VirtualNode")
assert.deepEqual(Node.prototype.version, version.split("."))
assert.end()
})
Expand Down Expand Up @@ -123,7 +123,7 @@ function assertNode(assert, node, tagName, properties, children) {
properties = properties || {}
children = children || []

assert.true(node instanceof Node, "node is a VirtualDOMNode")
assert.true(node instanceof Node, "node is a VirtualNode")
assert.equal(node.tagName, tagName, "tag names are equal")
assert.deepEqual(node.properties, properties, "propeties are equal")
assert.equal(node.children.length, children.length, "child count equal")
Expand Down Expand Up @@ -299,9 +299,11 @@ test("injected warning is used", function (assert) {
style: {
cssText: "color: red;"
}
}, [
})

vdom.children = [
badObject, null
])
]

var i = 0
function warn(warning, node) {
Expand Down Expand Up @@ -504,6 +506,9 @@ test("Widget is initialised on render", function (assert) {
init: function () {
initCount++
return testNode
},
update: function () {
initCount = 1000000
}
}

Expand All @@ -521,6 +526,9 @@ test("Nested widget is initialised on render", function (assert) {
init: function () {
initCount++
return testNode
},
update: function () {
initCount = 1000000
}
}

Expand Down
34 changes: 16 additions & 18 deletions vdom/create-element.js
Original file line number Diff line number Diff line change
@@ -1,35 +1,33 @@
var document = require("global/document")
var isObject = require("x-is-object")

var isVirtualDomNode = require("./lib/is-virtual-dom")
var isVirtualTextNode = require("./lib/is-virtual-text")
var isString = require("./lib/is-string")
var isObject = require("./lib/is-object")
var isVNode = require("../vtree/is-vnode")
var isVText = require("../vtree/is-vtext")
var isWidget = require("../vtree/is-widget")

module.exports = render
module.exports = createElement

function render(virtualDom, opts) {
function createElement(vnode, opts) {
var doc = opts ? opts.document || document : document
var warn = opts ? opts.warn : null

if (virtualDom && typeof virtualDom.init === "function") {
return virtualDom.init()
} else if (isVirtualTextNode(virtualDom)) {
return doc.createTextNode(virtualDom.text)
} else if (isString(virtualDom)) {
return doc.createTextNode(virtualDom)
} else if (!isVirtualDomNode(virtualDom)) {
if (isWidget(vnode)) {
return vnode.init()
} else if (isVText(vnode)) {
return doc.createTextNode(vnode.text)
} else if (!isVNode(vnode)) {
if (warn) {
warn("Item is not a valid virtual dom node", virtualDom)
warn("Item is not a valid virtual dom node", vnode)
}
return null
}

var node = doc.createElement(virtualDom.tagName)
applyProperties(node, virtualDom.properties)
var children = virtualDom.children
var node = doc.createElement(vnode.tagName)
applyProperties(node, vnode.properties)
var children = vnode.children

for (var i = 0; i < children.length; i++) {
var childNode = render(children[i], opts)
var childNode = createElement(children[i], opts)
if (childNode) {
node.appendChild(childNode)
}
Expand Down
29 changes: 10 additions & 19 deletions vdom/patch-op.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,17 @@
var render = require("../create-element")
var isWidget = require("./is-widget")
var isString = require("./is-string")
var isObject = require("./is-object")
var isVNode = require("./is-virtual-dom")
var updateWidget = require("./update-widget")

module.exports = createPatch
var isString = require("x-is-string")
var isObject = require("x-is-object")

function createPatch(vNode, patch) {
return new PatchOp(vNode, patch)
}
var isWidget = require("../vtree/is-widget")
var isVNode = require("../vtree/is-vnode")

function PatchOp(vNode, patch) {
this.vNode = vNode
this.patch = patch
}
var render = require("./create-element")
var updateWidget = require("./update-widget")

PatchOp.prototype.apply = applyUpdate
module.exports = applyPatch

function applyUpdate(domNode, renderOptions) {
var vNode = this.vNode
var patch = this.patch
function applyPatch(vpatch, domNode, renderOptions) {
var vNode = vpatch.vNode
var patch = vpatch.patch

if (patch == null) {
return removeNode(domNode, vNode)
Expand Down
9 changes: 5 additions & 4 deletions vdom/patch.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
var document = require("global/document")
var isArray = require("x-is-array")

var domIndex = require("./lib/dom-index")
var isArray = require("./lib/is-array")
var domIndex = require("./dom-index")
var patchOp = require("./patch-op")

module.exports = patch

Expand Down Expand Up @@ -42,14 +43,14 @@ function applyPatch(rootNode, domNode, patchList, renderOptions) {

if (isArray(patchList)) {
for (var i = 0; i < patchList.length; i++) {
newNode = patchList[i].apply(domNode, renderOptions)
newNode = patchOp(patchList[i], domNode, renderOptions)

if (domNode === rootNode) {
rootNode = newNode
}
}
} else {
newNode = patchList.apply(domNode, renderOptions)
newNode = patchOp(patchList, domNode, renderOptions)

if (domNode === rootNode) {
rootNode = newNode
Expand Down
4 changes: 2 additions & 2 deletions vdom/update-widget.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var isWidget = require("./is-widget")
var isWidget = require("../vtree/is-widget")

module.exports = updateWidget

Expand All @@ -12,4 +12,4 @@ function updateWidget(a, b) {
}

return false
}
}
Loading

0 comments on commit 91ad33f

Please sign in to comment.