Home

Awesome

License CI

Warp

A server handler for WAI which wraps node's http module.

Table of Contents

Installation

This library is not yet published to pursuit.
You can install this package by adding the details below to your packages.dhall:

<summary><strong>Using Spago</strong></summary>
let additions =
      { warp =
        { dependencies = [ "console", "effect", "generics-rep", "node-fs-aff", "node-http", "wai" ]
        , repo = "https://github.com/Woody88/purescript-warp.git"
        , version = "master"
        }
      , wai =
        { dependencies = [ "aff", "effect", "http-types", "node-net" ]
        , repo = "https://github.com/Woody88/purescript-wai.git"
        , version = "master"
        }
      , http-types =
        { dependencies = [ "tuples", "unicode", "generics-rep" ]
        , repo = "https://github.com/Woody88/purescript-http-types.git"
        , version = "master"
        }
      }
user@user:~$ spago install warp

Usage

Hello World

import Prelude

import Data.Tuple.Nested ((/\))
import Effect (Effect)
import Effect.Class.Console as Console
import Network.HTTP.Types (ok200)
import Network.HTTP.Types.Header (hContentType)
import Network.Wai (Application, responseStr)
import Network.Warp.Run (runSettings)
import Network.Warp.Settings (defaultSettings)

main :: Effect Unit
main = do 
    let beforeMainLoop = Console.log $ "Listening on port " <> show defaultSettings.port
    void $ runSettings defaultSettings { beforeMainLoop = beforeMainLoop } app 

app :: Application 
app req f = do
    f $ responseStr ok200 [(hContentType /\ "text/plain")] "Hello, World!"

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the contributing guidelines.

Changelog

Change log details can be found here

License

Licensed under the MIT license. Copyright (c) 2021 Woodson Delhia. All rights reserved.