Skip to content

Latest commit

 

History

History
81 lines (65 loc) · 2.67 KB

README.md

File metadata and controls

81 lines (65 loc) · 2.67 KB

Rill
@rill/refresh-with
API stability Standard NPM version Downloads Gitter Chat

Utility to redirect/refresh with an updated query string.

Installation

npm install @rill/refresh-with

Example

const app = require('rill')()
const refreshWith = require('@rill/refresh-with')

// Setup the middleware.
app.use(refreshWith())

// Use the 'res.refreshWith' utility.
// Example `href` is `http://test.com/my-view?modal=hello&test=1`
app.get('/my-view', ({ req, res }, next)=> {
	// Example usecase of removing a modal from the querystring.
	if (req.query.modal) {
		res.refreshWith({ modal: '', success: true })
		// Removes `modal` and adds `success=true`
		res.get('Location') // -> `http://test.com/my-view?success=true&test=1`
	}
})

// Example `referrer` is `http://test.com/my-view?modal=hello&test=1`
app.get('/from-somewhere-else', ({ req, res }, next)=> {
	// Example usecase of redirecting to the previous page while unsetting a modal.
	res.refreshWith({ modal: '', success: true }, { url: 'back', hash: '#top' })
	// Removes `modal` and adds `success=true to the referrer`
	res.get('Location') // -> `http://test.com/my-view?success=true&test=1`
})

API

###ctx.res.refreshWith(setters:Object, options:Object) Similar to calling ctx.res.redirect but will update the current querystring with setters and default the url to the current href. Specify the options.url option as back to automatically redirect to the referrer page.

You can also specify options.alt for the fallback when using options.url = 'back'.


Contributions

  • Use npm test to run tests.

Please feel free to create a PR!