bajo 2.0.1 → 2.1.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.
Files changed (101) hide show
  1. package/.github/FUNDING.yml +13 -0
  2. package/.github/workflows/repo-lockdown.yml +24 -0
  3. package/.jsdoc.conf.json +7 -6
  4. package/LICENSE +1 -1
  5. package/README.md +50 -18
  6. package/class/app.js +378 -54
  7. package/class/bajo.js +228 -149
  8. package/class/base.js +106 -0
  9. package/class/helper/bajo.js +146 -90
  10. package/class/helper/{plugin.js → base.js} +96 -22
  11. package/class/{base → misc}/err.js +44 -14
  12. package/class/misc/log.js +255 -0
  13. package/class/misc/print.js +264 -0
  14. package/class/plugin.js +120 -68
  15. package/docs/App.html +23 -1
  16. package/docs/Bajo.html +2 -9
  17. package/docs/Base.html +3 -0
  18. package/docs/Err.html +3 -1
  19. package/docs/Log.html +5 -1
  20. package/docs/Plugin.html +1 -1
  21. package/docs/Print.html +1 -1
  22. package/docs/class_app.js.html +378 -56
  23. package/docs/class_bajo.js.html +230 -151
  24. package/docs/class_base.js.html +109 -0
  25. package/docs/class_helper_bajo.js.html +138 -87
  26. package/docs/class_helper_base.js.html +246 -0
  27. package/docs/class_misc_err.js.html +129 -0
  28. package/docs/class_misc_log.js.html +210 -0
  29. package/docs/class_misc_print.js.html +267 -0
  30. package/docs/class_plugin.js.html +122 -70
  31. package/docs/data/search.json +1 -1
  32. package/docs/global.html +4 -1
  33. package/docs/index.html +2 -2
  34. package/docs/index.js.html +35 -0
  35. package/docs/lib_current-loc.js.html +36 -0
  36. package/docs/lib_formats.js.html +8 -8
  37. package/docs/lib_import-module.js.html +59 -0
  38. package/docs/lib_log-levels.js.html +17 -7
  39. package/docs/lib_parse-args-argv.js.html +83 -0
  40. package/docs/lib_parse-env.js.html +53 -0
  41. package/docs/lib_resolve-path.js.html +3 -6
  42. package/docs/lib_shim.js.html +8 -3
  43. package/docs/module-Helper_Bajo.html +3 -0
  44. package/docs/module-Helper_Base.html +3 -0
  45. package/docs/module-Lib.html +15 -0
  46. package/docs/static/home.md +32 -0
  47. package/docs/static/logo-ecosystem.png +0 -0
  48. package/docs/static/logo.png +0 -0
  49. package/extend/bajo/intl/en-US.json +9 -2
  50. package/extend/bajo/intl/id.json +9 -2
  51. package/index.js +22 -2
  52. package/lib/current-loc.js +24 -2
  53. package/lib/formats.js +6 -6
  54. package/lib/import-module.js +29 -0
  55. package/lib/log-levels.js +15 -5
  56. package/lib/parse-args-argv.js +20 -12
  57. package/lib/parse-env.js +18 -7
  58. package/lib/resolve-path.js +1 -4
  59. package/lib/shim.js +6 -1
  60. package/package.json +4 -7
  61. package/wiki/CONFIG.md +36 -0
  62. package/wiki/CONTRIBUTING.md +5 -0
  63. package/wiki/DEV_GUIDE.md +3 -0
  64. package/wiki/ECOSYSTEM.md +93 -0
  65. package/wiki/GETTING-STARTED.md +356 -0
  66. package/wiki/USER-GUIDE.md +256 -0
  67. package/class/base/log.js +0 -205
  68. package/class/base/plugin.js +0 -168
  69. package/class/base/print.js +0 -272
  70. package/docs/BasePlugin.html +0 -5
  71. package/docs/class_base_err.js.html +0 -99
  72. package/docs/class_base_log.js.html +0 -208
  73. package/docs/class_base_plugin.js.html +0 -180
  74. package/docs/class_base_print.js.html +0 -275
  75. package/docs/class_helper_plugin.js.html +0 -172
  76. package/docs/lib_create-method.js.html +0 -42
  77. package/docs/module-class_helper_bajo.html +0 -3
  78. package/docs/module-class_helper_plugin.html +0 -3
  79. package/docs/module-lib_create-method.html +0 -3
  80. package/docs/module-lib_formats.html +0 -3
  81. package/docs/module-lib_log-levels.html +0 -3
  82. package/docs/module-lib_resolve-path.html +0 -3
  83. package/docs/module-lib_shim.html +0 -3
  84. package/docs/tutorial-contribution.html +0 -3
  85. package/docs/tutorial-ecosystem.html +0 -3
  86. package/docs/tutorial-getting-started.html +0 -13
  87. package/docs/tutorial-plugin-dev.html +0 -3
  88. package/docs/tutorial-user-guide.html +0 -3
  89. package/lib/create-method.js +0 -39
  90. package/lib/dayjs.js +0 -8
  91. package/lib/omitted-plugin-keys.js +0 -3
  92. package/lib/read-all-configs.js +0 -19
  93. package/misc-docs/.hook.md +0 -11
  94. package/misc-docs/bitcoin.jpeg +0 -0
  95. package/misc-docs/contribution.md +0 -20
  96. package/misc-docs/ecosystem.md +0 -94
  97. package/misc-docs/getting-started.md +0 -142
  98. package/misc-docs/plugin-dev.md +0 -0
  99. package/misc-docs/toc.json +0 -17
  100. package/misc-docs/user-guide.md +0 -1
  101. /package/docs/{bitcoin.jpeg → static/bitcoin.jpeg} +0 -0
@@ -1,3 +0,0 @@
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>Tutorial: Ecosystem</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">Bajo Framework</a><div class="sidebar-items-container"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</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><h2>Ecosystem</h2></header><article><h1 id="ecosystem">Ecosystem</h1><h2 id="plugins">Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://github.com/ardhi/bajo-cache">bajo-cache</a></td><td>bajoCache</td><td>cache</td><td>General cache service for all bajo plugins</td></tr><tr><td><a href="https://github.com/ardhi/bajo-cli">bajo-cli</a></td><td>bajoCli</td><td>cli</td><td>Command line support &amp; tools</td></tr><tr><td><a href="https://github.com/ardhi/bajo-common-db">bajo-common-db</a></td><td>bajoCommonDb</td><td>cdb</td><td>Common database</td></tr><tr><td><a href="https://github.com/ardhi/bajo-config">bajo-config</a></td><td>bajoConfig</td><td>cfg</td><td>Add YAML &amp; TOML support in config</td></tr><tr><td><a href="https://github.com/ardhi/bajo-cron">bajo-cron</a></td><td>bajoCron</td><td>cron</td><td>Cron support</td></tr><tr><td><a href="https://github.com/ardhi/bajo-extra">bajo-extra</a></td><td>bajoExtra</td><td>extra</td><td>Extra necessary booster!</td></tr><tr><td><a href="https://github.com/ardhi/bajo-logger">bajo-logger</a></td><td>bajoLogger</td><td>log</td><td>Pino logger support</td></tr><tr><td><a href="https://github.com/ardhi/bajo-markdown">bajo-markdown</a></td><td>bajoMarkdown</td><td>md</td><td>Markdown support</td></tr><tr><td><a href="https://github.com/ardhi/bajo-queue">bajo-queue</a></td><td>bajoQueue</td><td>q</td><td>Queue support</td></tr><tr><td><a href="https://github.com/ardhi/bajo-spatial">bajo-spatial</a></td><td>bajoSpatial</td><td>spatial</td><td>Spatial support</td></tr><tr><td><a href="https://github.com/ardhi/bajo-sysinfo">bajo-sysinfo</a></td><td>bajoSysinfo</td><td>si</td><td>System information</td></tr><tr><td><a href="https://github.com/ardhi/bajo-template">bajo-template</a></td><td>bajotemplate</td><td>tpl</td><td>Template System</td></tr></tbody></table><h2 id="dobo-dbms-plugins">Dobo DBMS Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://github.com/ardhi/dobo">dobo</a></td><td>dobo</td><td>db</td><td>DBMS with built-in memory database</td></tr><tr><td><a href="https://github.com/ardhi/dobo-couchdb">dobo-couchdb</a></td><td>doboCouchdb</td><td>dbcouch</td><td>CouchDB driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-elasticsearch">dobo-elasticsearch</a></td><td>doboElasticsearch</td><td>dbes</td><td>Elasticsearch driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-extra">dobo-extra</a></td><td>doboExtra</td><td>dbx</td><td>Bajo DB Extra Tools/Utility</td></tr><tr><td><a href="https://github.com/ardhi/dobo-knex">dobo-knex</a></td><td>doboKnex</td><td>dbknex</td><td>Knex driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-mongodb">dobo-mongodb</a></td><td>doboMongodb</td><td>dbmongo</td><td>MongoDB driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-redis">dobo-redis</a></td><td>doboRedis</td><td>dbredis</td><td>Redis driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-restproxy">dobo-restproxy</a></td><td>doboRestproxy</td><td>dbrpx</td><td>Restproxy driver</td></tr><tr><td><a href="https://github.com/ardhi/dobo-restproxy-jsonserver">dobo-restproxy-jsonserver</a></td><td>doboRestproxyJsonserver</td><td>dbrpxjs</td><td>JsonServer support for doboRestproxy</td></tr><tr><td><a href="https://github.com/ardhi/dobo-restproxy-ndut">dobo-restproxy-ndut</a></td><td>doboRestproxyNdut</td><td>dbrpxndut</td><td>NDUT support for doboRestproxy</td></tr></tbody></table><h2 id="waibu-web-framework-plugins">Waibu Web Framework Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://github.com/ardhi/waibu">waibu</a></td><td>waibu</td><td>w</td><td>Web framework</td></tr><tr><td><a href="https://github.com/ardhi/waibu-admin">waibu-admin</a></td><td>waibuAdmin</td><td>wa</td><td>Waibu Admin module</td></tr><tr><td><a href="https://github.com/ardhi/waibu-alpinejs">waibu-alpinejs</a></td><td>waibuAlpinejs</td><td>walp</td><td>Alpine.js support for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-blu">waibu-blu</a></td><td>waibuBlu</td><td>wblu</td><td>Blu theme</td></tr><tr><td><a href="https://github.com/ardhi/waibu-bootstrap">waibu-bootstrap</a></td><td>waibuBootstrap</td><td>wbs</td><td>Bootstrap support for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-bootstrap-icons">waibu-bootstrap-icons</a></td><td>waibuBootstrapIcons</td><td>wbsi</td><td>Bootstrap Icons support for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-bootswatch">waibu-bootswatch</a></td><td>waibuBootswatch</td><td>wbw</td><td>Bootswatch support for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-db">waibu-db</a></td><td>waibuDb</td><td>wdb</td><td>Database helper</td></tr><tr><td><a href="https://github.com/ardhi/waibu-extra">waibu-extra</a></td><td>waibuExtra</td><td>wx</td><td>Most used 3rd party libs for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-maps">waibu-maps</a></td><td>waibuMaps</td><td>wmaps</td><td>Maps for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-mpa">waibu-mpa</a></td><td>waibuMpa</td><td>wmpa</td><td>Multi pages app for for Waibu</td></tr><tr><td><a href="https://github.com/ardhi/waibu-phosphor">waibu-phosphor</a></td><td>waibuPhosphor</td><td>wpp</td><td>Phosphoricons support for Waibu MPA</td></tr><tr><td><a href="https://github.com/ardhi/waibu-rest-api">waibu-rest-api</a></td><td>waibuRestApi</td><td>wra</td><td>Rest API for Waibu</td></tr><tr><td><a href="https://github.com/ardhi/waibu-static">waibu-static</a></td><td>waibuStatic</td><td>wstatic</td><td>Static asset support for Waibu</td></tr><tr><td><a href="https://github.com/ardhi/waibu-swagger">waibu-swagger</a></td><td>waibuSwagger</td><td>wswagger</td><td>Rest API Documentation for Waibu REST API</td></tr></tbody></table><h2 id="masohi-messaging-plugins">Masohi Messaging Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://github.com/ardhi/masohi">masohi</a></td><td>masohi</td><td>masohi</td><td>Masohi Messaging System for Bajo</td></tr><tr><td><a href="https://github.com/ardhi/masohi-codec">masohi-codec</a></td><td>masohiCodec</td><td>codec</td><td>Masohi Codec</td></tr><tr><td><a href="https://github.com/ardhi/masohi-codec-ais">masohi-codec-ais</a></td><td>masohiCodecAis</td><td>codec-ais</td><td>Masohi AIS Codec</td></tr><tr><td><a href="https://github.com/ardhi/masohi-mail">masohi-mail</a></td><td>masohiMail</td><td>mail</td><td>Masohi Mail Connector</td></tr><tr><td><a href="https://github.com/ardhi/masohi-mqtt">masohi-mqtt</a></td><td>masohiMqtt</td><td>mqtt</td><td>Masohi MQTT Connector</td></tr><tr><td><a href="https://github.com/ardhi/masohi-serialport">masohi-serial-port</a></td><td>masohiSerialport</td><td>sp</td><td>Masohi Serialport Connector</td></tr><tr><td><a href="https://github.com/ardhi/masohi-socket.io">masohi-socket.io</a></td><td>masohiSocketIo</td><td>sio</td><td>Masohi Socket.io Connector</td></tr></tbody></table><h2 id="sumba-biz-suite-plugins">Sumba Biz Suite Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://github.com/ardhi/sumba">sumba</a></td><td>sumba</td><td>sumba</td><td>Sumba Biz Suite</td></tr><tr><td><a href="https://github.com/ardhi/sumba-cms">sumba-cms</a></td><td>sumbaCms</td><td>cms</td><td>Sumba Content Management System</td></tr><tr><td><a href="https://github.com/ardhi/sumba-geonames">sumba-geonames</a></td><td>sumbaGeonames</td><td>geonames</td><td>Sumba Geonames</td></tr><tr><td><a href="https://github.com/ardhi/sumba-nominatim">sumba-nominatim</a></td><td>sumbaNominatim</td><td>nominatim</td><td>Sumba OSM Nominatim API</td></tr><tr><td><a href="https://github.com/ardhi/sumba-oauth">sumba-oauth</a></td><td>sumbaOauth</td><td>oauth</td><td>Sumba OAuth Providers</td></tr></tbody></table><h2 id="sumba-premium-plugins">Sumba Premium Plugins</h2><table><thead><tr><th>Package</th><th>Name</th><th>Alias</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://bajo.app/premium-plugins/sumba-geofence">@sumba/geofence</a></td><td>sumbaGeofence</td><td>geofence</td><td>Sumba Geofence</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-maps">@sumba/maps</a></td><td>sumbaMaps</td><td>maps</td><td>Sumba Maps</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-proxy">@sumba/proxy</a></td><td>sumbaProxy</td><td>proxy</td><td>Sumba Proxy: Cache any web resources locally</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-seatrack">@sumba/seatrack</a></td><td>sumbaSeatrack</td><td>seatrack</td><td>Sumba Seatrack: AIS tracking</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-seatrack-global">@sumba/seatrack-global</a></td><td>sumbaSeatrackGlobal</td><td>seatrack-global</td><td>Sumba Seatrack Global: AIS tracking by Rappid Datahub</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-seatrack-vts">@sumba/seatrack-vts</a></td><td>sumbaSeatrackVts</td><td>seatrack-vts</td><td>Sumba Seatrack VTS: VTS support for Sumba Seatrack</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-seatrack-wpi">@sumba/seatrack-wpi</a></td><td>sumbaSeatrackWpi</td><td>seatrack-wpi</td><td>Sumba Seatrack WPI: WPI support for Sumba Seatrack</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-skytrack">@sumba/skytrack</a></td><td>sumbaSkytrack</td><td>skytrack</td><td>Sumba Skytrack: ADSB tracking</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-skytrack-global">@sumba/skytrack-global</a></td><td>sumbaSkytrackGlobal</td><td>skytrack-global</td><td>Sumba Skytrack: ADSB tracking by Rappid Datahub</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-store">@sumba/store</a></td><td>sumbaStore</td><td>store</td><td>Sumba Store: E-Commerce &amp; online stores</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-subscription">@sumba/subscription</a></td><td>sumbaSubscription</td><td>subs</td><td>Sumba Subscription: Member subscriptions</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-weather">@sumba/weather</a></td><td>sumbaWeather</td><td>weather</td><td>Sumba Weather by Rappid Datahub</td></tr><tr><td><a href="https://bajo.app/premium-plugins/sumba-webstat">@sumba/webstat</a></td><td>sumbaWebstat</td><td>webstat</td><td>Sumba Webstatistic</td></tr></tbody></table></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">Bajo Framework</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</a></div></div><div class="mobile-sidebar-items-c"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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>
@@ -1,13 +0,0 @@
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>Tutorial: Getting Started</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">Bajo Framework</a><div class="sidebar-items-container"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</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><h2>Getting Started</h2></header><article><h1 id="getting-started">Getting Started</h1><h2 id="overview">Overview</h2><p>Before we go any further, below are some terminologies I use throughout these documentations:</p><ul><li><code>&lt;bajo-base-dir&gt;</code>: project directory is where you write all your codes</li><li><code>&lt;bajo-data-dir&gt;</code>: data directory, defaults to <code>&lt;bajo-base-dir&gt;/data</code> if not specifically stated</li><li><code>&lt;bajo-tmp-dir&gt;</code>: temp directory, defaults to OS temporary directory</li><li><code>&lt;package&gt;</code>: plugin package name as normally showed on npm listing</li><li><code>&lt;plugin&gt;</code>: plugin name, which is camel cased version of package name</li></ul><h2 id="installation">Installation</h2><p>Open your terminal and type:</p><pre class="prettyprint source lang-bash"><code>$ npm install bajo
4
- </code></pre><h2 id="fire-up!">Fire up!</h2><p>Create a new empty directory, this will be your project directory or your <code>&lt;bajo-base-dir&gt;</code>. Now goto your newly created directory, and type:</p><pre class="prettyprint source lang-bash"><code>$ npm init
5
- </code></pre><p>You'll be asked to name your project etc. <strong>IMPORTANT</strong>: don't forget to mark your project as ES6 project by setting <code>type</code> key in your <code>package.json</code> to <code>module</code>.</p><p>After completing those steps, move on the the next one: crating bajo bootstrap.</p><p>Inside your <code>&lt;bajo-base-dir&gt;</code>, create the <code>index.js</code> file and put these lines below:</p><pre class="prettyprint source lang-js"><code>import bajo from 'bajo'
6
- await bajo()
7
- </code></pre><p>A bajo app <strong>ALWAYS</strong> needs a data directory to put configuration files, etc. This could be located inside or outside your <code>&lt;bajo-base-dir&gt;</code>.</p><p>Lets assume you're going to put your data directory inside your <code>&lt;bajo-base-dir&gt;</code>. So please create a new directory called <code>data</code> first. After that, just type in your terminal:</p><pre class="prettyprint source lang-bash"><code>$ node index.js --dir-data=data
8
- </code></pre><p>Or you could utilize <code>dotenv</code> by creating <code>.env</code> file in the same directory as <code>index.js</code>, and put this inside:</p><pre class="prettyprint source"><code>DIR_DATA = ./data
9
- </code></pre><p>Now you can omit calling node with arguments, you just need to type:</p><pre class="prettyprint source lang-bash"><code>$ node index.js
10
- </code></pre><h2 id="configuration">Configuration</h2><h3 id="general-rules">General rules</h3><ul><li>All configuration files must be placed in <code>&lt;bajo-data-dir&gt;/config/</code> subfolder</li><li>Config files should be named after its plugin name</li><li>File format should be in <code>.json</code> or <code>.js</code> format</li><li>If <code>.js</code> file is used, it should be in ES6 format and should export either plain javascript object or a function (sync or async both supported)</li><li>If it returns a function, this function will be called within its plugin scope and should return a plain js object</li><li>Other formats (<code>.yml</code>, <code>.yaml</code> and <code>.toml</code>) can also be used by installing <a href="https://github.com/ardhi/bajo-config">bajoConfig</a> plugin</li><li>Order of importance: <code>.js</code> &gt; <code>.json</code> &gt; <code>.yml</code> &gt; <code>.yaml</code> &gt; <code>.toml</code></li></ul><h3 id="main-configuration-file">Main configuration File</h3><p>It should be named <code>bajo.json</code> with following keys:</p><table><thead><tr><th>Key</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>env</code></td><td><code>string</code></td><td>no</td><td><code>dev</code></td><td>App environment: <code>dev</code> or <code>prod</code></td></tr><tr><td><code>log</code></td><td><code>object</code></td><td>no</td><td></td><td>Logger setting</td></tr><tr><td>  <code>dateFormat</code></td><td><code>string</code></td><td>no</td><td><code>YYYY-MM-DDTHH:MM:ss.SSS[Z]</code></td><td>Date format accoding to <a href="https://github.com/iamkun/dayjs">dayjs</a></td></tr><tr><td>  <code>applet</code></td><td><code>boolean</code></td><td>no</td><td><code>false</code></td><td>Set to <code>true</code> if you want to show log even in <a href="#applet-mode">applet mode</a></td></tr><tr><td>  <code>level</code></td><td><code>string</code></td><td>no</td><td></td><td>Set one of these: <code>trace</code>, <code>debug</code>, <code>info</code>, <code>warn</code>, <code>error</code>, <code>fatal</code> and <code>silent</code>. If it isn't set, it will auto selected based on environment</td></tr><tr><td><code>lang</code></td><td><code>string</code></td><td>no</td><td></td><td>Language to use. If not set, it will be auto detected</td></tr><tr><td><code>exitHandler</code></td><td><code>boolean</code></td><td>no</td><td><code>true</code></td><td>Set to <code>false</code> if you want your app <strong>NOT</strong> to exit gracefully</td></tr></tbody></table><h3 id="installed-plugins">Installed Plugins</h3><p>Plugins are what make Bajo Framework so great and flexible: they extends app features!</p><p>To use plugins:</p><ol><li>Install with <code>npm install &lt;package&gt;</code></li><li>Optionally create <code>&lt;bajo-data-dir&gt;/config/&lt;plugin&gt;.json</code> to customize plugin settings</li><li>Open/create <code>&lt;bajo-data-dir&gt;/config/.plugins</code> and put <code>&lt;package&gt;</code> in it, line by line</li></ol><p>Example below will load <code>bajoConfig</code>, <code>bajoExtra</code> and <code>bajoTemplate</code>:</p><pre class="prettyprint source"><code>bajo-config
11
- bajo-extra
12
- bajo-template
13
- </code></pre><p>If you later decide to NOT load one or more plugins from your app, you just need to remove those from <code>.plugins</code> file or put <code>#</code> hash mark in front of package name and restart your app.</p><blockquote><p><strong>Warning</strong>: please do not confuse between <code>&lt;package&gt;</code> and <code>&lt;plugin&gt;</code>. Plugin package is the name of JS package listed on npm, while plugin name is the name of a plugin - a camel cased version of plugin package</p></blockquote><h3 id="configuration-overrides">Configuration Overrides</h3><p>You can override ANY settings on ANY configuration files with dotenv variables and program's argument switches easily.</p><p>Order of importance: dotenv variable &gt; args switches &gt; config files</p><h4 id="dotenv">dotenv</h4><ul><li>Create/open <code>&lt;bajo-base-dir&gt;/.env</code></li><li>Use <code>__</code> (double underscores) as the replacement of the dot in object</li><li><code>DIR__DATA</code>: Set <code>&lt;bajo-data-dir&gt;</code> data directory</li><li><code>DIR__TMP</code>: Set <code>&lt;bajo-tmp-dir&gt;</code> temp directory</li><li>For every key in <code>bajo.json</code>, use its snake cased, upper cased version, e.g:<ul><li><code>env</code> =&gt; <code>ENV</code></li><li><code>log.dateFormat</code> =&gt; <code>LOG__DATE_FORMAT</code></li><li><code>exitHandler</code> =&gt; <code>EXIT_HANDLER</code></li></ul></li><li>To override plugins config, prepend every key in plugin config with snake cased, upper cased version of the plugin name followed by a dot, e.g:<ul><li><code>key</code> in <code>myPlugin</code> =&gt; <code>MY_PLUGIN.KEY</code></li><li><code>key.subKey.subSubKey</code> in <code>myPlugin</code> =&gt; <code>MY_PLUGIN.KEY__SUB_KEY__SUB_SUB_KEY</code></li></ul></li></ul><h4 id="program-argument-switches">Program argument switches</h4><ul><li>Use switches, e.g: <code>node index.js --xxx=one --yyy=two</code></li><li>Every switches must be prefixed with <code>--</code></li><li>Use <code>-</code> as the replacement of the dot in object</li><li><code>--dir-data</code>: Set <code>&lt;bajo-data-dir&gt;</code> data directory</li><li><code>--dir-tmp</code>: Set <code>&lt;bajo-tmp-dir&gt;</code> temp directory</li><li>For every key in <code>bajo.json</code>, add prefix <code>--</code> e.g:<ul><li><code>env</code> =&gt; <code>--env=prod</code></li><li><code>log.dateFormat</code> =&gt; <code>--log-dateFormat=xxx</code></li><li><code>exitHandler</code> =&gt; <code>--exitHandler</code></li></ul></li><li>To override plugins config, prepend every key in plugin config with the plugin name followed by a <code>:</code>, e.g:<ul><li><code>key</code> in <code>myPlugin</code> =&gt; <code>--myPlugin:key</code></li><li><code>key.subKey.subSubKey</code> in <code>myPlugin</code> =&gt; <code>--myPlugin:key-subKey-subSubKey</code></li></ul></li></ul></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">Bajo Framework</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</a></div></div><div class="mobile-sidebar-items-c"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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>
@@ -1,3 +0,0 @@
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>Tutorial: Plugin Development</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">Bajo Framework</a><div class="sidebar-items-container"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</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><h2>Plugin Development</h2></header><article></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">Bajo Framework</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</a></div></div><div class="mobile-sidebar-items-c"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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>
@@ -1,3 +0,0 @@
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>Tutorial: User Guide</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">Bajo Framework</a><div class="sidebar-items-container"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</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><h2>User Guide</h2></header><article><h1 id="user-guide">User Guide</h1></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">Bajo Framework</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://bajo.app" target="">Bajo.app</a></div><div class="navbar-item"><a id="" href="https://www.npmjs.com/package/bajo" target="">NPM</a></div><div class="navbar-item"><a id="" href="https://github.com/ardhi/bajo" target="">Github</a></div></div><div class="mobile-sidebar-items-c"><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-class_helper_bajo.html">class/helper/bajo</a></div><div class="sidebar-section-children"><a href="module-class_helper_plugin.html">class/helper/plugin</a></div><div class="sidebar-section-children"><a href="module-lib_create-method.html">lib/create-method</a></div><div class="sidebar-section-children"><a href="module-lib_formats.html">lib/formats</a></div><div class="sidebar-section-children"><a href="module-lib_log-levels.html">lib/log-levels</a></div><div class="sidebar-section-children"><a href="module-lib_resolve-path.html">lib/resolve-path</a></div><div class="sidebar-section-children"><a href="module-lib_shim.html">lib/shim</a></div></div><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="App.html">App</a></div><div class="sidebar-section-children"><a href="Bajo.html">Bajo</a></div><div class="sidebar-section-children"><a href="BasePlugin.html">BasePlugin</a></div><div class="sidebar-section-children"><a href="Err.html">Err</a></div><div class="sidebar-section-children"><a href="Log.html">Log</a></div><div class="sidebar-section-children"><a href="Plugin.html">Plugin</a></div><div class="sidebar-section-children"><a href="Print.html">Print</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-contribution.html">Contribution</a></div><div class="sidebar-section-children"><a href="tutorial-ecosystem.html">Ecosystem</a></div><div class="sidebar-section-children"><a href="tutorial-getting-started.html">Getting Started</a></div><div class="sidebar-section-children"><a href="tutorial-plugin-dev.html">Plugin Development</a></div><div class="sidebar-section-children"><a href="tutorial-user-guide.html">User Guide</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#NsPathType">NsPathType</a></div><div class="sidebar-section-children"><a href="global.html#ObjectFormatType">ObjectFormatType</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>
@@ -1,39 +0,0 @@
1
- import fastGlob from 'fast-glob'
2
- import path from 'path'
3
- import lodash from 'lodash'
4
- import resolvePath from './resolve-path.js'
5
-
6
- const { camelCase, isFunction } = lodash
7
-
8
- /**
9
- * @module
10
- */
11
-
12
- /**
13
- * This function scan directory for ```.js``` and ```.json``` files, read its content, and
14
- * turn it to become a class method by attach it to its scope (its class instance) dynamically.
15
- *
16
- * File path is camel-cased and become the method name. File that starts with underscore (eg: ```_my-file.js```)
17
- * is ignored; usefull to use such file as your shared library.
18
- *
19
- * @async
20
- * @param {string} dir - Directory to scan
21
- * @returns {number} Number of files found
22
- */
23
- async function createMethod (dir) {
24
- dir = resolvePath(dir)
25
- const files = await fastGlob([`!${dir}/**/_*.{js,json}`, `${dir}/**/*.{js,json}`])
26
- for (const f of files) {
27
- const ext = path.extname(f)
28
- const base = f.replace(dir, '').slice(0, -ext.length)
29
- const name = camelCase(base)
30
- let mod
31
- if (ext === '.json') mod = this.app.bajo.readJson(f)
32
- else mod = await this.app.bajo.importModule(f)
33
- if (isFunction(mod)) mod = mod.bind(this)
34
- this[name] = mod
35
- }
36
- return files.length
37
- }
38
-
39
- export default createMethod
package/lib/dayjs.js DELETED
@@ -1,8 +0,0 @@
1
- import dayjs from 'dayjs'
2
- import utc from 'dayjs/plugin/utc.js'
3
- import customParseFormat from 'dayjs/plugin/customParseFormat.js'
4
-
5
- dayjs.extend(utc)
6
- dayjs.extend(customParseFormat)
7
-
8
- export default dayjs
@@ -1,3 +0,0 @@
1
- const omittedPluginKeys = ['dir', 'pkg', 'dependencies', 'title']
2
-
3
- export default omittedPluginKeys
@@ -1,19 +0,0 @@
1
- async function readAllConfigs (base) {
2
- let cfg = {}
3
- let ext = {}
4
- // default config file
5
- try {
6
- cfg = await this.bajo.readConfig(`${base}.*`, { ignoreError: true })
7
- } catch (err) {
8
- if (['BAJO_CONFIG_NO_PARSER'].includes(err.code)) throw err
9
- }
10
- // env based config file
11
- try {
12
- ext = await this.bajo.readConfig(`${base}-${this.bajo.config.env}.*`, { ignoreError: true })
13
- } catch (err) {
14
- if (!['BAJO_CONFIG_FILE_NOT_FOUND'].includes(err.code)) throw err
15
- }
16
- return this.bajo.lib.aneka.defaultsDeep({}, ext, cfg)
17
- }
18
-
19
- export default readAllConfigs
@@ -1,11 +0,0 @@
1
- # Hook
2
-
3
- ### ```<ns>:beforeBuildCollection (container)```
4
-
5
- - ```ns```: Plugin name
6
- - ```container```: Name of config key which hold collections array
7
-
8
- ### ```<ns>:beforeBuildCollection (container)```
9
-
10
- - ```ns```: Plugin name
11
- - ```container```: Name of config key which hold collections array
Binary file
@@ -1,20 +0,0 @@
1
- # Contribution
2
-
3
- Thank you very much to those of you who want to join as contributors, but I have committed to devoting 100% of my time to this project. Therefore, I am currently unable to accept pull requests from anyone until the project becomes large enough for me to manage it independently.
4
-
5
- However, I am always available if you encounter any bugs that require immediate fixes. Please report your issues in a GitHub issue, and I will try to address them promptly.
6
-
7
- I am also open to suggestions for improvements or requests for new features.
8
-
9
- ## Donations
10
-
11
- Please donate to the channels below. Your donation will motivate me to work faster and more diligently in future development.
12
-
13
- ### Paypal
14
-
15
- [Donate](https://www.paypal.com/ncp/payment/EWLERL7SCUU64)
16
-
17
- ### Bitcoin
18
-
19
- Address: **bc1qwtv78cwp9ef8hnqaw84fxg5856l0pggqe32g6f**
20
- <p><img alt="bc1qwtv78cwp9ef8hnqaw84fxg5856l0pggqe32g6f" src="bitcoin.jpeg" width="200" height="200" /></p>
@@ -1,94 +0,0 @@
1
- # Ecosystem
2
-
3
- ## Plugins
4
-
5
- | Package | Name | Alias | Description |
6
- | ------- | ---- | ----- | ----------- |
7
- | [bajo-cache](https://github.com/ardhi/bajo-cache) | bajoCache | cache | General cache service for all bajo plugins |
8
- | [bajo-cli](https://github.com/ardhi/bajo-cli) | bajoCli | cli | Command line support & tools |
9
- | [bajo-common-db](https://github.com/ardhi/bajo-common-db) | bajoCommonDb | cdb | Common database |
10
- | [bajo-config](https://github.com/ardhi/bajo-config) | bajoConfig | cfg | Add YAML & TOML support in config |
11
- | [bajo-cron](https://github.com/ardhi/bajo-cron) | bajoCron | cron | Cron support |
12
- | [bajo-extra](https://github.com/ardhi/bajo-extra) | bajoExtra | extra | Extra necessary booster! |
13
- | [bajo-logger](https://github.com/ardhi/bajo-logger) | bajoLogger | log | Pino logger support |
14
- | [bajo-markdown](https://github.com/ardhi/bajo-markdown) | bajoMarkdown | md | Markdown support |
15
- | [bajo-queue](https://github.com/ardhi/bajo-queue) | bajoQueue | q | Queue support |
16
- | [bajo-spatial](https://github.com/ardhi/bajo-spatial) | bajoSpatial | spatial | Spatial support |
17
- | [bajo-sysinfo](https://github.com/ardhi/bajo-sysinfo) | bajoSysinfo | si | System information |
18
- | [bajo-template](https://github.com/ardhi/bajo-template) | bajotemplate | tpl | Template System |
19
-
20
- ## Dobo DBMS Plugins
21
-
22
- | Package | Name | Alias | Description |
23
- | ------- | ---- | ----- | ----------- |
24
- | [dobo](https://github.com/ardhi/dobo) | dobo | db | DBMS with built-in memory database |
25
- | [dobo-couchdb](https://github.com/ardhi/dobo-couchdb) | doboCouchdb | dbcouch | CouchDB driver |
26
- | [dobo-elasticsearch](https://github.com/ardhi/dobo-elasticsearch) | doboElasticsearch | dbes | Elasticsearch driver |
27
- | [dobo-extra](https://github.com/ardhi/dobo-extra) | doboExtra | dbx | Bajo DB Extra Tools/Utility |
28
- | [dobo-knex](https://github.com/ardhi/dobo-knex) | doboKnex | dbknex | Knex driver |
29
- | [dobo-mongodb](https://github.com/ardhi/dobo-mongodb) | doboMongodb | dbmongo | MongoDB driver |
30
- | [dobo-redis](https://github.com/ardhi/dobo-redis) | doboRedis | dbredis | Redis driver |
31
- | [dobo-restproxy](https://github.com/ardhi/dobo-restproxy) | doboRestproxy | dbrpx | Restproxy driver |
32
- | [dobo-restproxy-jsonserver](https://github.com/ardhi/dobo-restproxy-jsonserver) | doboRestproxyJsonserver | dbrpxjs | JsonServer support for doboRestproxy |
33
- | [dobo-restproxy-ndut](https://github.com/ardhi/dobo-restproxy-ndut) | doboRestproxyNdut | dbrpxndut | NDUT support for doboRestproxy |
34
-
35
- ## Waibu Web Framework Plugins
36
-
37
- | Package | Name | Alias | Description |
38
- | ------- | ---- | ----- | ----------- |
39
- | [waibu](https://github.com/ardhi/waibu) | waibu | w | Web framework |
40
- | [waibu-admin](https://github.com/ardhi/waibu-admin) | waibuAdmin | wa | Waibu Admin module |
41
- | [waibu-alpinejs](https://github.com/ardhi/waibu-alpinejs) | waibuAlpinejs | walp |Alpine.js support for Waibu MPA |
42
- | [waibu-blu](https://github.com/ardhi/waibu-blu) | waibuBlu | wblu | Blu theme |
43
- | [waibu-bootstrap](https://github.com/ardhi/waibu-bootstrap) | waibuBootstrap | wbs | Bootstrap support for Waibu MPA |
44
- | [waibu-bootstrap-icons](https://github.com/ardhi/waibu-bootstrap-icons) | waibuBootstrapIcons | wbsi | Bootstrap Icons support for Waibu MPA |
45
- | [waibu-bootswatch](https://github.com/ardhi/waibu-bootswatch) | waibuBootswatch | wbw | Bootswatch support for Waibu MPA |
46
- | [waibu-db](https://github.com/ardhi/waibu-db) | waibuDb | wdb | Database helper |
47
- | [waibu-extra](https://github.com/ardhi/waibu-extra) | waibuExtra | wx | Most used 3rd party libs for Waibu MPA |
48
- | [waibu-maps](https://github.com/ardhi/waibu-maps) | waibuMaps | wmaps | Maps for Waibu MPA |
49
- | [waibu-mpa](https://github.com/ardhi/waibu-mpa) | waibuMpa | wmpa | Multi pages app for for Waibu |
50
- | [waibu-phosphor](https://github.com/ardhi/waibu-phosphor) | waibuPhosphor | wpp | Phosphoricons support for Waibu MPA |
51
- | [waibu-rest-api](https://github.com/ardhi/waibu-rest-api) | waibuRestApi | wra | Rest API for Waibu |
52
- | [waibu-static](https://github.com/ardhi/waibu-static) | waibuStatic | wstatic | Static asset support for Waibu |
53
- | [waibu-swagger](https://github.com/ardhi/waibu-swagger) | waibuSwagger | wswagger | Rest API Documentation for Waibu REST API |
54
-
55
- ## Masohi Messaging Plugins
56
-
57
- | Package | Name | Alias | Description |
58
- | ------- | ---- | ----- | ----------- |
59
- | [masohi](https://github.com/ardhi/masohi) | masohi | masohi | Masohi Messaging System for Bajo |
60
- | [masohi-codec](https://github.com/ardhi/masohi-codec) | masohiCodec | codec | Masohi Codec |
61
- | [masohi-codec-ais](https://github.com/ardhi/masohi-codec-ais) | masohiCodecAis | codec-ais | Masohi AIS Codec |
62
- | [masohi-mail](https://github.com/ardhi/masohi-mail) | masohiMail | mail | Masohi Mail Connector |
63
- | [masohi-mqtt](https://github.com/ardhi/masohi-mqtt) | masohiMqtt | mqtt | Masohi MQTT Connector |
64
- | [masohi-serial-port](https://github.com/ardhi/masohi-serialport) | masohiSerialport | sp | Masohi Serialport Connector |
65
- | [masohi-socket.io](https://github.com/ardhi/masohi-socket.io) | masohiSocketIo | sio | Masohi Socket.io Connector |
66
-
67
- ## Sumba Biz Suite Plugins
68
-
69
- | Package | Name | Alias | Description |
70
- | ------- | ---- | ----- | ----------- |
71
- | [sumba](https://github.com/ardhi/sumba) | sumba | sumba | Sumba Biz Suite |
72
- | [sumba-cms](https://github.com/ardhi/sumba-cms) | sumbaCms | cms | Sumba Content Management System |
73
- | [sumba-geonames](https://github.com/ardhi/sumba-geonames) | sumbaGeonames | geonames | Sumba Geonames |
74
- | [sumba-nominatim](https://github.com/ardhi/sumba-nominatim) | sumbaNominatim | nominatim | Sumba OSM Nominatim API |
75
- | [sumba-oauth](https://github.com/ardhi/sumba-oauth) | sumbaOauth | oauth | Sumba OAuth Providers |
76
-
77
- ## Sumba Premium Plugins
78
-
79
- | Package | Name | Alias | Description |
80
- | ------- | ---- | ----- | ----------- |
81
- | [@sumba/geofence](https://bajo.app/premium-plugins/sumba-geofence) | sumbaGeofence | geofence | Sumba Geofence |
82
- | [@sumba/maps](https://bajo.app/premium-plugins/sumba-maps) | sumbaMaps | maps | Sumba Maps |
83
- | [@sumba/proxy](https://bajo.app/premium-plugins/sumba-proxy) | sumbaProxy | proxy | Sumba Proxy: Cache any web resources locally |
84
- | [@sumba/seatrack](https://bajo.app/premium-plugins/sumba-seatrack) | sumbaSeatrack | seatrack | Sumba Seatrack: AIS tracking |
85
- | [@sumba/seatrack-global](https://bajo.app/premium-plugins/sumba-seatrack-global) | sumbaSeatrackGlobal | seatrack-global | Sumba Seatrack Global: AIS tracking by Rappid Datahub |
86
- | [@sumba/seatrack-vts](https://bajo.app/premium-plugins/sumba-seatrack-vts) | sumbaSeatrackVts | seatrack-vts | Sumba Seatrack VTS: VTS support for Sumba Seatrack |
87
- | [@sumba/seatrack-wpi](https://bajo.app/premium-plugins/sumba-seatrack-wpi) | sumbaSeatrackWpi | seatrack-wpi | Sumba Seatrack WPI: WPI support for Sumba Seatrack |
88
- | [@sumba/skytrack](https://bajo.app/premium-plugins/sumba-skytrack) | sumbaSkytrack | skytrack | Sumba Skytrack: ADSB tracking |
89
- | [@sumba/skytrack-global](https://bajo.app/premium-plugins/sumba-skytrack-global) | sumbaSkytrackGlobal | skytrack-global | Sumba Skytrack: ADSB tracking by Rappid Datahub |
90
- | [@sumba/store](https://bajo.app/premium-plugins/sumba-store) | sumbaStore | store | Sumba Store: E-Commerce & online stores |
91
- | [@sumba/subscription](https://bajo.app/premium-plugins/sumba-subscription) | sumbaSubscription | subs | Sumba Subscription: Member subscriptions |
92
- | [@sumba/weather](https://bajo.app/premium-plugins/sumba-weather) | sumbaWeather | weather | Sumba Weather by Rappid Datahub |
93
- | [@sumba/webstat](https://bajo.app/premium-plugins/sumba-webstat) | sumbaWebstat | webstat | Sumba Webstatistic |
94
-