1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // First, give it a name!
- module.exports.name = 'example module'
- // Provide a description.
- module.exports.description = 'An example module to show how it works'
- // Specify this reporter requires a backup.
- // The second parameter to func() is now a backup instead of the path to one.
- // Most reporting types should use this.
- module.exports.requiresBackup = true
- // Should this report be skipped in automated reports?
- // This is used when the 'all' report type is specified, and all possible reports are generated.
- // with this set to true, the report WILL NOT run when report type = 'all'
- // Most reporting types shouldn't need this.
- module.exports.requiresInteractivity = true
- // Specify this reporter supports the promises API for allowing chaining of reports.
- // All modules should use this.
- module.exports.usesPromises = true
- // Specify this only works for iOS 10+
- // If it is iOS-version specific, you can specify version information here.
- // You may provide a comma separated string such as ">=6.0,<11.0" to indicate ranges.
- module.exports.supportedVersions = '>=10.0'
- // Most reports will use this pattern.
- // Reporting function (for usesPromises = true)
- module.exports.func = function (program, backup, resolve, reject) {
- // This function will be called with the `commander` program, and the iPhoneBackup instance as arguments
- // It MUST resolve() the final result, or reject() if there's an error
- // First, fetch some data. This variable should be an array of objects representing each row in a report.
- // This would be replaced with a function from the backup object.
- let data = backup.getData()
- // Next, pass it to the user-selected formatter.
- var result = program.formatter.format(data, {
- // Provide the program options
- program: program,
- // A dictionary of items to be displayed as formatted data.
- // The key is the column name, the value is a function that returns the value given an object representing a row.
- columns: {
- 'Column-Name': row => row.ROWID
- }
- })
- // Resolve the promise with the result.
- // This ensures proper file output and multi-reporting.
- resolve(result)
- }
- // --- OR ---
- // You can also provide an array of functions instead of using `module.exports.func`.
- // These functions *should* be independent ranges to ensure reliable execution.
- module.exports.functions = {
- '>=10.0': function (program, backup, resolve, reject) {
- // This function would be called for iOS 10+.
- // format and resolve() in the same manner as the example above.
- },
- '>=9.0,<10.0': function (program, backup) {
- // This function would be called for all iOS 9.
- // format and resolve() in the same manner as the example above.
- }
- }
|