<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Tutorial: Extending with modules - Documentation</title> <script src="scripts/prettify/prettify.js"></script> <script src="scripts/prettify/lang-css.js"></script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <input type="checkbox" id="nav-trigger" class="nav-trigger" /> <label for="nav-trigger" class="navicon-button x"> <div class="navicon"></div> </label> <label for="nav-trigger" class="overlay"></label> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="ArchiveProcessor.html">ArchiveProcessor</a><ul class='methods'><li data-type='method'><a href="ArchiveProcessor.html#process">process</a></li></ul></li><li><a href="BackupProcessor.html">BackupProcessor</a><ul class='methods'><li data-type='method'><a href="BackupProcessor.html#process">process</a></li></ul></li><li><a href="DropboxArchive.html">DropboxArchive</a><ul class='methods'><li data-type='method'><a href="DropboxArchive.html#upload">upload</a></li></ul></li><li><a href="DropboxBackup.html">DropboxBackup</a><ul class='methods'><li data-type='method'><a href="DropboxBackup.html#run">run</a></li><li data-type='method'><a href="DropboxBackup.html#use">use</a></li></ul></li><li><a href="ProcessorContext.html">ProcessorContext</a><ul class='methods'><li data-type='method'><a href="ProcessorContext.html#error">error</a></li><li data-type='method'><a href="ProcessorContext.html#log">log</a></li></ul></li><li><a href="ResetProcessor.html">ResetProcessor</a><ul class='methods'><li data-type='method'><a href="ResetProcessor.html#process">process</a></li></ul></li><li><a href="TemporaryFolderProcessor.html">TemporaryFolderProcessor</a><ul class='methods'><li data-type='method'><a href="TemporaryFolderProcessor.html#process">process</a></li></ul></li><li><a href="UploadOnDemandProcessor.html">UploadOnDemandProcessor</a><ul class='methods'><li data-type='method'><a href="UploadOnDemandProcessor.html#process">process</a></li></ul></li><li><a href="UploadOnScheduleProcessor.html">UploadOnScheduleProcessor</a><ul class='methods'><li data-type='method'><a href="UploadOnScheduleProcessor.html#process">process</a></li></ul></li><li><a href="ZipArchiveProcessor.html">ZipArchiveProcessor</a><ul class='methods'><li data-type='method'><a href="ZipArchiveProcessor.html#process">process</a></li></ul></li></ul><h3>Tutorials</h3><ul><li><a href="tutorial-extending-with-modules.html">Extending with modules</a></li><li><a href="tutorial-getting-started.html">Getting started</a></li></ul> </nav> <div id="main"> <h1 class="page-title">Tutorial: Extending with modules</h1> <section> <header> <h2>Extending with modules</h2> </header> <article> <p>dropbox-backup may use other injected modules other than the custom archiving script, as reusable components to multiple installations</p> <h4>./customProcessor.js</h4> <pre class="prettyprint"> var CustomProcessor = function() { } CustomProcessor.prototype.process = function (context, archive, cb) { try { x.file('extra.txt', { name: 'extra.txt' }); cb() } catch(err) { cb(err) } } module.exports = CustomProcessor </pre> <h4>Injecting the module</h4> <pre class="prettyprint"> var <a href="DropboxBackup.html">DropboxBackup</a> = require('dropbox-backup'); var <a href="ArchiveProcessor.html">CustomProcessor</a> = require('./customProcessor.js'); var backup = new <a href="DropboxBackup.html">DropboxBackup</a>({ key: "DROPBOXKEY", secret: "DROPBOXSECRET", token: "DROPBOXTOKEN" }); backup.use(new CustomProcessor()) backup.run('filename', function (x) { ... }); </pre> </article> </section> </div> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> using the Minami theme. </footer> <script>prettyPrint();</script> <script src="scripts/linenumber.js"></script> </body> </html>