{"_id":"@alt-javascript/decorates","_rev":"1-6f208243908fa022514fc1560625e85a","name":"@alt-javascript/decorates","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@alt-javascript/decorates","version":"1.0.0","description":"A simple convention-based class decorator pattern assertion function, supporting strings and classes with static .is and .with  properties.","author":{"name":"Craig Parravicini"},"keywords":["decorator","annotation","is","with","static","class"],"publishConfig":{"registry":"https://registry.npmjs.org/"},"homepage":"https://github.com/craigparra/alt-decorates#readme","repository":{"type":"git","url":"git+https://github.com/craigparra/alt-decorates.git"},"main":"index.js","scripts":{"lint":"npx eslint \"./*.js\" \"./test/**/*.js\" --fix","test":"npm run test:unit","test:unit":"npm run test:tdd","test:tdd":"mocha --require test/fixtures","test:bdd":"npm run cucumber","coverage":"npm run nyc","mocha":"mocha --require test/fixtures","cucumber":"npx run-script-os","cucumber:windows":"cucumber-js.cmd features\\*.feature --publish-quiet","cucumber:macos:nix:default":"cucumber-js features\\*.feature --publish-quiet","nyc":"nyc --reporter=json-summary --reporter=text-summary --reporter=lcov npm run test"},"license":"MIT","dependencies":{"@alt-javascript/config":"^1.0.1","@alt-javascript/logger":"^1.0.10","config":"^3.3.6","lodash":"^4.17.21"},"devDependencies":{"@cucumber/cucumber":"^7.3.0","babel-eslint":"^10.1.0","chai":"^4.3.4","cucumber":"^7.0.0-rc.0","eslint":"^7.30.0","eslint-config-airbnb-base":"^14.2.1","eslint-plugin-cucumber":"^1.4.0","eslint-plugin-import":"^2.23.4","mocha":"^9.0.2","nyc":"^15.1.0","run-script-os":"^1.1.6"},"gitHead":"d62833b99d1d006575443e46990504590180c2ff","bugs":{"url":"https://github.com/craigparra/alt-decorates/issues"},"_id":"@alt-javascript/decorates@1.0.0","_nodeVersion":"14.17.2","_npmVersion":"7.14.0","dist":{"integrity":"sha512-uBPYr+thhFrmtD6+HXiAehdKAUJhsLTLMsYBZZ2ekMnNwjuYVVaWnmgv+PHaWnZhvqPw/JN/3yCY5qi80/Cm7Q==","shasum":"804fe2ff85707afaa17b75974f3fe311792f12a0","tarball":"https://registry.npmjs.org/@alt-javascript/decorates/-/decorates-1.0.0.tgz","fileCount":5,"unpackedSize":7085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8SEcCRA9TVsSAnZWagAA1ZkQAIn8AA2xkU2sJvsVYC4e\n+KgeNZ1daXc/wqUQzPKwspBleCx7Pa6NSdjRaLEzLVIu+m2EK3q2nwRUmr+L\nd1hpSf63sb23yNgUtf/J8VKDrnXqCyeRaa8H9C4+9RFzcSfuHOXyX8bG/D3Q\nO4ENcmOaSxvrg1MEPOPCO/4tIjQpvd760V1uOVsBTaScy0TAIbWylNA67Yk8\n/7prFom6/Blp7g07NcsgkQjX2hrpru7k91UXzZjpGdiBgqpKrgFBoqvjY9Fe\nQ2H5EqDrsbfIQ8OCG4IgAwpUKwUbTn8Gq7kzt6FUoWpJ3CFfa8qTTw1kPKVP\nQnIScjXiJhBtrig55X4OGR7rOojvEhylaLgsWsITBb4X1v9jdi+h+hk5wyvw\nbjoGywJ32BVZLZNp2++sYdMxfAgdj24URfzKo1mNcHRgMFq/qihmHMvMuAta\n+MSA76/oWbr8DmetZ5CgVVrt0w1erAa69GlYMuNncHZHtakm+NOeel677I9d\nEBfDkN7dgng9Ocpm5FVEBC32RnxlOg5MEaIRixgT3nrAZIGlvoghV7z63ZdD\nvlvS3+uEHI5n/ThFSZArksbfkyO+iEIu158HOGH/Sjo8uyO/27sWyp6yaOSx\n6/7+DroNa5L+a6b5NTqzS3psadvl0Ok17VWEFLeCj5C/6ZnhjBSrISUzu6Nc\nosi1\r\n=w2vO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5EzkqysJ33X1zpm68I9+TaxuWSEMSawK6KarSkpyCRAiA0akSGsr3MGazgUOTZuJUP7Y1PJ3on5PVv5e0VSJZY/g=="}]},"_npmUser":{"name":"craigparra","email":"craigparra@gmail.com"},"directories":{},"maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/decorates_1.0.0_1626415388495_0.9001522006820428"},"_hasShrinkwrap":false}},"time":{"created":"2021-07-16T06:03:08.117Z","1.0.0":"2021-07-16T06:03:08.610Z","modified":"2022-04-04T13:39:20.731Z"},"maintainers":[{"name":"craigparra","email":"craigparra@gmail.com"}],"description":"A simple convention-based class decorator pattern assertion function, supporting strings and classes with static .is and .with  properties.","homepage":"https://github.com/craigparra/alt-decorates#readme","keywords":["decorator","annotation","is","with","static","class"],"repository":{"type":"git","url":"git+https://github.com/craigparra/alt-decorates.git"},"author":{"name":"Craig Parravicini"},"bugs":{"url":"https://github.com/craigparra/alt-decorates/issues"},"license":"MIT","readme":"A Simple Decorator Pattern For JavaScript\n===================================\n\n[![NPM](https://nodei.co/npm/@alt-javascript/decorates.svg?downloads=true&downloadRank=true)](https://nodei.co/npm/@alt-javascript/decorates/)\n<br/>\n![Language Badge](https://img.shields.io/github/languages/top/craigparra/alt-decorates)\n![Package Badge](https://img.shields.io/npm/v/@alt-javascript/decorates) <br/>\n[release notes](https://github.com/craigparra/alt-decorates/blob/main/History.md)\n\n<a name=\"intro\">Introduction</a>\n--------------------------------\nA simple convention-based class decorator pattern assertion function, supporting strings and classes with \nstatic _.is_ and _.with_  properties.\n\n<a name=\"usage\">Usage</a>\n-------------------------\n\nDefine yourself some \"Decorators\" as so, _taking note of the funky wrapping function_ \nconvention (it's important for property decorators with parameters).\n\n```javascript\nconst Spicy  = class Spicy {\n}\nmodule.exports = function (name,exists) { return new Spicy();}\n```\nDefine a class, and decorate it as so\n\n```javascript\nconst Sour = require('../decorators/Sour');\nconst Spicy = require('../decorators/Spicy');\n\nmodule.exports = new class TomYum extends Dish {\n    static is = 'Soup';\n    static with = ['Sweet',Sour(),Spicy];\n\n    constructor(){\n        super ('Thai')// .. => this.origin = origin;\n    }\n}\n```\n\nAll good,  now you can use the assertion function to check if your class is decorated.  The \nfunction converts the Decorator name down to string, so you can mix and match with just simple \nstrings if you are being super breezy.\n\n```javascript\n\nconst decorates = require('../decorates');\nconst Sour = require('./decorators/Sour');\nconst Salty = require('./decorated/Salty');\nconst TomYum = require('./decorated/TomYum');\n\n//...\n\nassert.isTrue(decorates(Sour,TomYum), \"Sour decorates TomYum is true\");\nassert.isTrue(decorates('Spicy',TomYum), \"'Spicy' decorates TomYum is true\");\nassert.isFalse(decorates(Salty(),TomYum), \"Salty() decorates TomYum is false\");\n//...\nassert.isTrue(decorates('Thai', (new TomYum).origin), \"Thai decorates tomYum.origin is true\");\n```\n\nMight come in useful.","readmeFilename":"README.md"}