Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
02090c3129
|
|||
|
bb25b8f562
|
|||
|
e3c89adaed
|
|||
|
854ceacba3
|
|||
|
a29203ce14
|
|||
|
a7b46d632a
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "purescript-csv-stream",
|
||||
"version": "v1.1.11",
|
||||
"version": "v1.1.14",
|
||||
"dependencies": {
|
||||
"csv-parse": "^5.5.5",
|
||||
"csv-stringify": "^6.4.6"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package:
|
||||
name: csv-stream
|
||||
publish:
|
||||
version: '1.1.11'
|
||||
version: '1.1.14'
|
||||
license: 'GPL-3.0-or-later'
|
||||
location:
|
||||
githubOwner: 'cakekindel'
|
||||
|
||||
@@ -10,9 +10,9 @@ class ParserWithColumns extends Parser {
|
||||
/** @type {(s: import('csv-parse').Options) => () => ParserWithColumns} */
|
||||
export const makeImpl = c => () => {
|
||||
const parser = new ParserWithColumns(c)
|
||||
while (parser.columns.length === 0) {
|
||||
parser.columns = parser.read() || [];
|
||||
}
|
||||
parser.once('readable', () => {
|
||||
parser.columns = parser.read();
|
||||
})
|
||||
return parser
|
||||
}
|
||||
|
||||
|
||||
@@ -18,11 +18,12 @@ import Data.Filterable (filter)
|
||||
import Data.Map (Map)
|
||||
import Data.Map as Map
|
||||
import Data.Maybe (Maybe(..))
|
||||
import Data.Newtype (wrap)
|
||||
import Data.Nullable (Nullable)
|
||||
import Data.Nullable as Nullable
|
||||
import Data.Traversable (for_)
|
||||
import Effect (Effect)
|
||||
import Effect.Aff (Canceler(..), makeAff)
|
||||
import Effect.Aff (Canceler(..), delay, makeAff)
|
||||
import Effect.Aff.Class (class MonadAff, liftAff)
|
||||
import Effect.Class (liftEffect)
|
||||
import Effect.Exception (error)
|
||||
@@ -97,6 +98,7 @@ parse config csv = do
|
||||
-- | Loop until the stream is closed, invoking the callback with each record as it is parsed.
|
||||
foreach :: forall @r rl x m. MonadRec m => MonadAff m => RowToList r rl => ReadCSVRecord r rl => CSVParser r x -> ({ | r } -> m Unit) -> m Unit
|
||||
foreach stream cb = whileJust do
|
||||
liftAff $ delay $ wrap 0.0
|
||||
isReadable <- liftEffect $ Stream.readable stream
|
||||
liftAff $ when (not isReadable) $ makeAff \res -> do
|
||||
stop <- flip (Event.once Stream.readableH) stream $ res $ Right unit
|
||||
|
||||
Reference in New Issue
Block a user