// @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? */