formalize
Version:
Node.js NoSQL ActiveRecord ORM layer for FoundationDB
125 lines (84 loc) • 4.72 kB
HTML
<html>
<head>
<title>index.coffee</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 class="sections">
<li id="title">
<div class="annotation">
<h1>index.coffee</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">¶</a>
</div>
</div>
<div class="content"><div class='highlight'><pre>providers = {}</pre></div></div>
</li>
<li id="section-2">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-2">¶</a>
</div>
<h2 id="factory-function-">Factory function.</h2>
</div>
<div class="content"><div class='highlight'><pre><span class="hljs-property">@param</span> {String} dbType Database system type.
<span class="hljs-property">@return</span> {Function} Provider Factory</pre></div></div>
</li>
<li id="section-3">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-3">¶</a>
</div>
<h1 id="-">#</h1>
</div>
<div class="content"><div class='highlight'><pre><span class="hljs-built_in">module</span>.e<span class="hljs-function"><span class="hljs-title">xports</span> = <span class="hljs-params">(dbType)</span> -></span>
Provider = <span class="hljs-built_in">require</span>(<span class="hljs-string">"./provider/<span class="hljs-subst">#{dbType}</span>"</span>)</pre></div></div>
</li>
<li id="section-4">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-4">¶</a>
</div>
<h2 id="returns-a-typed-provider-for-a-specific-database-">Returns a typed provider for a specific database.</h2>
</div>
<div class="content"><div class='highlight'><pre> <span class="hljs-property">@param</span> {String} dbName Database name.
<span class="hljs-property">@param</span> {Object} options Provider specific configuration options.
<span class="hljs-property">@param</span> {Function} callback Function called <span class="hljs-keyword">when</span> provider connected to database.
<span class="hljs-property">@return</span> {Object} Provider <span class="hljs-keyword">if</span> callback <span class="hljs-keyword">is</span> defined</pre></div></div>
</li>
<li id="section-5">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-5">¶</a>
</div>
<h1 id="-">#</h1>
</div>
<div class="content"><div class='highlight'><pre><span class="hljs-function"> <span class="hljs-params">(dbName, options, callback)</span> -></span>
<span class="hljs-keyword">if</span> (<span class="hljs-keyword">typeof</span>(options) <span class="hljs-keyword">is</span> <span class="hljs-string">'function'</span>)
callback = options
options = <span class="hljs-literal">null</span>
key = <span class="hljs-string">"<span class="hljs-subst">#{dbType}</span>:<span class="hljs-subst">#{dbName}</span>"</span>
provider = providers[key]
<span class="hljs-keyword">if</span> (!provider)
provider = <span class="hljs-keyword">new</span> Provider(dbType, dbName)
providers[key] = provider
provider.<span class="hljs-literal">on</span>(<span class="hljs-string">'connected'</span>, callback) <span class="hljs-keyword">if</span> (callback)
provider.connect(options)
<span class="hljs-keyword">if</span> (!callback)
<span class="hljs-keyword">return</span> provider
<span class="hljs-keyword">else</span>
<span class="hljs-keyword">return</span></pre></div></div>
</li>
</ul>
</div>
</body>
</html>