From 2e0c02aef038b9c4bfade06851747b7cb122925e Mon Sep 17 00:00:00 2001 From: Dominick Gendill Date: Tue, 22 Aug 2017 08:07:13 -0600 Subject: [PATCH 1/4] Added 'question' function --- src/Node/ReadLine.js | 12 ++++++++++++ src/Node/ReadLine.purs | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/Node/ReadLine.js b/src/Node/ReadLine.js index 5a50cea..fbcbab1 100644 --- a/src/Node/ReadLine.js +++ b/src/Node/ReadLine.js @@ -31,6 +31,18 @@ exports.prompt = function (readline) { }; }; +exports.question = function(text) { + return function(callback) { + return function(readline) { + return function() { + readline.question(text, function(result) { + callback(result)(); + }); + } + } + } +} + exports.setPrompt = function (prompt) { return function (length) { return function (readline) { diff --git a/src/Node/ReadLine.purs b/src/Node/ReadLine.purs index 71110ef..9982080 100644 --- a/src/Node/ReadLine.purs +++ b/src/Node/ReadLine.purs @@ -17,6 +17,7 @@ module Node.ReadLine , setPrompt , setLineHandler , close + , question ) where import Prelude @@ -100,6 +101,16 @@ foreign import prompt . Interface -> Eff (readline :: READLINE | eff) Unit +-- | Writes a query to the output, waits +-- | for user input to be provided on input, then invokes +-- | the callback function +foreign import question + :: forall e eff + . String + -> (String -> Eff e Unit) + -> Interface + -> Eff (readline :: READLINE | eff) Unit + -- | Set the prompt. foreign import setPrompt :: forall eff From 17a99b7412f658bd9a360d78ce0d5c8ad1062b09 Mon Sep 17 00:00:00 2001 From: Dominick Gendill Date: Tue, 22 Aug 2017 14:35:07 -0600 Subject: [PATCH 2/4] Added missing semicolons. --- src/Node/ReadLine.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Node/ReadLine.js b/src/Node/ReadLine.js index fbcbab1..0647b95 100644 --- a/src/Node/ReadLine.js +++ b/src/Node/ReadLine.js @@ -38,10 +38,10 @@ exports.question = function(text) { readline.question(text, function(result) { callback(result)(); }); - } - } - } -} + }; + }; + }; +}; exports.setPrompt = function (prompt) { return function (length) { From 3c2af9ade4532cf0420129d6b6d2b93ad3103259 Mon Sep 17 00:00:00 2001 From: Dominick Gendill Date: Tue, 22 Aug 2017 14:35:07 -0600 Subject: [PATCH 3/4] Added missing semicolons. Added missing effect to question callback. --- src/Node/ReadLine.js | 8 ++++---- src/Node/ReadLine.purs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Node/ReadLine.js b/src/Node/ReadLine.js index fbcbab1..0647b95 100644 --- a/src/Node/ReadLine.js +++ b/src/Node/ReadLine.js @@ -38,10 +38,10 @@ exports.question = function(text) { readline.question(text, function(result) { callback(result)(); }); - } - } - } -} + }; + }; + }; +}; exports.setPrompt = function (prompt) { return function (length) { diff --git a/src/Node/ReadLine.purs b/src/Node/ReadLine.purs index 9982080..ca9b6d8 100644 --- a/src/Node/ReadLine.purs +++ b/src/Node/ReadLine.purs @@ -105,9 +105,9 @@ foreign import prompt -- | for user input to be provided on input, then invokes -- | the callback function foreign import question - :: forall e eff + :: forall eff . String - -> (String -> Eff e Unit) + -> (String -> Eff eff Unit) -> Interface -> Eff (readline :: READLINE | eff) Unit From 78861eb5ea82b32b7ffdbd97647361536a3cbb2f Mon Sep 17 00:00:00 2001 From: Dominick Gendill Date: Tue, 22 Aug 2017 14:48:47 -0600 Subject: [PATCH 4/4] Added missing effect to question callback. --- src/Node/ReadLine.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Node/ReadLine.purs b/src/Node/ReadLine.purs index ca9b6d8..0004681 100644 --- a/src/Node/ReadLine.purs +++ b/src/Node/ReadLine.purs @@ -107,7 +107,7 @@ foreign import prompt foreign import question :: forall eff . String - -> (String -> Eff eff Unit) + -> (String -> Eff (readline :: READLINE | eff) Unit) -> Interface -> Eff (readline :: READLINE | eff) Unit