koa-safe-jsonp

Safe jsonp plugins for koa.

Usage no npm install needed!

<script type="module">
  import koaSafeJsonp from 'https://cdn.skypack.dev/koa-safe-jsonp';
</script>

README

koa-safe-jsonp

NPM version build status Test coverage David deps

Safe jsonp plugins for koa.

Install

# npm .. 
$ npm i koa-safe-jsonp
# yarn ..
$ yarn add koa-safe-jsonp

Usage

const jsonp = require('koa-safe-jsonp');
const Koa = require('Koa');

const app = new Koa();
jsonp(app, {
  callback: '_callback', // default is 'callback'
  limit: 50, // max callback name string length, default is 512
});

app.use(function (ctx) {
  ctx.jsonp = {foo: "bar"};
});

app.listen(1984);

curl test it:

$ curl 'http://127.0.0.1:1984/foo.json?_callback=fn' -v

* About to connect() to 127.0.0.1 port 1984 (#0)
*   Trying 127.0.0.1...
* Adding handle: conn: 0x7fca3c004000
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fca3c004000) send_pipe: 1, recv_pipe: 0
* Connected to 127.0.0.1 (127.0.0.1) port 1984 (#0)
> GET /foo.json?_callback=fn HTTP/1.1
> User-Agent: curl/7.30.0
> Host: 127.0.0.1:1984
> Accept: */*
>
< HTTP/1.1 200 OK
< X-Powered-By: koa
< X-Content-Type-Options: nosniff
< Content-Type: application/javascript
< Content-Length: 51
< Date: Thu, 17 Jul 2014 15:29:05 GMT
< Connection: keep-alive
<
* Connection #0 to host 127.0.0.1 left intact
/**/ typeof fn === 'function' && fn({"foo":"bar"});

License

MIT