turbo-sync/types.js

56 lines
1.5 KiB
JavaScript

// @ts-check
/**
* @typedef {TurboSyncConfigObject[]} TurboSyncConfigArray
*/
/**
* @typedef {object} TurboSyncConfigObject
* @property {string} [title]
* @property {string[] | TurboSyncFileObject[]} [files]
* @property {string[] | TurboSyncFileObject[]} [folders]
* @property {TurboSyncOptions} [options]
*/
/**
* @typedef {object} TurboSyncFileObject
* @property {string} path
* @property {string} [host]
* @property {string} [user]
* @property {string} [ssh_key]
* @property {number} [interval]
*/
/**
* @typedef {object} TurboSyncOptions
* @property {boolean} [delete] - Should files removed be deleted in all destinations?
* @property {string[]} [exclude] - Patterns that should be ignored. Eg "*.log"
*/
/**
* @typedef {object} SyncFilesFnParams
* @property {string[] | TurboSyncFileObject[]} files
* @property {TurboSyncOptions | undefined} options
*/
/**
* @typedef {object} SyncFilesSyncFnParams
* @property {string[] | TurboSyncFileObject[]} files
* @property {TurboSyncOptions | undefined} options
* @property {string} filePath
*/
/**
* @typedef {object} SyncFoldersFnParams
* @property {string[] | TurboSyncFileObject[]} folders
* @property {TurboSyncOptions | undefined} options
*/
/**
* @typedef {object} SyncFoldersSyncFnParams
* @property {string[] | TurboSyncFileObject[]} dirs
* @property {TurboSyncOptions | undefined} options
* @property {string} dirPath
* @property {boolean} [init] - is this an initialization phase?
*/