{"_id":"composite-class","_rev":"69491","name":"composite-class","description":"An isomorphic JavaScript class for building composite structures. Suitable for use as a super class or mixin.","dist-tags":{"latest":"2.0.1"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"time":{"modified":"2021-06-03T10:23:00.000Z","created":"2016-02-08T19:06:35.586Z","2.0.1":"2019-12-03T19:53:44.558Z","2.0.0":"2019-11-15T20:15:33.497Z","1.0.0":"2019-11-04T11:56:50.611Z","0.3.0":"2018-12-24T19:00:32.605Z","0.2.1":"2017-06-03T22:58:34.441Z","0.2.0":"2016-03-16T12:41:41.477Z","0.1.2":"2016-02-25T18:03:54.082Z","0.1.1":"2016-02-17T15:36:34.309Z","0.1.0":"2016-02-08T19:06:35.586Z"},"users":{},"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"versions":{"2.0.1":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"2.0.1","description":"An isomorphic JavaScript class for building composite structures. Suitable for use as a super class or mixin.","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"dist/index.js","module":"index.mjs","keywords":["composite","design","pattern","es6","isomorphic","load-anywhere","tree"],"engines":{"node":">=10"},"scripts":{"test":"npm run dist && esm-runner test.mjs && web-runner test.mjs","dist":"rollup -f umd -n Composite -o dist/index.js index.mjs","docs":"jsdoc2md -c jsdoc.conf -t README.hbs index.mjs > README.md"},"devDependencies":{"@test-runner/web":"^0.3.2","esm-runner":"^0.3.3","isomorphic-assert":"^0.1.1","jsdoc-to-markdown":"^5.0.3","rollup":"^1.27.8"},"dependencies":{},"standard":{"ignore":["dist"]},"gitHead":"cf1913fbfb17fad44fc69f7edd7f4f42d2fbfcc6","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@2.0.1","_nodeVersion":"13.2.0","_npmVersion":"6.13.1","dist":{"shasum":"3fa7ad17a120f202350eace1d5324694db48075a","size":4724,"noattachment":false,"key":"/composite-class/-/composite-class-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-2.0.1.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composite-class_2.0.1_1575402824204_0.4101537090700327"},"_hasShrinkwrap":false,"publish_time":1575402824558,"_cnpm_publish_time":1575402824558},"2.0.0":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"2.0.0","description":"An isomorphic JavaScript class for building composite structures. Suitable for use as a super class or mixin.","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"dist/index.js","module":"index.mjs","keywords":["composite","design","pattern","es6","isomorphic","load-anywhere","tree"],"engines":{"node":">=10"},"scripts":{"test":"npm run dist && esm-runner test.mjs && web-runner test.mjs","dist":"rollup -f umd -n Composite -o dist/index.js index.mjs","docs":"jsdoc2md -c jsdoc.conf -t README.hbs index.mjs > README.md"},"devDependencies":{"@test-runner/web":"^0.2.2","esm-runner":"^0.2.1","isomorphic-assert":"^0.1.1","jsdoc-to-markdown":"^5.0.2","rollup":"^1.27.0"},"dependencies":{},"standard":{"ignore":["dist"]},"gitHead":"2912f5bc209a9dfb964e79af74ad2a475578cef2","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@2.0.0","_nodeVersion":"12.12.0","_npmVersion":"6.13.0","dist":{"shasum":"c67f44c00135747e9bc1a624ff52463c3b8ef26a","size":4667,"noattachment":false,"key":"/composite-class/-/composite-class-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-2.0.0.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composite-class_2.0.0_1573848933394_0.912439794787808"},"_hasShrinkwrap":false,"publish_time":1573848933497,"_cnpm_publish_time":1573848933497},"1.0.0":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"1.0.0","description":"An isomorphic JavaScript class for building composite structures. Suitable for use as a super class or mixin.","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"dist/index.js","keywords":["composite","design","pattern","es6","isomorphic","load-anywhere","tree"],"engines":{"node":">=8"},"scripts":{"test":"npm run dist && test-runner test.js","dist":"rollup -f umd -n Composite -o dist/index.js index.mjs","docs":"jsdoc2md -c jsdoc.conf -t README.hbs index.mjs > README.md"},"devDependencies":{"jsdoc-to-markdown":"^5.0.2","rollup":"^1.26.3","test-runner":"^0.6.2"},"dependencies":{},"standard":{"ignore":["dist"]},"gitHead":"da78c522d9ef3074a25c87addbbd44a9905b59a1","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@1.0.0","_nodeVersion":"12.12.0","_npmVersion":"6.12.1","dist":{"shasum":"6ae3e54fb6313e2ccd2edfc1d87ef31ace06a5bf","size":4621,"noattachment":false,"key":"/composite-class/-/composite-class-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-1.0.0.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composite-class_1.0.0_1572868610484_0.4842095572833063"},"_hasShrinkwrap":false,"publish_time":1572868610611,"_cnpm_publish_time":1572868610611},"0.3.0":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.3.0","description":"A general purpose composite class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"dist/index.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=6"},"scripts":{"test":"npm run dist && test-runner test.js","dist":"rollup -c build/index.config.js","docs":"jsdoc2md -c build/jsdoc.conf -t README.hbs index.mjs > README.md"},"devDependencies":{"rollup":"^0.68.2","test-runner":"^0.5.1"},"dependencies":{},"gitHead":"99488add4534473ab2cdf3c52db0400497a077ec","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.3.0","_npmVersion":"6.5.0","_nodeVersion":"11.5.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"3c05d56aca1cfadec6a21ce0b9d663255e32e040","size":4029,"noattachment":false,"key":"/composite-class/-/composite-class-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.3.0.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composite-class_0.3.0_1545678032436_0.6182518089208608"},"_hasShrinkwrap":false,"publish_time":1545678032605,"_cnpm_publish_time":1545678032605},"0.2.1":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.2.1","description":"composite-class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"composite-class.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=4"},"scripts":{"test":"test-runner test.js","docs":"jsdoc2md -t README.hbs composite-class.js > README.md; echo"},"devDependencies":{"test-runner":"^0.3.0"},"dependencies":{"array-back":"^1.0.4","find-replace":"^1.0.3"},"gitHead":"44904c32b3bc7c1c1af34a40833afb87c8bf1867","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.2.1","_npmVersion":"5.0.2","_nodeVersion":"8.0.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"75d0b01d23fac110a2f31c3577726a67bd7b729a","size":3386,"noattachment":false,"key":"/composite-class/-/composite-class-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.2.1.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/composite-class-0.2.1.tgz_1496530713477_0.7475566396024078"},"directories":{},"publish_time":1496530714441,"_cnpm_publish_time":1496530714441,"_hasShrinkwrap":false},"0.2.0":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.2.0","description":"composite-class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"./lib/composite-class.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=0.10.0"},"scripts":{"test":"tape test/*.js","docs":"jsdoc2md2 -t jsdoc2md/README.md lib/*.js > README.md; echo"},"devDependencies":{"tape":"^4.4.0"},"gitHead":"c3a055355133f9a6d5f23b57a4abc7057c062dca","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.2.0","_shasum":"3c6275a9b828f449744888123a441342b32f343f","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.8.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"3c6275a9b828f449744888123a441342b32f343f","size":2763,"noattachment":false,"key":"/composite-class/-/composite-class-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.2.0.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/composite-class-0.2.0.tgz_1458132099263_0.23079805774614215"},"directories":{},"publish_time":1458132101477,"_cnpm_publish_time":1458132101477,"_hasShrinkwrap":false},"0.1.2":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.1.2","description":"composite-class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"./lib/composite-class.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=0.10.0"},"scripts":{"test":"tape test/*.js","docs":"jsdoc2md2 -t jsdoc2md/README.md lib/*.js > README.md; echo"},"devDependencies":{"tape":"^4.4.0"},"gitHead":"9b642d3e4dd0bc426c455558575bd1db4abbf136","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.1.2","_shasum":"8eb9bdcfc537f067f91b775c8563d6edbc956cde","_from":".","_npmVersion":"3.7.5","_nodeVersion":"5.7.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"8eb9bdcfc537f067f91b775c8563d6edbc956cde","size":2712,"noattachment":false,"key":"/composite-class/-/composite-class-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.1.2.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/composite-class-0.1.2.tgz_1456423431314_0.5532066212035716"},"directories":{},"publish_time":1456423434082,"_cnpm_publish_time":1456423434082,"_hasShrinkwrap":false},"0.1.1":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.1.1","description":"composite-class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"./lib/composite-class.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=0.10.0"},"scripts":{"test":"tape test/*.js","docs":"jsdoc2md2 -t jsdoc2md/README.md lib/*.js > README.md; echo"},"devDependencies":{"tape":"^4.4.0"},"gitHead":"de24297192e592199b3af188c0829b064b36bf26","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.1.1","_shasum":"f82fd0b034eb807899cdb367a71fb9bd5414788d","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.6.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"f82fd0b034eb807899cdb367a71fb9bd5414788d","size":2617,"noattachment":false,"key":"/composite-class/-/composite-class-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.1.1.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/composite-class-0.1.1.tgz_1455723390283_0.6529268086887896"},"directories":{},"publish_time":1455723394309,"_cnpm_publish_time":1455723394309,"_hasShrinkwrap":false},"0.1.0":{"name":"composite-class","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"0.1.0","description":"composite-class","repository":{"type":"git","url":"git+https://github.com/75lb/composite-class.git"},"license":"MIT","main":"./lib/composite-class.js","keywords":["composite","design","pattern","es6"],"engines":{"node":">=0.10.0"},"scripts":{"test":"tape test/*.js","docs":"jsdoc2md -t jsdoc2md/README.hbs lib/*.js > README.md; echo"},"gitHead":"bb7a50fc8f14ba6509df6f16b3d6b25ee192cd31","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"homepage":"https://github.com/75lb/composite-class#readme","_id":"composite-class@0.1.0","_shasum":"e9bac8e559fe7447e41f485910f6dff2c9197554","_from":".","_npmVersion":"3.7.0","_nodeVersion":"5.5.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"e9bac8e559fe7447e41f485910f6dff2c9197554","size":1905,"noattachment":false,"key":"/composite-class/-/composite-class-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/composite-class/download/composite-class-0.1.0.tgz"},"maintainers":[{"name":"75lb","email":"75pound@gmail.com"}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/composite-class-0.1.0.tgz_1454958392651_0.7318088072352111"},"directories":{},"publish_time":1454958395586,"_cnpm_publish_time":1454958395586,"_hasShrinkwrap":false}},"readme":"[![view on npm](https://img.shields.io/npm/v/composite-class.svg)](https://www.npmjs.org/package/composite-class)\n[![npm module downloads](https://img.shields.io/npm/dt/composite-class.svg)](https://www.npmjs.org/package/composite-class)\n[![Build Status](https://travis-ci.org/75lb/composite-class.svg?branch=master)](https://travis-ci.org/75lb/composite-class)\n[![Dependency Status](https://badgen.net/david/dep/75lb/composite-class)](https://david-dm.org/75lb/composite-class)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)\n\n# composite-class\n\nAn isomorphic, load-anywhere JavaScript class for building [composite structures](https://en.wikipedia.org/wiki/Composite_pattern). Suitable for use as a super class or mixin.\n\n## Synopsis\n\nThe `Composite` class implements the [composite design pattern](https://en.wikipedia.org/wiki/Composite_pattern), useful for building and traversing tree structures. For example, build a composite structure representing the French government:\n\n```js\nconst Composite = require('composite-class')\n\nclass Person extends Composite {\n  constructor (name, role) {\n    super()\n    this.name = name\n    this.role = role\n  }\n\n  toString () {\n    return `${this.name} [${this.role}]`\n  }\n}\n\nconst government = new Person('Gouvernement de la République française', 'Government')\nconst headOfState = new Person('Emmanuel Macron', 'Head of State')\nconst primeMinister = new Person('Édouard Philippe', 'Prime Minister')\nconst ministerArmedForces = new Person('Florence Parly', 'Minister of the Armed Forces')\nconst ministerEconomy = new Person('Bruno Le Maire', 'Minister of Finance and the Economy')\n\ngovernment.add(headOfState)\nheadOfState.add(primeMinister)\nprimeMinister.add(ministerArmedForces)\nprimeMinister.add(ministerEconomy)\n\nconsole.log(government.tree())\n```\n\nOutput.\n\n```\n- Gouvernement de la République française [Government]\n  - Emmanuel Macron [Head of State]\n    - Édouard Philippe [Prime Minister]\n      - Florence Parly [Minister of the Armed Forces]\n      - Bruno Le Maire [Minister of Finance and the Economy]\n```\n\nThe `Composite` class implements an [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterator_protocol) interface, therefore can be iterated using standard JavaScript methods.\n\n```js\nfor (const person of government) {\n  console.log('Processing:', person.name)\n}\n```\n\nOutput.\n\n```\nProcessing: Gouvernement de la République française\nProcessing: Emmanuel Macron\nProcessing: Édouard Philippe\nProcessing: Florence Parly\nProcessing: Bruno Le Maire\n```\n\n<a name=\"module_composite-class\"></a>\n\n## composite-class\nAn isomorphic, load-anywhere JavaScript class for building [composite structures](https://en.wikipedia.org/wiki/Composite_pattern). Suitable for use as a super class or mixin.\n\n**Example**  \n```js\nconst Composite = require('composite-class')\n```\n\n* [composite-class](#module_composite-class)\n    * [Composite](#exp_module_composite-class--Composite) ⏏\n        * [.children](#module_composite-class--Composite+children) : <code>Array</code>\n        * [.parent](#module_composite-class--Composite+parent) : <code>Composite</code>\n        * [.add()](#module_composite-class--Composite+add) ⇒ <code>Composite</code>\n        * [.append(child)](#module_composite-class--Composite+append) ⇒ <code>Composite</code>\n        * [.prepend(child)](#module_composite-class--Composite+prepend) ⇒ <code>Composite</code>\n        * [.remove(child)](#module_composite-class--Composite+remove) ⇒ <code>Composite</code>\n        * [.level()](#module_composite-class--Composite+level) ⇒ <code>number</code>\n        * [.getDescendentCount()](#module_composite-class--Composite+getDescendentCount) ⇒ <code>number</code>\n        * [.tree()](#module_composite-class--Composite+tree) ⇒ <code>string</code>\n        * [.root()](#module_composite-class--Composite+root) ⇒ <code>Composite</code>\n        * [.Symbol.iterator()](#module_composite-class--Composite+Symbol.iterator)\n        * [.inspect()](#module_composite-class--Composite+inspect)\n        * [.parents()](#module_composite-class--Composite+parents) ⇒ <code>Array.&lt;Composite&gt;</code>\n\n<a name=\"exp_module_composite-class--Composite\"></a>\n\n### Composite ⏏\n**Kind**: Exported class  \n<a name=\"module_composite-class--Composite+children\"></a>\n\n#### composite.children : <code>Array</code>\nChildren\n\n**Kind**: instance property of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+parent\"></a>\n\n#### composite.parent : <code>Composite</code>\nParent\n\n**Kind**: instance property of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+add\"></a>\n\n#### composite.add() ⇒ <code>Composite</code>\nAdd a child\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+append\"></a>\n\n#### composite.append(child) ⇒ <code>Composite</code>\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| child | <code>Composite</code> | the child node to append |\n\n<a name=\"module_composite-class--Composite+prepend\"></a>\n\n#### composite.prepend(child) ⇒ <code>Composite</code>\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| child | <code>Composite</code> | the child node to prepend |\n\n<a name=\"module_composite-class--Composite+remove\"></a>\n\n#### composite.remove(child) ⇒ <code>Composite</code>\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n\n| Param | Type | Description |\n| --- | --- | --- |\n| child | <code>Composite</code> | the child node to remove |\n\n<a name=\"module_composite-class--Composite+level\"></a>\n\n#### composite.level() ⇒ <code>number</code>\ndepth level in the tree, 0 being root.\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+getDescendentCount\"></a>\n\n#### composite.getDescendentCount() ⇒ <code>number</code>\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+tree\"></a>\n\n#### composite.tree() ⇒ <code>string</code>\nprints a tree using the .toString() representation of each node in the tree\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+root\"></a>\n\n#### composite.root() ⇒ <code>Composite</code>\nReturns the root instance of this tree.\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+Symbol.iterator\"></a>\n\n#### composite.Symbol.iterator()\ndefault iteration strategy\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+inspect\"></a>\n\n#### composite.inspect()\nUsed by node's `util.inspect`.\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n<a name=\"module_composite-class--Composite+parents\"></a>\n\n#### composite.parents() ⇒ <code>Array.&lt;Composite&gt;</code>\nReturns an array of ancestors\n\n**Kind**: instance method of [<code>Composite</code>](#exp_module_composite-class--Composite)  \n\n## Load anywhere\n\nThis library is compatible with Node.js, the Web and any style of module loader. It can be loaded anywhere, natively without transpilation.\n\nNode.js:\n\n```js\nconst Composite = require('composite-class')\n```\n\nWithin Node.js with ECMAScript Module support enabled:\n\n```js\nimport Composite from 'composite-class'\n```\n\nWithin an modern browser ECMAScript Module:\n\n```js\nimport Composite from './node_modules/composite-class/index.mjs'\n```\n\nOld browser (adds `window.Composite`):\n\n```html\n<script nomodule src=\"./node_modules/composite-class/dist/index.js\"></script>\n```\n\n* * *\n\n&copy; 2016-20 Lloyd Brookes \\<75pound@gmail.com\\>.\n\nIsomorphic test suite by [test-runner](https://github.com/test-runner-js/test-runner) and [web-runner](https://github.com/test-runner-js/web-runner). Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).\n","_attachments":{},"homepage":"https://github.com/75lb/composite-class#readme","bugs":{"url":"https://github.com/75lb/composite-class/issues"},"license":"MIT"}