1# is-accessor-descriptor [![NPM version](https://img.shields.io/npm/v/is-accessor-descriptor.svg)](https://www.npmjs.com/package/is-accessor-descriptor) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-accessor-descriptor.svg)](https://travis-ci.org/jonschlinkert/is-accessor-descriptor)
2
3> Returns true if a value has the characteristics of a valid JavaScript accessor descriptor.
4
5- [Install](#install)
6- [Usage](#usage)
7- [Examples](#examples)
8- [API](#api)
9- [Related projects](#related-projects)
10- [Running tests](#running-tests)
11- [Contributing](#contributing)
12- [Author](#author)
13- [License](#license)
14
15_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
16
17## Install
18
19Install with [npm](https://www.npmjs.com/):
20
21```sh
22$ npm i is-accessor-descriptor --save
23```
24
25## Usage
26
27```js
28var isAccessor = require('is-accessor-descriptor');
29
30isAccessor({get: function() {}});
31//=> true
32```
33
34You may also pass an object and property name to check if the property is an accessor:
35
36```js
37isAccessor(foo, 'bar');
38```
39
40## Examples
41
42`false` when not an object
43
44```js
45isAccessor('a')
46isAccessor(null)
47isAccessor([])
48//=> false
49```
50
51`true` when the object has valid properties
52
53and the properties all have the correct JavaScript types:
54
55```js
56isAccessor({get: noop, set: noop})
57isAccessor({get: noop})
58isAccessor({set: noop})
59//=> true
60```
61
62`false` when the object has invalid properties
63
64```js
65isAccessor({get: noop, set: noop, bar: 'baz'})
66isAccessor({get: noop, writable: true})
67isAccessor({get: noop, value: true})
68//=> false
69```
70
71`false` when an accessor is not a function
72
73```js
74isAccessor({get: noop, set: 'baz'})
75isAccessor({get: 'foo', set: noop})
76isAccessor({get: 'foo', bar: 'baz'})
77isAccessor({get: 'foo', set: 'baz'})
78//=> false
79```
80
81`false` when a value is not the correct type
82
83```js
84isAccessor({get: noop, set: noop, enumerable: 'foo'})
85isAccessor({set: noop, configurable: 'foo'})
86isAccessor({get: noop, configurable: 'foo'})
87//=> false
88```
89
90## Related projects
91
92* [is-accessor-descriptor](https://www.npmjs.com/package/is-accessor-descriptor): Returns true if a value has the characteristics of a valid JavaScript accessor descriptor. | [homepage](https://github.com/jonschlinkert/is-accessor-descriptor)
93* [is-data-descriptor](https://www.npmjs.com/package/is-data-descriptor): Returns true if a value has the characteristics of a valid JavaScript data descriptor. | [homepage](https://github.com/jonschlinkert/is-data-descriptor)
94* [is-descriptor](https://www.npmjs.com/package/is-descriptor): Returns true if a value has the characteristics of a valid JavaScript descriptor. Works for… [more](https://www.npmjs.com/package/is-descriptor) | [homepage](https://github.com/jonschlinkert/is-descriptor)
95* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject)
96
97## Running tests
98
99Install dev dependencies:
100
101```sh
102$ npm i -d && npm test
103```
104
105## Contributing
106
107Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/is-accessor-descriptor/issues/new).
108
109## Author
110
111**Jon Schlinkert**
112
113* [github/jonschlinkert](https://github.com/jonschlinkert)
114* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
115
116## License
117
118Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
119Released under the MIT license.
120
121***
122
123_This file was generated by [verb](https://github.com/verbose/verb) on December 28, 2015._