UNPKG

nodulator

Version:

Complete NodeJS Framework for Restfull APIs

473 lines (311 loc) 15.3 kB
<!DOCTYPE html> <html> <head> <title>View.ls</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <ul id="jump_to"> <li> <a class="large" href="javascript:void(0);">Jump To &hellip;</a> <a class="small" href="javascript:void(0);">+</a> <div id="jump_wrapper"> <div id="jump_page_wrapper"> <div id="jump_page"> <a class="source" href="Nodulator.html"> Nodulator.ls </a> <a class="source" href="ClientDB.html"> ClientDB.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="Resource.html"> Resource.ls </a> <a class="source" href="Bus.html"> Bus.ls </a> <a class="source" href="Cache.html"> Cache.ls </a> <a class="source" href="ChangeWatcher.html"> ChangeWatcher.ls </a> <a class="source" href="Debug.html"> Debug.ls </a> <a class="source" href="Wrappers.html"> Wrappers.ls </a> <a class="source" href="Nodulator.html"> Nodulator.ls </a> <a class="source" href="Resource.html"> Resource.ls </a> <a class="source" href="Schema.html"> Schema.ls </a> <a class="source" href="NModule.html"> NModule.ls </a> <a class="source" href="AccountResource.html"> AccountResource.ls </a> <a class="source" href="User.html"> User.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="Nodulator-Angular.html"> Nodulator-Angular.ls </a> <a class="source" href="TaskDirective.html"> TaskDirective.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="TaskService.html"> TaskService.ls </a> <a class="source" href="main.html"> main.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="Task.html"> Task.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="DOM.html"> DOM.ls </a> <a class="source" href="View.html"> View.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="Nodulator.html"> Nodulator.ls </a> <a class="source" href="Mongo.html"> Mongo.ls </a> <a class="source" href="Mysql.html"> Mysql.ls </a> <a class="source" href="SqlMem.html"> SqlMem.ls </a> <a class="source" href="index.html"> index.ls </a> <a class="source" href="Resource.html"> Resource.ls </a> <a class="source" href="Request.html"> Request.ls </a> <a class="source" href="Route.html"> Route.ls </a> <a class="source" href="index.html"> index.ls </a> </div> </div> </li> </ul> <ul class="sections"> <li id="title"> <div class="annotation"> <h1>View.ls</h1> </div> </li> <li id="section-1"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-1">&#182;</a> </div> </div> <div class="content"><div class='highlight'><pre><span class="hljs-function"> <span class="hljs-title">View</span> = <span class="hljs-params">(context, fn)</span> -&gt;</span> @_type = \View <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span>! context <span class="hljs-keyword">is</span> \Function <span class="hljs-keyword">and</span> <span class="hljs-keyword">not</span> fn? fn := context context := <span class="hljs-literal">null</span> <span class="hljs-function"> <span class="hljs-title">RealRender</span> = <span class="hljs-params">(...args, done)</span> -&gt;</span></pre></div></div> </li> <li id="section-2"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-2">&#182;</a> </div> <p>console.log ‘Rerender’</p> </div> <div class="content"><div class='highlight'><pre> listener = <span class="hljs-literal">null</span> isInstance = @_type <span class="hljs-keyword">and</span> @id? <span class="hljs-keyword">if</span> isInstance <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">of</span> @ let k = k <span class="hljs-keyword">if</span> <span class="hljs-keyword">typeof</span>! v <span class="hljs-keyword">is</span> \Array <span class="hljs-keyword">and</span> k <span class="hljs-keyword">in</span> map (.name), @_schema.assocs @[k + \_] = N.Watch.Value v assoc = find (.name <span class="hljs-keyword">is</span> k), @_schema.assocs N.bus.<span class="hljs-literal">on</span> \new_ + assoc.type._type, ~&gt; <span class="hljs-keyword">if</span> assoc.keyType <span class="hljs-keyword">is</span> \distant <span class="hljs-keyword">if</span> it[assoc.foreign] <span class="hljs-keyword">is</span> @id @[k + \_] @[k].concat [<span class="hljs-keyword">new</span> assoc.type it] <span class="hljs-keyword">if</span> @ <span class="hljs-keyword">isnt</span> <span class="hljs-built_in">window</span> <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">of</span> @ <span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span>! v <span class="hljs-keyword">isnt</span> \Function <span class="hljs-keyword">and</span> k<span class="hljs-number">.0</span> <span class="hljs-keyword">isnt</span> \_) <span class="hljs-keyword">or</span> (<span class="hljs-keyword">typeof</span>! v <span class="hljs-keyword">is</span> \Array <span class="hljs-keyword">and</span> !isInstance) @[k + \_] = <span class="hljs-keyword">new</span> N.Watch.Value v <span class="hljs-keyword">if</span> isInstance <span class="hljs-keyword">and</span> listener? N.bus.removeListeners \update_ + @_type + \_ + @id, listener viewRoot = DOM.div! first = <span class="hljs-literal">true</span> <span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> done? done := args args := [] N.Watch ~&gt;</pre></div></div> </li> <li id="section-3"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-3">&#182;</a> </div> <p>console.log ‘WATCH !!!!’ @</p> </div> <div class="content"><div class='highlight'><pre> viewRoot.Empty! render = viewRoot.AddChild fn.apply @, args <span class="hljs-keyword">if</span> first</pre></div></div> </li> <li id="section-4"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-4">&#182;</a> </div> <p>console.log ‘First?’, first</p> </div> <div class="content"><div class='highlight'><pre> first := <span class="hljs-literal">false</span> <span class="hljs-keyword">if</span> isInstance</pre></div></div> </li> <li id="section-5"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-5">&#182;</a> </div> <p>console.log ‘Instance’ @</p> </div> <div class="content"><div class='highlight'><pre> name = @_type listener := (changed) ~&gt; <span class="hljs-built_in">console</span>.log <span class="hljs-string">'Tamere'</span> changed <span class="hljs-keyword">for</span> k, v <span class="hljs-keyword">of</span> changed <span class="hljs-keyword">when</span> @[k]? @[k + \_] v @[k] = v N.bus.<span class="hljs-literal">on</span> \update_ + name + \_ + @id, listener <span class="hljs-keyword">return</span> done <span class="hljs-literal">null</span>, render render.Make!<span class="hljs-keyword">catch</span> <span class="hljs-built_in">console</span>~error viewRoot ret = (...args) ~&gt; (<span class="hljs-function">-&gt;</span>) &lt;&lt;&lt; <span class="hljs-keyword">do</span> _type: \View Render: (done) ~&gt; args_ = args args_.push done <span class="hljs-keyword">if</span> done? ctx = {} &lt;&lt;&lt; context RealRender.apply ctx, args_ ret._type = \View ret.Render = <span class="hljs-function"><span class="hljs-params">(done)</span> -&gt;</span></pre></div></div> </li> <li id="section-6"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-6">&#182;</a> </div> <p>console.log done ctx = {} &lt;&lt;&lt; context</p> </div> <div class="content"><div class='highlight'><pre> RealRender.call context, done ret.AttachResource = <span class="hljs-function"><span class="hljs-params">(res)</span> -&gt;</span></pre></div></div> </li> <li id="section-7"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-7">&#182;</a> </div> <p>if res? for k, v of res if typeof! v isnt \Function and typeof! v isnt \Array res[k] = new N.Watch.Value v context := res</p> </div> </li> <li id="section-8"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-8">&#182;</a> </div> <p>context::Render = RealRender console.log ‘Tamere’</p> </div> <div class="content"><div class='highlight'><pre> res::Render = RealRender</pre></div></div> </li> <li id="section-9"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-9">&#182;</a> </div> <p>console.log res.<em>type socket.on ‘update</em>‘ + res._type[to -2]*’’, ~&gt; console.log ‘tamere’ res::Render.call it, (err, r) -&gt; console.log r; r.Make!then console~log .catch console~error</p> </div> <div class="content"><div class='highlight'><pre> ret View.DOM = DOM View.Node = Node N.View = View N.Render = <span class="hljs-function"><span class="hljs-params">(func)</span> -&gt;</span> N.Watch -&gt; DOM.root func! .Make!.<span class="hljs-keyword">catch</span> <span class="hljs-built_in">console</span>~error</pre></div></div> </li> <li id="section-10"> <div class="annotation"> <div class="pilwrap "> <a class="pilcrow" href="#section-10">&#182;</a> </div> <p>then console~log</p> </div> </li> </ul> </div> </body> </html>