diff options
Diffstat (limited to 'app/client/socket')
| -rw-r--r-- | app/client/socket/socket.actions.js | 32 | ||||
| -rw-r--r-- | app/client/socket/socket.system.js | 29 |
2 files changed, 30 insertions, 31 deletions
diff --git a/app/client/socket/socket.actions.js b/app/client/socket/socket.actions.js index dc8d6fc..e787f1a 100644 --- a/app/client/socket/socket.actions.js +++ b/app/client/socket/socket.actions.js @@ -1,3 +1,31 @@ -import * as socketActions from './socket.system' +import uuidv1 from 'uuid/v1' +import { socket } from './socket.connection' -export default socketActions +export function run_system_command(opt) { + return syscall_async('run_system_command', opt) +} +export function list_directory(opt) { + return syscall_async('list_directory', opt).then(res => res.files) +} +export function run_script(opt) { + return syscall_async('run_script', opt) +} +export const syscall_async = (tag, payload, ttl=10000) => { + return new Promise( (resolve, reject) => { + const uuid = uuidv1() + const timeout = setTimeout(() => { + socket.off('system_res', cb) + reject('timeout') + }, ttl) + const cb = (data) => { + if (!data.uuid) return + if (data.uuid === uuid) { + clearTimeout(timeout) + socket.off('system_res', cb) + resolve(data) + } + } + socket.emit('system', { cmd: tag, payload, uuid }) + socket.on('system_res', cb) + }) +}
\ No newline at end of file diff --git a/app/client/socket/socket.system.js b/app/client/socket/socket.system.js index 5279d21..3d80902 100644 --- a/app/client/socket/socket.system.js +++ b/app/client/socket/socket.system.js @@ -1,6 +1,5 @@ import { dispatch } from '../store' import types from '../types' -import uuidv1 from 'uuid/v1' import { socket } from './socket.connection' socket.on('system_res', (data) => { @@ -33,31 +32,3 @@ socket.on('system_res', (data) => { } }) -export function run_system_command(opt) { - return syscall_async('run_system_command', opt) -} -export function list_directory(opt) { - return syscall_async('list_directory', opt).then(res => res.files) -} -export function run_script(opt) { - return syscall_async('run_script', opt) -} -export const syscall_async = (tag, payload, ttl=10000) => { - return new Promise( (resolve, reject) => { - const uuid = uuidv1() - const timeout = setTimeout(() => { - socket.off('system_res', cb) - reject('timeout') - }, ttl) - const cb = (data) => { - if (!data.uuid) return - if (data.uuid === uuid) { - clearTimeout(timeout) - socket.off('system_res', cb) - resolve(data) - } - } - socket.emit('system', { cmd: tag, payload, uuid }) - socket.on('system_res', cb) - }) -} |
