feat: push new pwd when 'cd'

This commit is contained in:
wancat committed 2023-08-21 20:40:05 +08:00
1 parent 096b7a7714
commit f08ee333a7
3 files changed
+12 -5

No files matched your search

+1
View File
@@ -14,6 +14,7 @@
"dockerode": "^3.3.5",
"express": "^4.18.2",
"jsonwebtoken": "^9.0.1",
"minimist": "^1.2.8",
"mongoose": "^7.4.0",
"socket.io": "^4.7.1",
"swagger-ui-express": "^5.0.0",
+6 -5
View File
@@ -6,14 +6,15 @@ import { defaultUser, genSessionJWT } from '../utils/auth.js'
const sessions = new Map()
function listenToSession(sessionId, event, callback) {
sessions.set((sessionId, event), callback)
const callbacks = sessions.get((sessionId, event)) || []
sessions.set((sessionId, event), callbacks.concat(callback))
}
export function pushToSession(sessionId, event, data) {
console.log(sessions, sessionId, event, data)
const callback = sessions.get((sessionId, event))
if (callback) {
callback(data)
console.log('Push:', sessionId, event)
const callbacks = sessions.get((sessionId, event))
if (callbacks) {
callbacks.forEach((callback) => callback(data))
}
}
+5
View File
@@ -1,3 +1,4 @@
import minimist from 'minimist'
import Quest from '../models/quest.js'
import { pushToSession } from '../api/socket.js'
@@ -18,11 +19,15 @@ async function commandHandler(session, commandInput, additionalData) {
return {}
}
const argv = minimist(commandInput.command.split(' '))
if ('discover' in additionalData) {
pushToSession(session.id, 'graph', {
pwd: commandInput.pwd,
discover: additionalData.discover,
})
} else if (argv._[0] === 'cd') {
pushToSession(session.id, 'graph', { pwd: commandInput.pwd })
}
const commandMatch = checkMatch(stage.condition.command, commandInput.command)