{"_id":"@aminya/mixto","_rev":"1-b212fd1da12128f47db110250007f4f2","name":"@aminya/mixto","dist-tags":{"latest":"1.0.0-aminya.1"},"versions":{"1.0.0-aminya.1":{"name":"@aminya/mixto","version":"1.0.0-aminya.1","description":"A mixin superclass. Its subclasses have `.extend` and `.includeInto` methods to mix behavior into other objects and classes.","main":"lib/mixin","scripts":{"prepublish":"grunt clean coffee lint && cpy src/es6.js lib","test":"grunt test"},"repository":{"type":"git","url":"git+https://github.com/aminya/mixto.git"},"keywords":["mixin","trait"],"bugs":{"url":"https://github.com/aminya/mixto/issues"},"licenses":[{"type":"MIT","url":"http://github.com/aminya/mixto/raw/master/LICENSE.md"}],"devDependencies":{"coffee-script":"~1.6.3","jasmine-focused":"~0.19.0","grunt-contrib-coffee":"~0.7.0","grunt-cli":"~0.1.8","grunt":"~0.4.1","grunt-shell":"~0.2.2","grunt-coffeelint":"0.0.6","rimraf":"~2.2.2","cpy-cli":"^3.1.1"},"author":{"name":"Nathan Sobo"},"gitHead":"2ea16ab7ff2f589cb020775c3a624e51bbbc02f2","homepage":"https://github.com/aminya/mixto#readme","_id":"@aminya/mixto@1.0.0-aminya.1","_nodeVersion":"14.8.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-jnqIIlJXD6oj2Tt/Ud04nM3UHKPqe2cbRxFAwVVc61XCguVFqQ0Wc847iIm1smdq3CzOk7e2jMD+Uj6vckNNmg==","shasum":"49a960312807b0e87869715a334a2d48ffa0c7e4","tarball":"https://registry.npmjs.org/@aminya/mixto/-/mixto-1.0.0-aminya.1.tgz","fileCount":8,"unpackedSize":12881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTJ7bCRA9TVsSAnZWagAA0CUP/2gZm6J2syalX2IYxZPj\nmLEwi7HmKs/EhH4wMZ2PrgKJXTtBOq58s/HqeXucBlBh0zyxZbl5PSTdCIzh\n3wsb2gbnEQFRkoijn5bu20u6GiX3QwiSqnl7VCE7C0w/PsOYVAhX0kNSZZtg\nlkMgonLXYWRTNj3DVIXY0M9/9h5CNQid27rKa6HnciGSFVwTMzz6UItWGyH0\niMCZYFI1W++qRZrpj8GbX+oZs++kNjWpLZB1GSKyiIHkMcySxZVJq9LjwBQz\neeukCfrDHg4aIfg9sMtqU2lnIRlDI7FMKOXibUqenMrR9z9haVShhB4W6vHA\nuMqV4EcghVlsOX9WPH3jn/nq0ruIH5j4xCBvylDSWgId5sCtEovd94M2dSF8\nE8TkPl/6sOKrLP8d9uf31QTtrLdiNTGXnXLSIoibUh7gVsXV4r8zaGEqlo8X\n3SeMoB239h1wmCvr8RR3ZkfnWI+OLsUpRcI9IEgKQDnmViGV7khR6O6qngcS\nR3/0BZzir1YFcq9bzPcTa8bADeqcwOf8kPdQk5/gZIB76OUw5DGqGG/p+u8v\nrOahspzz3aRht3/2nwWbO5S5YdSS8oWM4gb+2f6hpM2JsQDdMhTwwrXguapZ\nMKruJJBU+4CE0mZqVQE1dPANzbTD0qz3uh2fCSNxr/lsGoSenjr9Y7HEaBGz\nz+qv\r\n=Uw39\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdXF6YWE2ak8jUGcH9mIzUmKDBrV7bjYKXYQknwQmiLgIhAJL2XcwRogbN6AvTPLIlLlx9Xgru8UHHycWlJV2ROv7b"}]},"maintainers":[{"name":"aminya","email":"aminyahyaabadi74@gmail.com"}],"_npmUser":{"name":"aminya","email":"aminyahyaabadi74@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mixto_1.0.0-aminya.1_1598856922718_0.483046383462288"},"_hasShrinkwrap":false}},"time":{"created":"2020-08-31T06:55:22.619Z","1.0.0-aminya.1":"2020-08-31T06:55:22.815Z","modified":"2022-04-04T13:49:26.162Z"},"maintainers":[{"name":"aminya","email":"aminyahyaabadi74@gmail.com"}],"description":"A mixin superclass. Its subclasses have `.extend` and `.includeInto` methods to mix behavior into other objects and classes.","homepage":"https://github.com/aminya/mixto#readme","keywords":["mixin","trait"],"repository":{"type":"git","url":"git+https://github.com/aminya/mixto.git"},"author":{"name":"Nathan Sobo"},"bugs":{"url":"https://github.com/aminya/mixto/issues"},"readme":"# Mixto: A simple mixin superclass [![Build Status](https://travis-ci.org/aminya/mixto.png?branch=master)](https://travis-ci.org/aminya/mixto)\r\n```\r\nnpm install @aminya/mixto\r\n```\r\n\r\n# JavaScript Classes (ES6)\r\n\r\nTo create a mixin, subclass mixto:\r\n\r\n```js\r\nconst Mixin = require('mixto/lib/es6')\r\n\r\nclass MyMixin extends Mixin {\r\n  static classMethod() { console.log(\"foo\"); }\r\n  instanceMethod() { console.log(\"bar\"); }\r\n}\r\n```\r\n\r\nThen mix into classes with `.includeInto`:\r\n\r\n```js\r\nclass MyClass {\r\n  static initClass() {\r\n    MyMixin.includeInto(this); // adds all the mixin's class properties or prototype properties to the target class if they aren't already defined\r\n  }\r\n}\r\nMyClass.initClass();\r\n\r\nMyClass.classMethod();\r\n(new MyClass).instanceMethod();\r\n```\r\n\r\nOr extend individual objects with `.extend`:\r\n\r\n```js\r\nconst myObject = {a: 1, b: 2};\r\nMyMixin.extend(myObject);   // adds all the mixin's prototype properties to the target object if they aren't already defined\r\nmyObject.instanceMethod();\r\n```\r\n\r\nOr build standalone instances of your 'mixin':\r\n\r\n```js\r\nconst standalone = new MyMixin;\r\nstandalone.instanceMethod();\r\n```\r\n\r\n\r\n# CoffeeScript 1 Classes (ES5)\r\n\r\nTo create a mixin, subclass mixto:\r\n\r\n```coffee\r\nMixin = require 'mixto'\r\n\r\nclass MyMixin extends Mixin\r\n  @classMethod: -> console.log(\"foo\")\r\n  instanceMethod: -> console.log(\"bar\")\r\n```\r\n\r\nThen mix into classes with `.includeInto`:\r\n\r\n```coffee\r\nclass MyClass\r\n  MyMixin.includeInto(this)\r\n\r\nMyClass.classMethod()\r\n(new MyClass).instanceMethod()\r\n```\r\n\r\nOr extend individual objects with `.extend`:\r\n\r\n```coffee-script\r\nmyObject = {a: 1, b: 2}\r\nMyMixin.extend(myObject)\r\nmyObject.instanceMethod()\r\n```\r\n\r\nOr build standalone instances of your 'mixin':\r\n\r\n```coffee-script\r\nstandalone = new MyMixin\r\nstandalone.instanceMethod()\r\n```\r\n","readmeFilename":"README.md"}