prismy-session
TypeScript icon, indicating that this package has built-in type declarations

4.0.0-0 • Public • Published

prismy-session

📒 Session for prismy

Build Status codecov NPM download Language grade: JavaScript

npm i prismy-session

Example

import {
  prismy,
  methodSelector,
  createUrlEncodedBodySelector,
  redirect,
  res
} from 'prismy'
import createSession from 'prismy-session'
import JWTCookieStrategy from 'prismy-session-strategy-jwt-cookie'

const { sessionSelector, sessionMiddleware } = createSession(
  new JWTCookieStrategy({
    secret: 'RANDOM_HASH'
  })
)

const urlEncodedBodySelector = createUrlEncodedBodySelector()

export default prismy(
  [methodSelector, sessionSelector, urlEncodedBodySelector],
  (method, session, body) => {
    if (method === 'POST') {
      session.data = { message: body.message }
      return redirect('/')
    } else {
      const { data } = session
      return res(
        [
          '<!DOCTYPE html>',
          '<body>',
          `<p>Message: ${data != null ? (data as any).message : 'NULL'}</p>`,
          '<form action="/" method="post">',
          '<input name="message">',
          '<button type="submit">Send</button>',
          '</form>',
          '</body>'
        ].join('')
      )
    }
  },
  [sessionMiddleware]
)

Session strategies

Readme

Keywords

Package Sidebar

Install

npm i prismy-session

Weekly Downloads

6

Version

4.0.0-0

License

MIT

Unpacked Size

48.3 kB

Total Files

17

Last publish

Collaborators

  • rokt33r
  • rohjs