{"_id":"create-mixin","_rev":"156391","name":"create-mixin","description":"Mix the prototype of one class into another","dist-tags":{"latest":"3.0.0"},"maintainers":[{"name":"75lb","email":""}],"time":{"modified":"2023-03-27T19:08:08.000Z","created":"2018-05-29T23:57:59.784Z","3.0.0":"2019-11-15T20:06:57.668Z","2.0.1":"2019-05-27T12:24:34.010Z","2.0.0":"2019-05-27T12:10:19.514Z","1.1.1":"2018-12-22T12:20:42.011Z","1.1.0":"2018-12-19T22:18:13.842Z","1.0.0":"2018-05-29T23:57:59.784Z"},"users":{},"author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"versions":{"3.0.0":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"3.0.0","description":"Mix the prototype of one class into another","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"main":"dist/index.js","module":"index.mjs","license":"MIT","engines":{"node":">=10"},"scripts":{"test":"npm run dist && esm-runner test.mjs && web-runner test.mjs","dist":"rollup -c"},"devDependencies":{"@test-runner/web":"^0.2.2","esm-runner":"^0.2.1","isomorphic-assert":"^0.1.1","rollup":"^1.27.0","rollup-plugin-node-resolve":"^5.2.0"},"gitHead":"3469c8ee0b1f739bdaad2ce78f6fe951ccf93e11","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@3.0.0","_nodeVersion":"12.12.0","_npmVersion":"6.13.0","dist":{"shasum":"11d0f4878f5c6f41230f4c8f7d72b7255258217c","size":2367,"noattachment":false,"key":"/create-mixin/-/create-mixin-3.0.0.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-3.0.0.tgz"},"maintainers":[{"name":"75lb","email":""}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_3.0.0_1573848417557_0.7748545937498295"},"_hasShrinkwrap":false,"publish_time":1573848417668,"_cnpm_publish_time":1573848417668},"2.0.1":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"2.0.1","description":"Creates a mixin for use in a class extends expression","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"main":"dist/index.js","license":"MIT","engines":{"node":">=8"},"scripts":{"test":"test-runner test.js","dist":"rollup -c dist/index.config.js"},"devDependencies":{"rollup":"^1.12.4","test-runner":"^0.6.0"},"gitHead":"3e6a562e2011ddff5de2fca0b57c20128cc0ccb0","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@2.0.1","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"shasum":"78700313c284dd1ec19c86e6e288b17d9d53fc5b","size":2305,"noattachment":false,"key":"/create-mixin/-/create-mixin-2.0.1.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-2.0.1.tgz"},"maintainers":[{"name":"75lb","email":""}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_2.0.1_1558959873850_0.33315616605528975"},"_hasShrinkwrap":false,"publish_time":1558959874010,"_cnpm_publish_time":1558959874010},"2.0.0":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"2.0.0","description":"Creates a mixin for use in a class extends expression","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"main":"dist/index.js","license":"MIT","engines":{"node":">=8"},"scripts":{"test":"test-runner test.js","docs":"jsdoc2md --template README.hbs dist/index.js > README.md","dist":"rollup -c dist/index.config.js"},"devDependencies":{"jsdoc-to-markdown":"^5.0.0","rollup":"^1.12.4","test-runner":"^0.6.0"},"gitHead":"802edc96a910f7afbec25a30868779f0ddc23459","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@2.0.0","_nodeVersion":"12.3.1","_npmVersion":"6.9.0","dist":{"shasum":"d6ab0efb4d26007f974060f319a5249559fece24","size":2465,"noattachment":false,"key":"/create-mixin/-/create-mixin-2.0.0.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-2.0.0.tgz"},"maintainers":[{"name":"75lb","email":""}],"_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_2.0.0_1558959019299_0.20012314375154627"},"_hasShrinkwrap":false,"publish_time":1558959019514,"_cnpm_publish_time":1558959019514},"1.1.1":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"1.1.1","description":"Creates a mixin for use in a class extends expression","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"main":"dist/index.js","license":"MIT","engines":{"node":">=6"},"scripts":{"test":"test-runner test.js","docs":"jsdoc2md --template README.hbs dist/index.js > README.md","dist":"rollup -c dist/index.config.js"},"devDependencies":{"jsdoc-to-markdown":"^4.0.1","rollup":"^0.68.1","test-runner":"^0.5.1"},"gitHead":"cc4fbfd41a709f40f0e27a50b6130d99d721b144","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@1.1.1","_npmVersion":"6.4.1","_nodeVersion":"11.5.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"d4d8efcfd16a51225993c303e491a426b97ebfc5","size":2440,"noattachment":false,"key":"/create-mixin/-/create-mixin-1.1.1.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-1.1.1.tgz"},"maintainers":[{"name":"75lb","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_1.1.1_1545481241874_0.5284528838460976"},"_hasShrinkwrap":false,"publish_time":1545481242011,"_cnpm_publish_time":1545481242011},"1.1.0":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"1.1.0","description":"Creates a mixin for use in a class extends expression","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"main":"dist/index.js","license":"MIT","engines":{"node":">=6"},"scripts":{"test":"test-runner test.js","docs":"jsdoc2md --template README.hbs index.mjs > README.md","dist":"rollup -c dist/index.config.js"},"devDependencies":{"jsdoc-to-markdown":"^4.0.1","rollup":"^0.68.1","test-runner":"^0.5.1"},"gitHead":"57480fcfd974ef11d90265461f821cd9fb1d4dc8","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@1.1.0","_npmVersion":"6.5.0","_nodeVersion":"11.4.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"b52882f14309090c9528ccb2b912dafdd53fa77b","size":2546,"noattachment":false,"key":"/create-mixin/-/create-mixin-1.1.0.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-1.1.0.tgz"},"maintainers":[{"name":"75lb","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_1.1.0_1545257893724_0.5444762812657882"},"_hasShrinkwrap":false,"publish_time":1545257893842,"_cnpm_publish_time":1545257893842},"1.0.0":{"name":"create-mixin","author":{"name":"Lloyd Brookes","email":"75pound@gmail.com"},"version":"1.0.0","description":"Creates a mixin for use in a class extends expression","repository":{"type":"git","url":"git+https://github.com/75lb/create-mixin.git"},"keywords":["create","mixin","class","extends","es2015","es6"],"license":"MIT","engines":{"node":">=4"},"scripts":{"test":"test-runner test.js","docs":"jsdoc2md --template README.hbs index.js > README.md"},"devDependencies":{"jsdoc-to-markdown":"^4.0.1","test-runner":"^0.5.0"},"gitHead":"e928e4c428a76148aac40ff019bb4061a533758e","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"homepage":"https://github.com/75lb/create-mixin#readme","_id":"create-mixin@1.0.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"75lb","email":"75pound@gmail.com"},"dist":{"shasum":"a111de726c5b57b289c3aaf9ad3c3a0c6a2f8c2d","size":2534,"noattachment":false,"key":"/create-mixin/-/create-mixin-1.0.0.tgz","tarball":"http://name.csiicloud.com:7001/create-mixin/download/create-mixin-1.0.0.tgz"},"maintainers":[{"name":"75lb","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/create-mixin_1.0.0_1527638279716_0.9619971384168882"},"_hasShrinkwrap":false,"publish_time":1527638279784,"_cnpm_publish_time":1527638279784}},"readme":"[![view on npm](https://img.shields.io/npm/v/create-mixin.svg)](https://www.npmjs.org/package/create-mixin)\n[![npm module downloads](https://img.shields.io/npm/dt/create-mixin.svg)](https://www.npmjs.org/package/create-mixin)\n[![Build Status](https://travis-ci.org/75lb/create-mixin.svg?branch=master)](https://travis-ci.org/75lb/create-mixin)\n[![Dependency Status](https://badgen.net/david/dep/75lb/create-mixin)](https://david-dm.org/75lb/create-mixin)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)\n\n# create-mixin\n\nUseful for achieving something resembling multiple-inheritence in Javascript.\n\n```js\nconst mixInto = require('create-mixin')\nconst EventEmitter = require('events')\n\nclass EmittingArray extends mixInto(EventEmitter)(Array) {}\n```\n\n## Example\n\nGiven these two classes.\n\n\n```js\nclass Base {\n  constructor () {\n    this.ranBaseConstructor = true\n  }\n  baseMethod () {\n    return 1\n  }\n}\n\nclass Mixin {\n  constructor () {\n    this.ranMixinConstructor = true\n  }\n  someMethod () {\n    return 2\n  }\n}\n```\n\nCreate a new class mixing one class into another.\n\n```js\n> const mixInto = require('create-mixin')\n\n> class Something extends mixInto(Mixin)(Base) {}\n```\n\nBehaviour of new class.\n\n```js\n> const something = new Something()\n\n> /* new class has methods of both source classes */\n> something.baseMethod()\n1\n\n> something.someMethod()\n2\n\n> /* Only the base constructor is run */\n> something.ranBaseConstructor\ntrue\n\n> something.ranMixinConstructor\nundefined\n\n> something instanceof Base\ntrue\n\n> something instanceof Mixin\nfalse\n```\n\n* * *\n\n&copy; 2018-19 Lloyd Brookes \\<75pound@gmail.com\\>.\n","_attachments":{},"homepage":"https://github.com/75lb/create-mixin#readme","bugs":{"url":"https://github.com/75lb/create-mixin/issues"},"license":"MIT"}