From f9078b6440eefd3a8ebf15ff07b61d2bc1b27b8b Mon Sep 17 00:00:00 2001 From: birhoff Date: Tue, 16 Feb 2016 15:44:21 +0700 Subject: [PATCH] Close #171 PR: Fix user-agent string RFC 2616 Section 14.43. Fixes #169 --- index.js | 3 ++- readme.md | 3 ++- test/headers.js | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 2081c58..f54f3b9 100644 --- a/index.js +++ b/index.js @@ -18,6 +18,7 @@ const createErrorClass = require('create-error-class'); const nodeStatusCodes = require('node-status-codes'); const isPlainObj = require('is-plain-obj'); const isRetryAllowed = require('is-retry-allowed'); +const pkg = require('./package.json'); function requestAsEventEmitter(opts) { opts = opts || {}; @@ -202,7 +203,7 @@ function normalizeArguments(url, opts) { ); opts.headers = Object.assign({ - 'user-agent': 'https://github.com/sindresorhus/got', + 'user-agent': `${pkg.name}/${pkg.version} (https://github.com/sindresorhus/got)`, 'accept-encoding': 'gzip,deflate' }, lowercaseKeys(opts.headers)); diff --git a/readme.md b/readme.md index f5fcdec..5b4f085 100644 --- a/readme.md +++ b/readme.md @@ -263,10 +263,11 @@ It's a good idea to set the `'user-agent'` header so the provider can more easil ```js const got = require('got'); +const pkg = require('./package.json'); got('todomvc.com', { headers: { - 'user-agent': 'https://github.com/your-username/repo-name' + 'user-agent': `my-module/${pkg.version} (https://github.com/username/my-module)` } }); ``` diff --git a/test/headers.js b/test/headers.js index 820d71d..c072da1 100644 --- a/test/headers.js +++ b/test/headers.js @@ -1,5 +1,6 @@ import test from 'ava'; import got from '../'; +import pkg from '../package.json'; import {createServer} from './helpers/server'; let s; @@ -17,7 +18,7 @@ test.before('setup', async () => { test('user-agent', async t => { const headers = (await got(s.url, {json: true})).body; - t.is(headers['user-agent'], 'https://github.com/sindresorhus/got'); + t.is(headers['user-agent'], `${pkg.name}/${pkg.version} (https://github.com/sindresorhus/got)`); }); test('accept-encoding', async t => {