mirror of
https://github.com/knex/knex.git
synced 2025-12-27 15:08:47 +00:00
more cleanup & docs
This commit is contained in:
parent
5ca81a5cb5
commit
092cfc6059
@ -74,7 +74,7 @@ define(function(require, exports) {
|
||||
|
||||
// Release a connection back to the connection pool.
|
||||
release: function(connection, callback) {
|
||||
return this.poolInstance.release(connection, callback);
|
||||
this.poolInstance.release(connection, callback);
|
||||
},
|
||||
|
||||
// Tear down the pool, only necessary if you need it.
|
||||
|
||||
@ -283,7 +283,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "cordova"
|
||||
},
|
||||
"depth": 3,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "SQLite3 - Cordova (PhoneGap)",
|
||||
"slug": "sqlite3-cordova-phonegap"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "file",
|
||||
"data": {
|
||||
@ -299,7 +309,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "websql"
|
||||
},
|
||||
"depth": 3,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "SQLite3 - WebSQL",
|
||||
"slug": "sqlite3-websql"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -467,7 +487,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "migrate"
|
||||
},
|
||||
"depth": 2,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "Migrate (WIP)",
|
||||
"slug": "migrate-wip"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "file",
|
||||
"data": {
|
||||
@ -483,7 +513,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "raw"
|
||||
},
|
||||
"depth": 2,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "Raw",
|
||||
"slug": "raw"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "file",
|
||||
"data": {
|
||||
@ -499,7 +539,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "schemabuilder"
|
||||
},
|
||||
"depth": 2,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "Schema Builder",
|
||||
"slug": "schema-builder"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "file",
|
||||
"data": {
|
||||
@ -515,7 +565,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "schemainterface"
|
||||
},
|
||||
"depth": 2,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "Schema Interface",
|
||||
"slug": "schema-interface"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "file",
|
||||
"data": {
|
||||
@ -557,7 +617,17 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3
|
||||
"title": "transaction"
|
||||
},
|
||||
"depth": 2,
|
||||
"outline": []
|
||||
"outline": [
|
||||
{
|
||||
"type": "heading",
|
||||
"data": {
|
||||
"level": 2,
|
||||
"title": "Transaction",
|
||||
"slug": "transaction"
|
||||
},
|
||||
"depth": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -7,16 +7,14 @@
|
||||
<span class="kd">var</span> <span class="nx">Helpers</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../lib/helpers'</span><span class="p">).</span><span class="nx">Helpers</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The <code>ClientBase</code> is assumed as the object that all database <code>clients</code>
|
||||
inherit from, and is used in an <code>instanceof</code> check when initializing the
|
||||
library. If you wish to write or customize an adapter, just inherit from
|
||||
this base, with ClientBase.extend, and you're good to go.</p></div></div><div class="code"><div class="wrapper"> <span class="kd">var</span> <span class="nx">ClientBase</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The methods assumed when building a client.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">ClientBase</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Gets the raw connection for the current client.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">getRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Execute a query on the specified <code>Builder</code> or <code>SchemaBuilder</code>
|
||||
this base, with <code>ClientBase.extend</code>, and you're good to go.</p></div></div><div class="code"><div class="wrapper"> <span class="kd">var</span> <span class="nx">ClientBase</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{};</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The methods assumed when building a client.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">ClientBase</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Gets the raw connection for the current client.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">getRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Execute a query on the specified <code>Builder</code> or <code>SchemaBuilder</code>
|
||||
interface. If a <code>connection</code> is specified, use it, otherwise
|
||||
acquire a connection, and then dispose of it when we're done.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">query</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Retrieves a connection from the connection pool,
|
||||
returning a promise.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">getConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Releases a connection from the connection pool,
|
||||
returning a promise.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">releaseConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">conn</span><span class="p">)</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Begins a transaction statement on the instance,
|
||||
resolving with the connection of the current transaction.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">startTransaction</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Finishes a transaction, taking the <code>type</code></p></div></div><div class="code"><div class="wrapper"> <span class="nx">finishTransaction</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">trans</span><span class="p">,</span> <span class="nx">dfd</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The pool defaults.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">poolDefaults</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{}</span>
|
||||
resolving with the connection of the current transaction.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">startTransaction</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Finishes a transaction, taking the <code>type</code></p></div></div><div class="code"><div class="wrapper"> <span class="nx">finishTransaction</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">transaction</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The pool defaults.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">poolDefaults</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{}</span>
|
||||
|
||||
<span class="p">};</span>
|
||||
|
||||
<span class="nx">ClientBase</span><span class="p">.</span><span class="nx">extend</span> <span class="o">=</span> <span class="nx">Helpers</span><span class="p">.</span><span class="nx">extend</span><span class="p">;</span>
|
||||
<span class="p">};</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Grab the standard <code>Object.extend</code> as popularized by Backbone.js.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">ClientBase</span><span class="p">.</span><span class="nx">extend</span> <span class="o">=</span> <span class="nx">Helpers</span><span class="p">.</span><span class="nx">extend</span><span class="p">;</span>
|
||||
|
||||
<span class="nx">exports</span><span class="p">.</span><span class="nx">ClientBase</span> <span class="o">=</span> <span class="nx">ClientBase</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -6,56 +6,65 @@
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span>
|
||||
|
||||
<span class="kd">var</span> <span class="nx">_</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'underscore'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">GenericPool</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'generic-pool-redux'</span><span class="p">).</span><span class="nx">Pool</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The "Pool" object is a thin wrapper around the
|
||||
<span class="kd">var</span> <span class="nx">GenericPool</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'generic-pool-redux'</span><span class="p">).</span><span class="nx">Pool</span><span class="p">;</span>
|
||||
|
||||
<span class="kd">var</span> <span class="nx">Helpers</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../lib/helpers'</span><span class="p">).</span><span class="nx">Helpers</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>The "Pool" object is a thin wrapper around the
|
||||
"generic-pool-redux" library, exposing a <code>destroy</code>
|
||||
method for explicitly draining the pool. The
|
||||
<code>init</code> method is called internally and initializes
|
||||
the pool if it doesn't already exist.</p></div></div><div class="code"><div class="wrapper"> <span class="kd">var</span> <span class="nx">Pool</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">config</span><span class="p">,</span> <span class="nx">client</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">afterCreate</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">afterCreate</span> <span class="o">=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">afterCreate</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nx">_</span><span class="p">.</span><span class="nx">bindAll</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'acquire'</span><span class="p">,</span> <span class="s1">'create'</span><span class="p">,</span> <span class="s1">'release'</span><span class="p">,</span> <span class="s1">'afterCreate'</span><span class="p">,</span> <span class="s1">'beforeDestroy'</span><span class="p">);</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">_</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="nx">config</span><span class="p">,</span> <span class="p">{</span>
|
||||
<span class="nx">create</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">create</span><span class="p">,</span>
|
||||
<span class="nx">destroy</span><span class="o">:</span> <span class="k">this</span><span class="p">.</span><span class="nx">beforeDestroy</span>
|
||||
<span class="p">});</span>
|
||||
<span class="nx">_</span><span class="p">.</span><span class="nx">bindAll</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'acquire'</span><span class="p">,</span> <span class="s1">'release'</span><span class="p">);</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">config</span><span class="p">;</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">client</span> <span class="o">=</span> <span class="nx">client</span><span class="p">;</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">();</span>
|
||||
<span class="p">};</span>
|
||||
|
||||
<span class="nx">Pool</span><span class="p">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="p">{</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Some basic defaults for the pool... generally you don't really want to keep
|
||||
mutable objects on the prototype, but in this case we're not supposed to be
|
||||
messing around with them, so it should be alright.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">defaults</span><span class="o">:</span> <span class="p">{</span>
|
||||
<span class="nx">min</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>
|
||||
<span class="nx">max</span><span class="o">:</span> <span class="mi">10</span>
|
||||
messing around with them, so it should be alright.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">defaults</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">poolInstance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
||||
<span class="k">return</span> <span class="p">{</span>
|
||||
<span class="nx">min</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span>
|
||||
<span class="nx">max</span><span class="o">:</span> <span class="mi">10</span><span class="p">,</span>
|
||||
<span class="nx">create</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">promise</span> <span class="o">=</span> <span class="nx">poolInstance</span><span class="p">.</span><span class="nx">client</span><span class="p">.</span><span class="nx">getRawConnection</span><span class="p">()</span>
|
||||
<span class="p">.</span><span class="nx">tap</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">connection</span><span class="p">.</span><span class="nx">__cid</span> <span class="o">=</span> <span class="nx">_</span><span class="p">.</span><span class="nx">uniqueId</span><span class="p">(</span><span class="s1">'__cid'</span><span class="p">);</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">poolInstance</span><span class="p">.</span><span class="nx">config</span><span class="p">.</span><span class="nx">afterCreate</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">nodefn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">poolInstance</span><span class="p">.</span><span class="nx">config</span><span class="p">.</span><span class="nx">afterCreate</span><span class="p">,</span> <span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">return</span> <span class="nx">nodefn</span><span class="p">.</span><span class="nx">bindCallback</span><span class="p">(</span><span class="nx">promise</span><span class="p">,</span> <span class="nx">callback</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
<span class="nx">destroy</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">poolInstance</span><span class="p">.</span><span class="nx">config</span><span class="p">.</span><span class="nx">beforeDestroy</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">poolInstance</span><span class="p">.</span><span class="nx">config</span><span class="p">.</span><span class="nx">beforeDestroy</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">poolInstance</span><span class="p">.</span><span class="nx">client</span><span class="p">.</span><span class="nx">getRawConnection</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">});</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nx">poolInstance</span><span class="p">.</span><span class="nx">client</span><span class="p">.</span><span class="nx">getRawConnection</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">};</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Typically only called internally, this initializes
|
||||
a new <code>GenericPool</code> instance, based on the <code>config</code>
|
||||
options passed into the constructor.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">||</span> <span class="k">new</span> <span class="nx">GenericPool</span><span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">defaults</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">config</span><span class="p">,</span> <span class="k">this</span><span class="p">.</span><span class="nx">defaults</span><span class="p">));</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">;</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Extend these if you want to have some action taking place just after
|
||||
the connection is created, or just before the connection is destroyed.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">afterCreate</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span>
|
||||
<span class="nx">beforeDestroy</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Create a new connection on the pool.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">create</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">promise</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">client</span><span class="p">.</span><span class="nx">getRawConnection</span><span class="p">()</span>
|
||||
<span class="p">.</span><span class="nx">tap</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span> <span class="nx">connection</span><span class="p">.</span><span class="nx">__cid</span> <span class="o">=</span> <span class="nx">_</span><span class="p">.</span><span class="nx">uniqueId</span><span class="p">(</span><span class="s1">'__cid'</span><span class="p">);</span> <span class="p">})</span>
|
||||
<span class="p">.</span><span class="nx">tap</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">afterCreate</span><span class="p">);</span>
|
||||
<span class="k">return</span> <span class="nx">nodefn</span><span class="p">.</span><span class="nx">bindCallback</span><span class="p">(</span><span class="nx">promise</span><span class="p">,</span> <span class="nx">callback</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
|
||||
<span class="nx">acquire</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">priority</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">instance</span> <span class="o">||</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">())).</span><span class="nx">acquire</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">priority</span><span class="p">);</span>
|
||||
options passed into the constructor.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">init</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">config</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">)</span> <span class="k">this</span><span class="p">.</span><span class="nx">config</span> <span class="o">=</span> <span class="nx">_</span><span class="p">.</span><span class="nx">extend</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">config</span><span class="p">,</span> <span class="nx">config</span><span class="p">);</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span> <span class="o">||</span> <span class="k">new</span> <span class="nx">GenericPool</span><span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">defaults</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">config</span><span class="p">,</span> <span class="nx">_</span><span class="p">.</span><span class="nx">result</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'defaults'</span><span class="p">)));</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span><span class="p">;</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Acquires a connection from the pool.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">acquire</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">priority</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span> <span class="o">||</span> <span class="k">this</span><span class="p">.</span><span class="nx">init</span><span class="p">()).</span><span class="nx">acquire</span><span class="p">(</span><span class="nx">callback</span><span class="p">,</span> <span class="nx">priority</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Release a connection back to the connection pool.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">release</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="nx">callback</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">.</span><span class="nx">release</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span><span class="p">.</span><span class="nx">release</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="nx">callback</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Tear down the pool, only necessary if you need it.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">destroy</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">poolInstance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">poolInstance</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span><span class="p">;</span>
|
||||
<span class="nx">poolInstance</span><span class="p">.</span><span class="nx">drain</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">poolInstance</span><span class="p">.</span><span class="nx">destroyAllNow</span><span class="p">();</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">instance</span><span class="p">;</span>
|
||||
<span class="k">delete</span> <span class="k">this</span><span class="p">.</span><span class="nx">poolInstance</span><span class="p">;</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="p">};</span>
|
||||
<span class="p">};</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Grab the standard <code>Object.extend</code> as popularized by Backbone.js.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">Pool</span><span class="p">.</span><span class="nx">extend</span> <span class="o">=</span> <span class="nx">Helpers</span><span class="p">.</span><span class="nx">extend</span><span class="p">;</span>
|
||||
|
||||
<span class="nx">exports</span><span class="p">.</span><span class="nx">Pool</span> <span class="o">=</span> <span class="nx">Pool</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/server/base</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/server/base"><meta name="groc-project-path" content="clients/server/base.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/server/base.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="serverbase">ServerBase</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">when</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when'</span><span class="p">);</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/server/base</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/server/base"><meta name="groc-project-path" content="clients/server/base.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/server/base.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="serverbase">ServerBase</h2></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All of the "when.js" promise components needed in this module.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">when</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">sequence</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/sequence'</span><span class="p">);</span>
|
||||
|
||||
@ -12,11 +12,8 @@ which then initializes the pool and</p></div></div><div class="code"><div class=
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">debug</span><span class="p">)</span> <span class="k">this</span><span class="p">.</span><span class="nx">isDebugging</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">connectionSettings</span> <span class="o">=</span> <span class="nx">config</span><span class="p">.</span><span class="nx">connection</span><span class="p">;</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">initPool</span><span class="p">(</span><span class="nx">config</span><span class="p">.</span><span class="nx">pool</span><span class="p">);</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">initialize</span><span class="p">(</span><span class="nx">config</span><span class="p">);</span>
|
||||
<span class="nx">_</span><span class="p">.</span><span class="nx">bindAll</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'getRawConnection'</span><span class="p">);</span>
|
||||
<span class="p">},</span>
|
||||
|
||||
<span class="nx">initialize</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Initialize a pool with the apporpriate configuration and
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Initialize a pool with the apporpriate configuration and
|
||||
bind the pool to the current client object.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">initPool</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">poolConfig</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">pool</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Pool</span><span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">extend</span><span class="p">({},</span> <span class="nx">poolConfig</span><span class="p">,</span> <span class="nx">_</span><span class="p">.</span><span class="nx">result</span><span class="p">(</span><span class="k">this</span><span class="p">,</span> <span class="s1">'poolDefaults'</span><span class="p">)),</span> <span class="k">this</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Execute a query on the specified Builder or QueryBuilder
|
||||
@ -24,14 +21,12 @@ interface. If a <code>connection</code> is specified, use it, otherwise
|
||||
acquire a connection, and then dispose of it when we're done.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">query</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">builder</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">conn</span><span class="p">,</span> <span class="nx">client</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">sql</span> <span class="o">=</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">toSql</span><span class="p">(</span><span class="nx">builder</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">bindings</span> <span class="o">=</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">cleanBindings</span><span class="p">();</span>
|
||||
<span class="kd">var</span> <span class="nx">bindings</span> <span class="o">=</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">getBindings</span><span class="p">();</span>
|
||||
|
||||
<span class="kd">var</span> <span class="nx">chain</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">getConnection</span><span class="p">(</span><span class="nx">builder</span><span class="p">).</span><span class="nx">then</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">client</span><span class="p">.</span><span class="nx">isDebugging</span> <span class="o">||</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">isDebugging</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">client</span><span class="p">.</span><span class="nx">debug</span><span class="p">(</span><span class="nx">sql</span><span class="p">,</span> <span class="nx">bindings</span><span class="p">,</span> <span class="nx">connection</span><span class="p">,</span> <span class="nx">builder</span><span class="p">);</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="nx">conn</span> <span class="o">=</span> <span class="nx">connection</span><span class="p">;</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">_</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">sql</span><span class="p">))</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">sequence</span><span class="p">(</span><span class="nx">sql</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">query</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/server/mysql</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/server/mysql"><meta name="groc-project-path" content="clients/server/mysql.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/server/mysql.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="mysql">MySQL</h2></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All of the "when.js" promise components needed in this module.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">when</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">sequence</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/sequence'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Other dependencies, including the <code>mysql</code> library,
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Other dependencies, including the <code>mysql</code> library,
|
||||
which needs to be added as a dependency to the project
|
||||
using this database.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">_</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'underscore'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">mysql</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'mysql'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All other local project modules needed in this scope.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">ServerBase</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./base'</span><span class="p">).</span><span class="nx">ServerBase</span><span class="p">;</span>
|
||||
@ -23,6 +22,9 @@ using this database.</p></div></div><div class="code"><div class="wrapper"><span
|
||||
connection needs to be added to the pool.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">getRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">connection</span> <span class="o">=</span> <span class="nx">mysql</span><span class="p">.</span><span class="nx">createConnection</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">connectionSettings</span><span class="p">);</span>
|
||||
<span class="k">return</span> <span class="nx">nodefn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">connection</span><span class="p">.</span><span class="nx">connect</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">connection</span><span class="p">)).</span><span class="nx">yield</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Used to explicitly close a connection, called internally by the pool
|
||||
when a connection times out or the pool is shutdown.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">destroyRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">connection</span><span class="p">.</span><span class="nx">end</span><span class="p">();</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Used to check if there is a conditional query needed to complete the next one.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">advancedQuery</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="nx">sql</span><span class="p">,</span> <span class="nx">bindings</span><span class="p">,</span> <span class="nx">builder</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">sql</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'alter table'</span><span class="p">)</span> <span class="o">===</span> <span class="mi">0</span> <span class="o">&&</span> <span class="nx">sql</span><span class="p">.</span><span class="nx">indexOf</span><span class="p">(</span><span class="s1">'__datatype__'</span><span class="p">)</span> <span class="o">===</span> <span class="p">(</span><span class="nx">sql</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">12</span><span class="p">))</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">newSql</span> <span class="o">=</span> <span class="nx">sql</span><span class="p">.</span><span class="nx">replace</span><span class="p">(</span><span class="s1">'alter table'</span><span class="p">,</span> <span class="s1">'show fields from'</span><span class="p">).</span><span class="nx">split</span><span class="p">(</span><span class="s1">'change'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' where field = ?'</span><span class="p">;</span>
|
||||
|
||||
@ -9,8 +9,6 @@ using this database.</p></div></div><div class="code"><div class="wrapper"><span
|
||||
|
||||
<span class="nx">dialect</span><span class="o">:</span> <span class="s1">'postgresql'</span><span class="p">,</span>
|
||||
|
||||
<span class="nx">initialize</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span>
|
||||
|
||||
<span class="nx">runQuery</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="nx">sql</span><span class="p">,</span> <span class="nx">bindings</span><span class="p">,</span> <span class="nx">builder</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">connection</span><span class="p">)</span> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'No database connection exists for the query'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">questionCount</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
|
||||
@ -27,6 +25,9 @@ connection needs to be added to the pool.</p></div></div><div class="code"><div
|
||||
<span class="k">return</span> <span class="nx">nodefn</span><span class="p">.</span><span class="nx">call</span><span class="p">(</span><span class="nx">connection</span><span class="p">.</span><span class="nx">connect</span><span class="p">.</span><span class="nx">bind</span><span class="p">(</span><span class="nx">connection</span><span class="p">)).</span><span class="nx">tap</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">instance</span><span class="p">.</span><span class="nx">version</span><span class="p">)</span> <span class="k">return</span> <span class="nx">instance</span><span class="p">.</span><span class="nx">checkVersion</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">}).</span><span class="nx">yield</span><span class="p">(</span><span class="nx">connection</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Used to explicitly close a connection, called internally by the pool
|
||||
when a connection times out or the pool is shutdown.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">destroyRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">connection</span><span class="p">.</span><span class="nx">end</span><span class="p">();</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>In PostgreSQL, we need to do a version check to do some feature
|
||||
checking on the database.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">checkVersion</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">instance</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
||||
|
||||
@ -1,18 +1,16 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/server/sqlite3</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/server/sqlite3"><meta name="groc-project-path" content="clients/server/sqlite3.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/server/sqlite3.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="sqlite3">SQLite3</h2></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All of the "when.js" promise components needed in this module.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">when</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Other dependencies, including the <code>sqlite3</code> library,
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/server/sqlite3</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/server/sqlite3"><meta name="groc-project-path" content="clients/server/sqlite3.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/server/sqlite3.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="sqlite3">SQLite3</h2></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All of the "when.js" promise components needed in this module.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">when</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">nodefn</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'when/node/function'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Other dependencies, including the <code>sqlite3</code> library,
|
||||
which needs to be added as a dependency to the project
|
||||
using this database.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">_</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'underscore'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">sqlite3</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'sqlite3'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All other local project modules needed in this scope.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">SQLite3Base</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../base/sqlite3'</span><span class="p">);</span>
|
||||
using this database.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">_</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'underscore'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">sqlite3</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'sqlite3'</span><span class="p">);</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>All other local project modules needed in this scope.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">SQLite3Base</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../base/sqlite3'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">ServerBase</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'./base'</span><span class="p">).</span><span class="nx">ServerBase</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">Builder</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../../lib/builder'</span><span class="p">).</span><span class="nx">Builder</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">Transaction</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../../lib/transaction'</span><span class="p">).</span><span class="nx">Transaction</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">SchemaInterface</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../../lib/schemainterface'</span><span class="p">).</span><span class="nx">SchemaInterface</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">Helpers</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../../lib/helpers'</span><span class="p">).</span><span class="nx">Helpers</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Constructor for the SQLite3Client.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">SQLite3Client</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">Client</span> <span class="o">=</span> <span class="nx">ServerBase</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
|
||||
<span class="kd">var</span> <span class="nx">Helpers</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'../../lib/helpers'</span><span class="p">).</span><span class="nx">Helpers</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Constructor for the SQLite3Client.</p></div></div><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">SQLite3Client</span> <span class="o">=</span> <span class="nx">exports</span><span class="p">.</span><span class="nx">Client</span> <span class="o">=</span> <span class="nx">ServerBase</span><span class="p">.</span><span class="nx">extend</span><span class="p">({</span>
|
||||
|
||||
<span class="nx">dialect</span><span class="o">:</span> <span class="s1">'sqlite3'</span><span class="p">,</span>
|
||||
|
||||
<span class="nx">initialize</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{},</span>
|
||||
|
||||
<span class="nx">runQuery</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">,</span> <span class="nx">sql</span><span class="p">,</span> <span class="nx">bindings</span><span class="p">,</span> <span class="nx">builder</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">connection</span><span class="p">)</span> <span class="k">throw</span> <span class="k">new</span> <span class="nb">Error</span><span class="p">(</span><span class="s1">'No database connection exists for the query'</span><span class="p">);</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="nx">sql</span> <span class="o">===</span> <span class="s1">'__rename_column__'</span><span class="p">)</span> <span class="p">{</span>
|
||||
@ -50,6 +48,9 @@ using this database.</p></div></div><div class="code"><div class="wrapper"><span
|
||||
<span class="nx">dfd</span><span class="p">.</span><span class="nx">resolve</span><span class="p">(</span><span class="nx">db</span><span class="p">);</span>
|
||||
<span class="p">});</span>
|
||||
<span class="k">return</span> <span class="nx">dfd</span><span class="p">.</span><span class="nx">promise</span><span class="p">;</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Used to explicitly close a connection, called internally by the pool
|
||||
when a connection times out or the pool is shutdown.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">destroyRawConnection</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">connection</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Begins a transaction statement on the instance,
|
||||
resolving with the connection of the current transaction.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">startTransaction</span><span class="o">:</span> <span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">getConnection</span><span class="p">().</span><span class="nx">tap</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">connection</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/web/cordova</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/web/cordova"><meta name="groc-project-path" content="clients/web/cordova.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/web/cordova.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/web/cordova</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/web/cordova"><meta name="groc-project-path" content="clients/web/cordova.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/web/cordova.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="sqlite3-cordova-phonegap">SQLite3 - Cordova (PhoneGap)</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/web/websql</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/web/websql"><meta name="groc-project-path" content="clients/web/websql.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/web/websql.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>clients/web/websql</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="clients/web/websql"><meta name="groc-project-path" content="clients/web/websql.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">clients/web/websql.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="sqlite3-websql">SQLite3 - WebSQL</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/builder/joinclause</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="lib/builder/joinclause"><meta name="groc-project-path" content="lib/builder/joinclause.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/builder/joinclause.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/builder/joinclause</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../../"><meta name="groc-document-path" content="lib/builder/joinclause"><meta name="groc-project-path" content="lib/builder/joinclause.js"><link rel="stylesheet" type="text/css" media="all" href="../../assets/style.css"><script type="text/javascript" src="../../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/builder/joinclause.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="joinclause">JoinClause</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><h2 id="joinclause">JoinClause</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="nx">define</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">require</span><span class="p">,</span> <span class="nx">exports</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
<span class="nx">define</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">require</span><span class="p">,</span> <span class="nx">exports</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="kd">var</span> <span class="nx">JoinClause</span> <span class="o">=</span> <span class="kd">function</span><span class="p">(</span><span class="nx">type</span><span class="p">,</span> <span class="nx">table</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">joinType</span> <span class="o">=</span> <span class="nx">type</span><span class="p">;</span>
|
||||
|
||||
@ -42,7 +42,7 @@ after the last block.</p></div></div><div class="code"><div class="wrapper">
|
||||
correct values based on bindings, etc. Useful for debugging.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">toString</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>TODO: get rid of the need to clone the object here...</p></div></div><div class="code"><div class="wrapper"> <span class="kd">var</span> <span class="nx">builder</span> <span class="o">=</span> <span class="k">this</span><span class="p">,</span> <span class="nx">data</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">clone</span><span class="p">().</span><span class="nx">toSql</span><span class="p">();</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">_</span><span class="p">.</span><span class="nx">isArray</span><span class="p">(</span><span class="nx">data</span><span class="p">))</span> <span class="nx">data</span> <span class="o">=</span> <span class="p">[</span><span class="nx">data</span><span class="p">];</span>
|
||||
<span class="k">return</span> <span class="nx">_</span><span class="p">.</span><span class="nx">map</span><span class="p">(</span><span class="nx">data</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">str</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">SqlString</span><span class="p">.</span><span class="nx">format</span><span class="p">(</span><span class="nx">str</span><span class="p">,</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">cleanBindings</span><span class="p">());</span>
|
||||
<span class="k">return</span> <span class="nx">SqlString</span><span class="p">.</span><span class="nx">format</span><span class="p">(</span><span class="nx">str</span><span class="p">,</span> <span class="nx">builder</span><span class="p">.</span><span class="nx">getBindings</span><span class="p">());</span>
|
||||
<span class="p">}).</span><span class="nx">join</span><span class="p">(</span><span class="s1">'; '</span><span class="p">);</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Converts the current statement to a sql string</p></div></div><div class="code"><div class="wrapper"> <span class="nx">toSql</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">.</span><span class="nx">grammar</span><span class="p">.</span><span class="nx">toSql</span><span class="p">(</span><span class="k">this</span><span class="p">);</span>
|
||||
@ -63,7 +63,7 @@ and have it come out fine.</p></div></div><div class="code"><div class="wrapper"
|
||||
<span class="p">}</span>
|
||||
<span class="k">this</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="nx">type</span><span class="p">;</span>
|
||||
<span class="k">return</span> <span class="k">this</span><span class="p">;</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Returns all bindings excluding the <code>Knex.Raw</code> types.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">cleanBindings</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="p">},</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>Returns all bindings excluding the <code>Knex.Raw</code> types.</p></div></div><div class="code"><div class="wrapper"> <span class="nx">getBindings</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">bindings</span> <span class="o">=</span> <span class="k">this</span><span class="p">.</span><span class="nx">bindings</span><span class="p">;</span>
|
||||
<span class="kd">var</span> <span class="nx">cleaned</span> <span class="o">=</span> <span class="p">[];</span>
|
||||
<span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">bindings</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">l</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span></div></div></div><div class="segment"><div class="comments"><div class="wrapper"><p>if (bindings[i] == void 0) continue;</p></div></div><div class="code"><div class="wrapper"> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nx">bindings</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">||</span> <span class="nx">bindings</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">_source</span> <span class="o">!==</span> <span class="s1">'Raw'</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/migrate</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/migrate"><meta name="groc-project-path" content="lib/migrate.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/migrate.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">fs</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'fs'</span><span class="p">);</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/migrate</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/migrate"><meta name="groc-project-path" content="lib/migrate.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/migrate.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="migrate-wip">Migrate (WIP)</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="kd">var</span> <span class="nx">fs</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'fs'</span><span class="p">);</span>
|
||||
<span class="kd">var</span> <span class="nx">path</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'path'</span><span class="p">);</span>
|
||||
|
||||
<span class="kd">var</span> <span class="nx">_</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'underscore'</span><span class="p">);</span>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/raw</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/raw"><meta name="groc-project-path" content="lib/raw.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/raw.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/raw</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/raw"><meta name="groc-project-path" content="lib/raw.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/raw.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="raw">Raw</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/schemabuilder</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/schemabuilder"><meta name="groc-project-path" content="lib/schemabuilder.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/schemabuilder.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/schemabuilder</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/schemabuilder"><meta name="groc-project-path" content="lib/schemabuilder.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/schemabuilder.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="schema-builder">Schema Builder</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/schemainterface</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/schemainterface"><meta name="groc-project-path" content="lib/schemainterface.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/schemainterface.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/schemainterface</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/schemainterface"><meta name="groc-project-path" content="lib/schemainterface.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/schemainterface.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="schema-interface">Schema Interface</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/transaction</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/transaction"><meta name="groc-project-path" content="lib/transaction.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/transaction.js</div></div><div id="document"><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
<!DOCTYPE html><html lang="en"><head><title>lib/transaction</title></head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"><meta name="groc-relative-root" content="../"><meta name="groc-document-path" content="lib/transaction"><meta name="groc-project-path" content="lib/transaction.js"><link rel="stylesheet" type="text/css" media="all" href="../assets/style.css"><script type="text/javascript" src="../assets/behavior.js"></script><body><div id="meta"><div class="file-path">lib/transaction.js</div></div><div id="document"><div class="segment"><div class="comments"><div class="wrapper"><h2 id="transaction">Transaction</h2></div></div></div><div class="segment"><div class="code"><div class="wrapper"><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">define</span><span class="p">)</span> <span class="p">{</span>
|
||||
|
||||
<span class="s2">"use strict"</span><span class="p">;</span>
|
||||
|
||||
|
||||
22
index.html
22
index.html
@ -235,6 +235,7 @@
|
||||
<li>– <a href="#Builder-decrement">decrement</a></li>
|
||||
<li>– <a href="#Builder-truncate">truncate</a></li>
|
||||
<li>– <a href="#Builder-debug">debug</a></li>
|
||||
<li>– <a href="#Builder-options">options</a></li>
|
||||
<li><b><a href="#Builder-Interface">Interface:</a></b></li>
|
||||
<li>– <a href="#Builder-tap">tap</a></li>
|
||||
<li>– <a href="#Builder-then">then</a></li>
|
||||
@ -875,6 +876,23 @@ knex.transaction(function(t) {
|
||||
Turns on debugging for the current query chain.
|
||||
</p>
|
||||
|
||||
<p id="Builder-options">
|
||||
<b class="header">options</b><code>.options()</code>
|
||||
<br />
|
||||
Allows for mixing in additional options as defined by database client specific libraries:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
knex('accounts as a1')
|
||||
.join('accounts as a2', function() {
|
||||
this.on('a1.email', '<>', 'a2.email');
|
||||
}, 'left')
|
||||
.select(['a1.email', 'a2.email'])
|
||||
.where(Knex.Raw('a1.id = 1'))
|
||||
.option({ nestTables: true, rowMode: 'array' })
|
||||
.limit(2);
|
||||
</pre>
|
||||
|
||||
<h3 id="Builder-Interface">Builder Interface Methods:</h3>
|
||||
|
||||
<p id="Builder-then">
|
||||
@ -1344,7 +1362,9 @@ knex.raw('select * from users where id = 1').then(function(resp) {
|
||||
</ul>
|
||||
Schema: Added <a href="#Schema-hasColumn">hasColumn</a>, <a href="#Schema-renameColumn">renameColumn</a>, <a href="Schema-bigInteger">bigInteger</a>,
|
||||
<a href="Schema-specificType">specificType</a>.
|
||||
General: Refactoring the library to support UMD and eventual use on the client.
|
||||
General: Refactoring the library to support UMD and eventual use on the client. Added <tt>options</tt> method for adding additional
|
||||
parameters specific to individual database libraries, #64.
|
||||
Bugfixes: Case insensitive where operators (e.g.) <tt>LIKE, BETWEEN, NOT LIKE</tt> are now supported.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
// JoinClause
|
||||
// ---------
|
||||
(function(define) {
|
||||
|
||||
"use strict";
|
||||
|
||||
// JoinClause
|
||||
// ---------
|
||||
define(function(require, exports) {
|
||||
|
||||
var JoinClause = function(type, table) {
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
// Migrate (WIP)
|
||||
// -------
|
||||
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
// Raw
|
||||
// -------
|
||||
(function(define) {
|
||||
|
||||
"use strict";
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
// Schema Builder
|
||||
// -------
|
||||
(function(define) {
|
||||
|
||||
"use strict";
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
// Schema Interface
|
||||
// -------
|
||||
(function(define) {
|
||||
|
||||
"use strict";
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
// Transaction
|
||||
// -------
|
||||
(function(define) {
|
||||
|
||||
"use strict";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user