dobo 2.30.7 → 2.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsdoc.conf.json +1 -1
- package/docs/Dobo.html +1 -24
- package/docs/DoboAction.html +13 -0
- package/docs/DoboAdapter.html +3 -0
- package/docs/DoboConnection.html +3 -0
- package/docs/DoboFeature.html +3 -0
- package/docs/DoboModel.html +51 -0
- package/docs/data/search.json +1 -1
- package/docs/extend_bajo_hook-docs.js.html +241 -0
- package/docs/external-Tools.html +3 -0
- package/docs/global.html +1 -5
- package/docs/index.html +1 -1
- package/docs/index.js.html +434 -380
- package/docs/lib_factory_action.js.html +290 -0
- package/docs/lib_factory_adapter.js.html +1057 -0
- package/docs/lib_factory_connection.js.html +112 -0
- package/docs/lib_factory_feature.js.html +55 -0
- package/docs/lib_factory_model.js.html +503 -0
- package/docs/lib_factory_model_build.js.html +28 -0
- package/docs/lib_factory_model_clear-record.js.html +33 -0
- package/docs/lib_factory_model_count-record.js.html +45 -0
- package/docs/lib_factory_model_create-record.js.html +52 -0
- package/docs/lib_factory_model_drop.js.html +29 -0
- package/docs/lib_factory_model_exists.js.html +29 -0
- package/docs/lib_factory_model_find-all-record.js.html +115 -0
- package/docs/lib_factory_model_find-one-record.js.html +41 -0
- package/docs/lib_factory_model_find-record.js.html +85 -0
- package/docs/lib_factory_model_get-record.js.html +55 -0
- package/docs/lib_factory_model_helper.js.html +579 -0
- package/docs/lib_factory_model_remove-record.js.html +47 -0
- package/docs/lib_factory_model_sanitize-body.js.html +60 -0
- package/docs/lib_factory_model_sanitize-fixture.js.html +59 -0
- package/docs/lib_factory_model_sanitize-record.js.html +73 -0
- package/docs/lib_factory_model_update-record.js.html +61 -0
- package/docs/lib_factory_model_upsert-record.js.html +74 -0
- package/docs/{method_validate.js.html → lib_factory_model_validate.js.html} +109 -73
- package/docs/lib_helper.js.html +466 -0
- package/docs/module-Helper.html +3 -0
- package/docs/module-Helper_Model.html +3 -0
- package/docs/module-Hook.html +15 -0
- package/docs/scripts/core.js +477 -476
- package/docs/scripts/resize.js +36 -36
- package/docs/scripts/search.js +105 -105
- package/docs/scripts/third-party/fuse.js +1 -1
- package/docs/scripts/third-party/hljs-line-num-original.js +285 -282
- package/docs/scripts/third-party/hljs-line-num.js +1 -1
- package/docs/scripts/third-party/hljs-original.js +1202 -1195
- package/docs/scripts/third-party/hljs.js +1 -1
- package/docs/scripts/third-party/popper.js +1 -1
- package/docs/scripts/third-party/tippy.js +1 -1
- package/docs/scripts/third-party/tocbot.js +509 -508
- package/docs/static/home.md +3 -1
- package/extend/bajo/hook-docs.js +238 -0
- package/extend/bajo/intl/en-US.json +9 -9
- package/extend/bajo/intl/id.json +9 -9
- package/extend/bajoCli/applet/rebuild-model.js +2 -2
- package/extend/dobo/{driver → adapter}/memory.js +6 -6
- package/extend/dobo/feature/immutable.js +2 -2
- package/extend/dobo/feature/removed-at.js +1 -1
- package/index.js +33 -30
- package/lib/factory/action.js +145 -18
- package/lib/factory/adapter.js +1054 -0
- package/lib/factory/connection.js +46 -22
- package/lib/factory/feature.js +23 -3
- package/lib/factory/model/build.js +11 -2
- package/lib/factory/model/bulk-create-record.js +2 -2
- package/lib/factory/model/clear-record.js +13 -3
- package/lib/factory/model/count-record.js +13 -2
- package/lib/factory/model/create-aggregate.js +2 -2
- package/lib/factory/model/create-attachment.js +1 -1
- package/lib/factory/model/create-histogram.js +2 -2
- package/lib/factory/model/create-record.js +15 -2
- package/lib/factory/model/drop.js +12 -2
- package/lib/factory/model/exists.js +10 -6
- package/lib/factory/model/find-all-record.js +14 -3
- package/lib/factory/model/find-attachment.js +1 -1
- package/lib/factory/model/find-one-record.js +13 -1
- package/lib/factory/model/find-record.js +17 -53
- package/lib/factory/model/get-record.js +11 -39
- package/lib/factory/model/{_util.js → helper.js} +176 -16
- package/lib/factory/model/remove-attachment.js +1 -1
- package/lib/factory/model/remove-record.js +11 -28
- package/lib/factory/model/sanitize-body.js +14 -12
- package/lib/factory/model/sanitize-fixture.js +17 -4
- package/lib/factory/model/sanitize-record.js +9 -6
- package/lib/factory/model/transaction.js +2 -2
- package/lib/factory/model/update-record.js +12 -40
- package/lib/factory/model/upsert-record.js +13 -42
- package/lib/factory/model/validate.js +47 -14
- package/lib/factory/model.js +301 -23
- package/lib/{collect-models.js → helper.js} +463 -364
- package/package.json +1 -1
- package/wiki/CHANGES.md +17 -7
- package/wiki/ECOSYSTEM.md +7 -7
- package/wiki/GETTING-STARTED.md +3 -3
- package/wiki/QUERY-LANGUAGE.md +1 -1
- package/docs/lib_collect-connections.js.html +0 -39
- package/docs/lib_collect-drivers.js.html +0 -52
- package/docs/lib_collect-features.js.html +0 -36
- package/docs/lib_collect-schemas.js.html +0 -94
- package/docs/lib_index.js.html +0 -6
- package/docs/method_model_create.js.html +0 -35
- package/docs/method_model_drop.js.html +0 -34
- package/docs/method_model_exists.js.html +0 -40
- package/docs/method_record_count.js.html +0 -69
- package/docs/method_record_create.js.html +0 -114
- package/docs/method_record_find-all.js.html +0 -44
- package/docs/method_record_find-one.js.html +0 -73
- package/docs/method_record_find.js.html +0 -118
- package/docs/method_record_get.js.html +0 -92
- package/docs/method_record_remove.js.html +0 -75
- package/docs/method_record_update.js.html +0 -107
- package/docs/method_record_upsert.js.html +0 -54
- package/docs/method_sanitize_body.js.html +0 -88
- package/docs/method_sanitize_date.js.html +0 -30
- package/docs/method_sanitize_id.js.html +0 -20
- package/docs/module-Lib.html +0 -3
- package/lib/collect-connections.js +0 -56
- package/lib/collect-drivers.js +0 -35
- package/lib/collect-features.js +0 -40
- package/lib/factory/driver.js +0 -574
- package/lib/factory/model/sanitize-id.js +0 -7
- package/lib/index.js +0 -3
package/.jsdoc.conf.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"display-module-header": true,
|
|
13
13
|
"title": "Dobo API",
|
|
14
14
|
"homepageTitle": "Dobo API",
|
|
15
|
-
"sections": ["Classes", "Events", "Modules", "Global"],
|
|
15
|
+
"sections": ["Classes", "Events", "Modules", "Externals", "Global"],
|
|
16
16
|
"menu": [{
|
|
17
17
|
"title": "NPM",
|
|
18
18
|
"link": "https://www.npmjs.com/package/dobo"
|
package/docs/Dobo.html
CHANGED
|
@@ -1,26 +1,3 @@
|
|
|
1
1
|
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Class: Dobo</title><!--[if lt IE 9]>
|
|
2
2
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
-
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="light"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Lib.html">Lib</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#TPropType">TPropType</a></div><div class="sidebar-section-children"><a href="global.html#TRecordCountOptions">TRecordCountOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordCreateOptions">TRecordCreateOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFilter">TRecordFilter</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFindOptions">TRecordFindOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFindResult">TRecordFindResult</a></div><div class="sidebar-section-children"><a href="global.html#TRecordGetOptions">TRecordGetOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordGetResult">TRecordGetResult</a></div><div class="sidebar-section-children"><a href="global.html#TRecordPagination">TRecordPagination</a></div><div class="sidebar-section-children"><a href="global.html#TRecordRemoveOptions">TRecordRemoveOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordSort">TRecordSort</a></div><div class="sidebar-section-children"><a href="global.html#TRecordSortKey">TRecordSortKey</a></div><div class="sidebar-section-children"><a href="global.html#TRecordUpdateOptions">TRecordUpdateOptions</a></div><div class="sidebar-section-children"><a href="global.html#TValidator">TValidator</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorBoolean">TValidatorBoolean</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorDate">TValidatorDate</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorNumber">TValidatorNumber</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorString">TValidatorString</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorTimestamp">TValidatorTimestamp</a></div><div class="sidebar-section-children"><a href="global.html#factory">factory</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="Dobo-title" class="has-anchor">Dobo</h1><div class="class-description"><p>Dobo Database Framework for <a href="https://github.com/ardhi/bajo">Bajo</a>.</p><p>See ecosystem for available drivers & tools</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="Dobo"><span class="type-signature"></span>new Dobo<span class="signature">()</span></h3><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line127">line 127</a></li></ul></dd></div></dl></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="connections"><span class="type-signature"></span>connections<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line197">line 197</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="drivers"><span class="type-signature"></span>drivers<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line192">line 192</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="features"><span class="type-signature"></span>features<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line202">line 202</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="schemas"><span class="type-signature"></span>schemas<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line207">line 207</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".aggregateTypes"><span class="type-signature">(static, constant) </span>aggregateTypes<span class="type-signature"> :Array.<string></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<string></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">['count', 'avg', 'min', 'max', 'sum']</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line140">line 140</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".alias"><span class="type-signature">(static, constant) </span>alias<span class="type-signature"> :string</span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">string</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">'db'</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line133">line 133</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".propType"><span class="type-signature">(static, constant) </span>propType<span class="type-signature"> :<a href="global.html#TPropType">TPropType</a></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type"><a href="global.html#TPropType">TPropType</a></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line145">line 145</a></li></ul></dd></div></dl><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="init"><span class="type-signature">(async) </span>init<span class="signature">()</span></h3><div class="description"><p>Initialize plugin and performing the following tasks:</p><ul><li><a href="module-Lib.html#.collectDrivers">Collecting all drivers</a></li><li><a href="module-Lib.html#.collectConnections">Collecting all connections</a></li><li><a href="module-Lib.html#.collectFeatures">Collecting all features</a></li><li><a href="module-Lib.html#.collectSchemas">Collecting all schemas</a></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line219">line 219</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="modelCreate"><span class="type-signature">(async) </span>modelCreate<span class="signature">(name, options<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Create a new model:</p><ul><li>read corresponding schema</li><li>attempt to create table/database/collection accordingly</li></ul></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_model_create.js.html">method/model/create.js</a>, <a href="method_model_create.js.html#line3">line 3</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="modelDrop"><span class="type-signature">(async) </span>modelDrop<span class="signature">(name, options<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Drop database model</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_model_drop.js.html">method/model/drop.js</a>, <a href="method_model_drop.js.html#line3">line 3</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="modelExists"><span class="type-signature">(async) </span>modelExists<span class="signature">(name, thrown<span class="signature-attributes">opt</span>, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {boolean}</span></h3><div class="description"><p>Check if model exists already</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>thrown</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"><p>If <code>true</code> throw error if not exists instead of just silent</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_model_exists.js.html">method/model/exists.js</a>, <a href="method_model_exists.js.html#line5">line 5</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">boolean</span></dd></dl></div><h3 class="name has-anchor" id="pickRecord"><span class="type-signature">(async) </span>pickRecord<span class="signature">(options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h3><div class="description"><p>Pick only fields defined from a record</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p><h6>Properties</h6><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>record</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Record to pick fields from</p></td></tr><tr><td class="name"><code>fields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Array of field names to be picked</p></td></tr><tr><td class="name"><code>schema</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Associated record's schema</p></td></tr><tr><td class="name"><code>hidden</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"><p>Additional fields to be hidden in addition the one defined in schema</p></td></tr><tr><td class="name"><code>forceNoHidden</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"><p>Force ALL fields to be picked, thus ignoring hidden fields</p></td></tr></tbody></table></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line279">line 279</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="prepPagination"><span class="type-signature">(async) </span>prepPagination<span class="signature">(filter<span class="signature-attributes">opt</span>, schema, options)</span><span class="type-signature"> → {<a href="global.html#TRecordPagination">TRecordPagination</a>}</span></h3><div class="description"><p>Prepare records pagination:</p><ul><li>making sure records limit is obeyed</li><li>making sure page is a positive value</li><li>if skip is given, recalculate limit to use skip instead of page number</li><li>Build sort info</li></ul></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Filter object</p></td></tr><tr><td class="name"><code>schema</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's schema</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Options</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line329">line 329</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="global.html#TRecordPagination">TRecordPagination</a></span></dd></dl></div><h3 class="name has-anchor" id="recordCount"><span class="type-signature">(async) </span>recordCount<span class="signature">(name, filter<span class="signature-attributes">opt</span>, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {TRecordCountResult|number}</span></h3><div class="description"><p>Return the number of records found by given filter</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordFilter">TRecordFilter</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Filter object</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordCountOptions">TRecordCountOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_count.js.html">method/record/count.js</a>, <a href="method_record_count.js.html#line13">line 13</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return <code>number</code> of records if <code>options.dataOnly</code> is set. TRecordCountResult otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">TRecordCountResult</span> |<wbr> <span class="param-type">number</span></dd></dl></div><h3 class="name has-anchor" id="recordCreate"><span class="type-signature">(async) </span>recordCreate<span class="signature">(name, body, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {TRecordCreateResult|Object}</span></h3><div class="description"><p>Create a new record</p><p>Example:</p><pre class="prettyprint source lang-javascript"><code>const { recordCreate } = this.app.dobo
|
|
4
|
-
const { body } = {
|
|
5
|
-
id: 'ID',
|
|
6
|
-
name: 'Indonesia',
|
|
7
|
-
iso3: 'IDN'
|
|
8
|
-
}
|
|
9
|
-
const result = await recordCreate('CdbCountry', body)
|
|
10
|
-
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Data to be saved</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordCreateOptions">TRecordCreateOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_create.js.html">method/record/create.js</a>, <a href="method_record_create.js.html#line25">line 25</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Returns newly created record if <code>options.dataOnly</code> is set. TRecordCreateResult otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">TRecordCreateResult</span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="recordFind"><span class="type-signature">(async) </span>recordFind<span class="signature">(name, filter<span class="signature-attributes">opt</span>, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="global.html#TRecordFindResult">TRecordFindResult</a>|Array.<Object>}</span></h3><div class="description"><p>Find records by model's name and given filter</p><p>Example: find records from model <strong>CdbCountry</strong> where its id is 'ID' or 'MY', sorted by <code>name</code> in ascending order and return only its <code>id</code>, <code>name</code> and <code>iso3</code></p><pre class="prettyprint source lang-javascript"><code>const { recordFind } = this.app.dobo
|
|
11
|
-
const query = { id: { $in: ['ID', 'MY'] } }
|
|
12
|
-
const sort = { name: 1 }
|
|
13
|
-
const fields = ['id', 'name', 'iso3']
|
|
14
|
-
const result = await recordFind('CdbCountry', { query, sort }, { fields })
|
|
15
|
-
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Filter object</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordFindOptions">TRecordFindOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_find.js.html">method/record/find.js</a>, <a href="method_record_find.js.html#line45">line 45</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return <code>array</code> of records if <code>options.dataOnly</code> is set. <a href="global.html#TRecordFindResult">TRecordFindResult</a> otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="global.html#TRecordFindResult">TRecordFindResult</a></span> |<wbr> <span class="param-type">Array.<Object></span></dd></dl></div><h3 class="name has-anchor" id="recordFindAll"><span class="type-signature">(async) </span>recordFindAll<span class="signature">(name, filter<span class="signature-attributes">opt</span>, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="global.html#TRecordFindResult">TRecordFindResult</a>|Array.<Object>}</span></h3><div class="description"><p>Find all records by model's name and given filter.</p><p>The total number of records returned is limited by <code>hardLimit</code> value set in config file.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Filter object</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordFindOptions">TRecordFindOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_find-all.js.html">method/record/find-all.js</a>, <a href="method_record_find-all.js.html#line1">line 1</a></li></ul></dd></div><div class="details-item-container"><dt class="tag-see bold">See</dt><dd class="tag-see"><ul><li><a href="Dobo.html#recordFind">Dobo#recordFind</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return <code>array</code> of records if <code>options.dataOnly</code> is set. <a href="global.html#TRecordFindResult">TRecordFindResult</a> otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="global.html#TRecordFindResult">TRecordFindResult</a></span> |<wbr> <span class="param-type">Array.<Object></span></dd></dl></div><h3 class="name has-anchor" id="recordFindOne"><span class="type-signature">(async) </span>recordFindOne<span class="signature">(name, filter<span class="signature-attributes">opt</span>, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="global.html#TRecordGetResult">TRecordGetResult</a>|Object}</span></h3><div class="description"><p>Find the first record by model's name and given filter.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>filter</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Filter object</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordFindOptions">TRecordFindOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_find-one.js.html">method/record/find-one.js</a>, <a href="method_record_find-one.js.html#line5">line 5</a></li></ul></dd></div><div class="details-item-container"><dt class="tag-see bold">See</dt><dd class="tag-see"><ul><li><a href="Dobo.html#recordFind">Dobo#recordFind</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return record's <code>object</code> if <code>options.dataOnly</code> is set. <a href="global.html#TRecordGetResult">TRecordGetResult</a> otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="global.html#TRecordGetResult">TRecordGetResult</a></span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="recordGet"><span class="type-signature">(async) </span>recordGet<span class="signature">(name, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {<a href="global.html#TRecordGetResult">TRecordGetResult</a>|Object}</span></h3><div class="description"><p>Get record by model's name and record ID</p><p>Example:</p><pre class="prettyprint source lang-javascript"><code>const { recordGet } = this.app.dobo
|
|
16
|
-
const fields = ['id', 'name', 'iso3']
|
|
17
|
-
const result = await recordGet('CdbCountry', 'ID', { fields })
|
|
18
|
-
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code></code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Record's ID</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordGetOptions">TRecordGetOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_get.js.html">method/record/get.js</a>, <a href="method_record_get.js.html#line26">line 26</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return record's <code>object</code> if <code>options.dataOnly</code> is set. <a href="global.html#TRecordGetResult">TRecordGetResult</a> otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="global.html#TRecordGetResult">TRecordGetResult</a></span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="recordRemove"><span class="type-signature">(async) </span>recordRemove<span class="signature">(name, id, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {TRecordRemoveResult|Object}</span></h3><div class="description"><p>Remove existing record by it's ID. All attachments bound to this record will also be removed forever.</p><p>Example:</p><pre class="prettyprint source lang-javascript"><code>const { recordRemove } = this.app.dobo
|
|
19
|
-
const result = await recordRemove('CdbCountry', 'ID')
|
|
20
|
-
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Record's ID</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordRemoveOptions">TRecordRemoveOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_remove.js.html">method/record/remove.js</a>, <a href="method_record_remove.js.html#line17">line 17</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Return the removed record if <code>options.dataOnly</code> is set. TRecordRemoveResult otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">TRecordRemoveResult</span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="recordUpdate"><span class="type-signature">(async) </span>recordUpdate<span class="signature">(name, id, body, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {TRecordUpdateResult|Object}</span></h3><div class="description"><p>Update a record by it's ID and body payload</p><p>Example:</p><pre class="prettyprint source lang-javascript"><code>const { recordUpdate } = this.app.dobo
|
|
21
|
-
const { body } = {
|
|
22
|
-
name: 'Republic of Indonesia',
|
|
23
|
-
phoneCode: '+62'
|
|
24
|
-
}
|
|
25
|
-
const result = await recordUpdate('CdbCountry', 'ID', body)
|
|
26
|
-
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Record's ID</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Body payload</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type"><a href="global.html#TRecordUpdateOptions">TRecordUpdateOptions</a></span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_update.js.html">method/record/update.js</a>, <a href="method_record_update.js.html#line25">line 25</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Returns updated record if <code>options.dataOnly</code> is set. TRecordUpdateResult otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">TRecordUpdateResult</span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="recordUpsert"><span class="type-signature">(async) </span>recordUpsert<span class="signature">(name, body, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {TRecordUpdateResult|TRecordCreateResult|Object}</span></h3><div class="description"><p>Update a record by payload's ID. If no record is found by given ID, a new one will be created instead.</p><p>Missing ID in payload always results a new record creation.</p><pre class="prettyprint source"><code></code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>name</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Model's name</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Body payload</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">TRecordUpsertOptions</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_record_upsert.js.html">method/record/upsert.js</a>, <a href="method_record_upsert.js.html#line1">line 1</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>Returns updated/newly created record if <code>options.dataOnly</code> is set. TRecordUpdateResult or TRecordCreateResult otherwise</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">TRecordUpdateResult</span> |<wbr> <span class="param-type">TRecordCreateResult</span> |<wbr> <span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id="start"><span class="type-signature">(async) </span>start<span class="signature">(conns<span class="signature-attributes">opt</span>, noRebuild<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Start plugin</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>conns</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">all</td><td class="description last"><p>Which connections should be run on start</p></td></tr><tr><td class="name"><code>noRebuild</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"><p>Set <code>true</code> to ALWAYS rebuild model on start. Yes, only set it to <code>true</code> if you REALLY know what you're doing!!!</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line250">line 250</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".sanitizeBody"><span class="type-signature">(async, static) </span>sanitizeBody<span class="signature">(options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h3><div class="description"><p>Sanitize payload body against schema</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><h6>Properties</h6><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr><tr><td class="name"><code>schema</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"></td></tr><tr><td class="name"><code>partial</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>strict</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>extFields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr></tbody></table></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_sanitize_body.js.html">method/sanitize/body.js</a>, <a href="method_sanitize_body.js.html#line16">line 16</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">Object</span></dd></dl></div><h3 class="name has-anchor" id=".sanitizeDate"><span class="type-signature">(static) </span>sanitizeDate<span class="signature">(value, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {string|Date}</span></h3><div class="description"><p>Sanitize value as a date/time value. Parse/format string using <a href="https://day.js.org/docs/en/display/format">dayjs format</a></p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">number</span> |<wbr> <span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Value to sanitize</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p><h6>Properties</h6><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>silent</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"><p>If <code>true</code> (default) and value isn't valid, returns empty</p></td></tr><tr><td class="name"><code>inputFormat</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"><p>If provided, parse value using this option</p></td></tr><tr><td class="name"><code>outputFormat</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"><p>If not provided or <code>native</code>, returns Javascript Date. Otherwise returns formatted date/time string</p></td></tr></tbody></table></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_sanitize_date.js.html">method/sanitize/date.js</a>, <a href="method_sanitize_date.js.html#line14">line 14</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">string</span> |<wbr> <span class="param-type">Date</span></dd></dl></div><h3 class="name has-anchor" id=".sanitizeId"><span class="type-signature">(static) </span>sanitizeId<span class="signature">(id, schema)</span><span class="type-signature"> → {number|string}</span></h3><div class="description"><p>Sanitize id according it's schema</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>id</code></td><td class="type"><span class="param-type">number</span> |<wbr> <span class="param-type">string</span></td><td class="description last"></td></tr><tr><td class="name"><code>schema</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_sanitize_id.js.html">method/sanitize/id.js</a>, <a href="method_sanitize_id.js.html#line11">line 11</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">number</span> |<wbr> <span class="param-type">string</span></dd></dl></div><h3 class="name has-anchor" id=".validate"><span class="type-signature">(async, static) </span>validate<span class="signature">(value, joiSchema, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Object}</span></h3><div class="description"><p>Validate value against JOI schema</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>value to validate</p></td></tr><tr><td class="name"><code>joiSchema</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>JOI schema</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p><h6>Properties</h6><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>ns</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="default">dobo</td><td class="description last"><p>Scope's namespace</p></td></tr><tr><td class="name"><code>fields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>extFields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>params</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Validation parameters. See config and <a href="https://joi.dev/api/?v=17.13.3#anyvalidateasyncvalue-options">JOI validate's options</a></p></td></tr></tbody></table></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="method_validate.js.html">method/validate.js</a>, <a href="method_validate.js.html#line217">line 217</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">Object</span></dd></dl></div></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Lib.html">Lib</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#TPropType">TPropType</a></div><div class="sidebar-section-children"><a href="global.html#TRecordCountOptions">TRecordCountOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordCreateOptions">TRecordCreateOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFilter">TRecordFilter</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFindOptions">TRecordFindOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordFindResult">TRecordFindResult</a></div><div class="sidebar-section-children"><a href="global.html#TRecordGetOptions">TRecordGetOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordGetResult">TRecordGetResult</a></div><div class="sidebar-section-children"><a href="global.html#TRecordPagination">TRecordPagination</a></div><div class="sidebar-section-children"><a href="global.html#TRecordRemoveOptions">TRecordRemoveOptions</a></div><div class="sidebar-section-children"><a href="global.html#TRecordSort">TRecordSort</a></div><div class="sidebar-section-children"><a href="global.html#TRecordSortKey">TRecordSortKey</a></div><div class="sidebar-section-children"><a href="global.html#TRecordUpdateOptions">TRecordUpdateOptions</a></div><div class="sidebar-section-children"><a href="global.html#TValidator">TValidator</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorBoolean">TValidatorBoolean</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorDate">TValidatorDate</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorNumber">TValidatorNumber</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorString">TValidatorString</a></div><div class="sidebar-section-children"><a href="global.html#TValidatorTimestamp">TValidatorTimestamp</a></div><div class="sidebar-section-children"><a href="global.html#factory">factory</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
|
|
3
|
+
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="light"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="Dobo-title" class="has-anchor">Dobo</h1><div class="class-description"><p>Dobo Database Framework for <a href="https://github.com/ardhi/bajo">Bajo</a>.</p><p>See ecosystem for available adapters & tools</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="Dobo"><span class="type-signature"></span>new Dobo<span class="signature">()</span></h3><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line109">line 109</a></li></ul></dd></div></dl></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="adapters"><span class="type-signature"></span>adapters<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line180">line 180</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="connections"><span class="type-signature"></span>connections<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line185">line 185</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="features"><span class="type-signature"></span>features<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line190">line 190</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getAdapter"><span class="type-signature"></span>getAdapter<span class="type-signature"></span></h3><div class="description"><p>Get adapter by name. It returns the first adapter named after "{name}"</p><p>Also support NsPath format for those who load the same named adapter but from different provider/plugin.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line289">line 289</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getAllPropertyKeys"><span class="type-signature"></span>getAllPropertyKeys<span class="type-signature"></span></h3><div class="description"><p>Get all allowed property keys</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line219">line 219</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getConnection"><span class="type-signature"></span>getConnection<span class="type-signature"></span></h3><div class="description"><p>Get connection by name. It returns the first connection named after "{name}"</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line274">line 274</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getFeature"><span class="type-signature"></span>getFeature<span class="type-signature"></span></h3><div class="description"><p>Get feature by name. It returns the first adapter named after "{name}"</p><p>Also support NsPath format for those who load the same named adapter but from different provider/plugin.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line314">line 314</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getModel"><span class="type-signature"></span>getModel<span class="type-signature"></span></h3><div class="description"><p>Get model by name</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line329">line 329</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getModelsByConnection"><span class="type-signature"></span>getModelsByConnection<span class="type-signature"></span></h3><div class="description"><p>Get all models that bound to connection <code>name</code></p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line343">line 343</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getPropertyKeysByType"><span class="type-signature"></span>getPropertyKeysByType<span class="type-signature"></span></h3><div class="description"><p>Get allowed property keys by field type</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line204">line 204</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="models"><span class="type-signature"></span>models<span class="type-signature"> :Array.<Object></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<Object></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line195">line 195</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".aggregateTypes"><span class="type-signature">(static, constant) </span>aggregateTypes<span class="type-signature"> :Array.<string></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<string></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">['count', 'avg', 'min', 'max', 'sum']</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line115">line 115</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".histogramTypes"><span class="type-signature">(static, constant) </span>histogramTypes<span class="type-signature"> :Array.<string></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<string></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">['daily', 'monthly', 'annually']</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line129">line 129</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".idTypes"><span class="type-signature">(static, constant) </span>idTypes<span class="type-signature"> :Array.<string></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<string></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">['string', 'integer', 'smallint']</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line122">line 122</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".indexTypes"><span class="type-signature">(static, constant) </span>indexTypes<span class="type-signature"> :Array.<string></span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Array.<string></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">['index', 'unique', 'primary', 'fulltext']</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line142">line 142</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".propertyType"><span class="type-signature">(static, constant) </span>propertyType<span class="type-signature"> :TPropertyType</span></h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">TPropertyType</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line135">line 135</a></li></ul></dd></div></dl><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="init"><span class="type-signature">(async) </span>init<span class="signature">()</span></h3><div class="description"><p>Initialize plugin and performing the following tasks:</p><ul><li>Collecting all adapters</li><li>Collecting all connections</li><li>Collecting all features</li><li>Collecting all models</li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line238">line 238</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="start"><span class="type-signature">(async) </span>start<span class="signature">(conns<span class="signature-attributes">opt</span>, noRebuild<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Start plugin</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>conns</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">all</td><td class="description last"><p>Which connections should be run on start</p></td></tr><tr><td class="name"><code>noRebuild</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"><p>Set <code>false</code> to not rebuild model on start. Yes, only set it to <code>false</code> if you REALLY know what you're doing!!!</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line256">line 256</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".sanitizeDate"><span class="type-signature">(static) </span>sanitizeDate<span class="signature">(value, options<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {string|Date}</span></h3><div class="description"><p>Sanitize value as a date/time value. Parse/format string using <a href="https://day.js.org/docs/en/display/format">dayjs format</a></p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">number</span> |<wbr> <span class="param-type">string</span></td><td class="attributes"></td><td class="default"></td><td class="description last"><p>Value to sanitize</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="default">{}</td><td class="description last"><p>Options object</p><h6>Properties</h6><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>silent</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"><p>If <code>true</code> (default) and value isn't valid, returns empty</p></td></tr><tr><td class="name"><code>inputFormat</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"><p>If provided, parse value using this option</p></td></tr><tr><td class="name"><code>outputFormat</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"><p>If not provided or <code>native</code>, returns Javascript Date. Otherwise returns formatted date/time string</p></td></tr></tbody></table></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="index.js.html">index.js</a>, <a href="index.js.html#line371">line 371</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">string</span> |<wbr> <span class="param-type">Date</span></dd></dl></div></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Class: DoboAction</title><!--[if lt IE 9]>
|
|
2
|
+
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
3
|
+
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="light"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="DoboAction-title" class="has-anchor">DoboAction</h1><div class="class-description"><p>Action class enables you to call model's method with all parameters and options in chainable methods in addition of the normal call.</p><p>Action class is created by calling model method without any parameter. The resulted class instance can be used to call model's method with all parameters and options in chainable methods.</p><p>Action class can also be created by calling <code>model.action()</code> method, with or without parameters. Please see the example below:</p><p>You always need to call the <code>run()</code> method as the last step. The <code>run()</code> method will return the result of the model's method call.</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="DoboAction"><span class="type-signature"></span>new DoboAction<span class="signature">()</span></h3><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line157">line 157</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>// method 1:
|
|
4
|
+
const action = await model.getRecord() // Important: no parameter passed
|
|
5
|
+
const result = action.id('rec-id').noHook().dataOnly(false).run()
|
|
6
|
+
// method 2:
|
|
7
|
+
const result = await model.action().getRecord('rec-id').noHook().dataOnly(false).run()
|
|
8
|
+
// method 3:
|
|
9
|
+
const result = await model.action('getRecord').id('rec-id').noHook().dataOnly(false).run()
|
|
10
|
+
// method 4:
|
|
11
|
+
const result = await model.action('getRecord', 'rec-id').noHook().dataOnly(false).run()
|
|
12
|
+
// Instead of chaining options as methods, you can also pass options object as the parameter to the run() method
|
|
13
|
+
const result = await model.action('getRecord', 'rec-id').run({ noHook: true, dataOnly: false })</code></pre></div></div></div><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="_setArgs"><span class="type-signature"></span>_setArgs<span class="signature">(method, args)</span><span class="type-signature"> → {void}</span></h3><div class="description"><p>Internal method to set the arguments to the instance properties based on the method name and the arguments passed.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>method</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The name of the method being called</p></td></tr><tr><td class="name"><code>args</code></td><td class="type"><span class="param-type">Array</span></td><td class="description last"><p>The arguments passed to the method</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line191">line 191</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">void</span></dd></dl></div><h3 class="name has-anchor" id="body"><span class="type-signature"></span>body<span class="signature">(value)</span><span class="type-signature"> → {<a href="DoboAction.html">DoboAction</a>}</span></h3><div class="description"><p>Set the body for the corresponding record. You need this for <code>createRecord</code>, <code>updateRecord</code> or <code>upsertRecord</code> operations. This method is chainable.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The body value to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line217">line 217</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The current instance for chaining</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="DoboAction.html">DoboAction</a></span></dd></dl></div><h3 class="name has-anchor" id="dispose"><span class="type-signature">(async) </span>dispose<span class="signature">()</span><span class="type-signature"> → {Promise.<void>}</span></h3><div class="description"><p>Dispose the instance and clean up resources.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line277">line 277</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">Promise.<void></span></dd></dl></div><h3 class="name has-anchor" id="filter"><span class="type-signature"></span>filter<span class="signature">(value)</span><span class="type-signature"> → {<a href="DoboAction.html">DoboAction</a>}</span></h3><div class="description"><p>Set the filter for the corresponding record. You optionally need this for <code>findRecord</code>, <code>findOneRecord</code> or <code>findAllRecord</code> operations. This method is chainable.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">object</span></td><td class="description last"><p>The filter value to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line229">line 229</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The current instance for chaining</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="DoboAction.html">DoboAction</a></span></dd></dl></div><h3 class="name has-anchor" id="id"><span class="type-signature"></span>id<span class="signature">(value)</span><span class="type-signature"> → {<a href="DoboAction.html">DoboAction</a>}</span></h3><div class="description"><p>Set the ID for the corresponding record. You need this for <code>updateRecord</code> or <code>removeRecord</code> operations. This method is chainable.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">number</span></td><td class="description last"><p>The ID value to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line205">line 205</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The current instance for chaining</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="DoboAction.html">DoboAction</a></span></dd></dl></div><h3 class="name has-anchor" id="options"><span class="type-signature"></span>options<span class="signature">(value)</span><span class="type-signature"> → {<a href="DoboAction.html">DoboAction</a>}</span></h3><div class="description"><p>Set the options for the corresponding method. This method is chainable.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type"><a href="DoboAction.html#.TOptions">DoboAction.<wbr>TOptions</a></span></td><td class="description last"><p>The options to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line250">line 250</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The current instance for chaining</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type"><a href="DoboAction.html">DoboAction</a></span></dd></dl></div><h3 class="name has-anchor" id="run"><span class="type-signature">(async) </span>run<span class="signature">(value)</span><span class="type-signature"> → {Promise.<*>}</span></h3><div class="description"><p>Execute the corresponding method with the set arguments and options. This method is chainable.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>value</code></td><td class="type"><span class="param-type"><a href="DoboAction.html#.TOptions">DoboAction.<wbr>TOptions</a></span></td><td class="description last"><p>If set, it will override the options set by the <code>options()</code> method. This is useful if you want to set options at the last step.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line264">line 264</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>The result of the method execution</p></div><dl class="param-type"><dt>Type: </dt><dd><span class="param-type">Promise.<*></span></dd></dl></div><h2 id="type-definitions" class="subsection-title has-anchor">Type Definitions</h2><h3 class="name has-anchor" id=".TMethods">TMethods</h3><div class="description"><p>Dobo model's chainable methods. Only the keys listed here are allowed to be called in chainable methods. The values are the only allowed arguments for the corresponding chainable methods.</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>createRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['body']</td><td class="description last"></td></tr><tr><td class="name"><code>updateRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id', 'body']</td><td class="description last"></td></tr><tr><td class="name"><code>upsertRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['body']</td><td class="description last"></td></tr><tr><td class="name"><code>removeRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id']</td><td class="description last"></td></tr><tr><td class="name"><code>getRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id']</td><td class="description last"></td></tr><tr><td class="name"><code>findRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['filter']</td><td class="description last"></td></tr><tr><td class="name"><code>findOneRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['filter']</td><td class="description last"></td></tr><tr><td class="name"><code>findAllRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['filter']</td><td class="description last"></td></tr><tr><td class="name"><code>findAllRecords</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['filter']</td><td class="description last"><p>Alias of <code>findAllRecord</code></p></td></tr><tr><td class="name"><code>countRecord</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['params']</td><td class="description last"></td></tr><tr><td class="name"><code>createAggregate</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['params']</td><td class="description last"></td></tr><tr><td class="name"><code>createHistogram</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['params']</td><td class="description last"></td></tr><tr><td class="name"><code>createAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id']</td><td class="description last"></td></tr><tr><td class="name"><code>findAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id']</td><td class="description last"></td></tr><tr><td class="name"><code>getAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id', 'field', 'file']</td><td class="description last"></td></tr><tr><td class="name"><code>listAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['params']</td><td class="description last"></td></tr><tr><td class="name"><code>removeAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id', 'field', 'file']</td><td class="description last"></td></tr><tr><td class="name"><code>updateAttachment</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="default">['id']</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line1">line 1</a></li></ul></dd></div></dl><h3 class="name has-anchor" id=".TOptions">TOptions</h3><div class="description"><p>Allowed options for Dobo model's chainable methods. Only the keys listed here are allowed to be called in chainable methods. The values are the default values for the corresponding options.</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th>Default</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>truncateString</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>noResult</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>noBodySanitizer</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>noResultSanitizer</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>noValidation</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>dataOnly</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>noHook</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>noModelHook</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>noDynHook</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>extFields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>fields</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>noFlash</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">false</td><td class="description last"></td></tr><tr><td class="name"><code>hidden</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>refs</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>types</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>type</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>group</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>aggregates</code></td><td class="type"><span class="param-type">Array</span></td><td class="attributes"><optional><br></td><td class="default">[]</td><td class="description last"></td></tr><tr><td class="name"><code>field</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>queryHandler</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>count</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>noCache</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>partial</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>mimeType</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>fullPath</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>stats</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>dirOnly</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr><tr><td class="name"><code>setField</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>setFile</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>source</code></td><td class="type"><span class="param-type">string</span> |<wbr> <span class="param-type">undefined</span></td><td class="attributes"><optional><br></td><td class="default"></td><td class="description last"></td></tr><tr><td class="name"><code>uriEncoded</code></td><td class="type"><span class="param-type">boolean</span></td><td class="attributes"><optional><br></td><td class="default">true</td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="lib_factory_action.js.html">lib/factory/action.js</a>, <a href="lib_factory_action.js.html#line47">line 47</a></li></ul></dd></div></dl></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Dobo API</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/dobo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/dobo" target="">Github</a></div><div class="navbar-item"><a id="" href="https://dobo.bajo.app/" target="">Dobo</a></div><div class="navbar-item"><a id="" href="https://bajo.app/" target="">Bajo</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Dobo.html">Dobo</a></div><div class="sidebar-section-children"><a href="DoboAction.html">DoboAction</a></div><div class="sidebar-section-children"><a href="DoboAdapter.html">DoboAdapter</a></div><div class="sidebar-section-children"><a href="DoboConnection.html">DoboConnection</a></div><div class="sidebar-section-children"><a href="DoboFeature.html">DoboFeature</a></div><div class="sidebar-section-children"><a href="DoboModel.html">DoboModel</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-Helper.html">Helper</a></div><div class="sidebar-section-children"><a href="module-Helper_Model.html">Helper/Model</a></div><div class="sidebar-section-children"><a href="module-Hook.html">Hook</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-externals"><div>Externals</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="external-Tools.html">Tools</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#actionFactory">actionFactory</a></div><div class="sidebar-section-children"><a href="global.html#adapterFactory">adapterFactory</a></div><div class="sidebar-section-children"><a href="global.html#connectionFactory">connectionFactory</a></div><div class="sidebar-section-children"><a href="global.html#featureFactory">featureFactory</a></div><div class="sidebar-section-children"><a href="global.html#modelFactory">modelFactory</a></div><div class="sidebar-section-children"><a href="global.html#pluginFactory">pluginFactory</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#dark-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>
|