Skip to content

Commit

Permalink
Refactor and add 'get' operation to StateMachineDefinitionApi
Browse files Browse the repository at this point in the history
  • Loading branch information
noreplydev committed Nov 20, 2024
1 parent 82d8890 commit 8969895
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ const StateMachineDefinitionsDir = (root) => fspath.join(root, "/packages/app/st
const StateMachineDefinitionsIndex = fspath.join(StateMachineDefinitionsDir(getRoot()), 'index.ts')

const getStateMachine = (fsmPath, req) => {
const sourceFile = getSourceFile(fspath.join(StateMachineDefinitionsDir(getRoot(req)), fsmPath))
const sourceFile = getSourceFile(fsmPath)
const machineDefinitionCode = "return " + getDefinition(sourceFile, '"machineDefinition"').getText()
const machineDefinitionParser = new Function(...params, machineDefinitionCode)
const { on, ...machineDefinition } = machineDefinitionParser(...paramsHandlers)

return {
name: fsmPath.replace(/\.[^/.]+$/, ""), //remove extension
name: fspath.basename(fsmPath, fspath.extname(fsmPath)), //remove extension
...{
...machineDefinition,
states: Object.keys(machineDefinition.states)
Expand All @@ -41,7 +41,7 @@ const getDB = (path, req, session) => {
const db = {
async *iterator() {
const files = (await fs.readdir(StateMachineDefinitionsDir(getRoot(req)))).filter(f => f != 'index.ts' && !fsSync.lstatSync(fspath.join(StateMachineDefinitionsDir(getRoot(req)), f)).isDirectory() && f.endsWith('.ts'))
const stateMachineDefinitions = await Promise.all(files.map(async f => getStateMachine(f, req)));
const stateMachineDefinitions = await Promise.all(files.map(async f => getStateMachine(fspath.join(StateMachineDefinitionsDir(getRoot(req)), fspath.basename(f)), req)));

for (const machineDefinition of stateMachineDefinitions) {
if (machineDefinition) yield [machineDefinition.name, JSON.stringify(machineDefinition)];
Expand Down Expand Up @@ -97,7 +97,8 @@ const getDB = (path, req, session) => {
},

async get(key) {
return JSON.stringify({ name: key })
const sm = getStateMachine(fspath.join(StateMachineDefinitionsDir(getRoot(req)), fspath.basename(key + '.ts')), req)
return JSON.stringify(sm)
}
};

Expand Down

0 comments on commit 8969895

Please sign in to comment.