Comment ré-écrire un script async pour Node.js dans Purescript

Je suis en train d'apprendre Purescript. Beaucoup de la littérature se concentre sur des concepts abstraits, pour qui la langue est évidemment très bien adapté; cependant, il est difficile de traduire les concepts à la maison à quelque chose de familier.

Afin de mieux comprendre Purescript, et en partie pour contester Purescript sur une procédure tâche, je veux réécrire un très simple Nœud de script écrit en caractères d'imprimerie.

Le script lit certains commentaires de la ligne de commande, qui appelle une fonction async qui hydrate a (côté serveur) redux magasin, puis imprime des données dans la console.

import { store } from '../server/store'
import { deep, log, red } from '../src/io'
import { isRehydrated } from './isRehydrated'

async function readRecord(dbName: string, tableName: string, recordId: string) {
  try {
    await isRehydrated()
    const result = store.getState().databases[dbName][tableName][recordId]
    deep(result)
    return 'DONE!'
  } catch (e) {
    return e
  }
}

readRecord(process.argv[2], process.argv[3], process.argv[4]).then(
  m => {
    log(m)
    process.exit()
  },
  e => {
    red(e)
    process.exit()
  }
)

Est-il un moyen simple de réécrire le script ci-dessus dans Purescript à l'aide de Purescript de FFI à l'appel du Javascript importations et le task abstraction pour gérer l'asynchronicité?

0
2019-09-19 17:29:28
source
0 réponses

Voir d'autres questions sur les étiquettes