{"_id":"@caiofeiertag/aspectts","_rev":"1-b4124a3a9211dfa1cf579744f3304c34","name":"@caiofeiertag/aspectts","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@caiofeiertag/aspectts","version":"0.0.1","description":"Library for Aspect Oriented Programming in TypeScript","keywords":["Aspected Oriented Programming","AOP"],"author":{"name":"Caio Feiertag"},"homepage":"http:","license":"ISC","main":"lib/index.js","types":"lib/index.d.ts","publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"test":"jest","tsc":"ttsc","build":"ttsc","coverage":"jest --coverage"},"devDependencies":{"@types/jest":"^28.1.6","jest":"^28.1.2","jest-extended":"^3.0.1","ts-jest":"^28.0.5","ts-node":"^10.7.0","ttypescript":"^1.5.13","typescript":"^4.6.4","typescript-transform-paths":"^3.3.1"},"gitHead":"a97f7d255fdda4db3535d43df281609f1c0f4378","dependencies":{},"_id":"@caiofeiertag/aspectts@0.0.1","dist":{"shasum":"cfe68e41179d31bbbad3db14e817cbe0518c84a4","integrity":"sha512-Nk/XMNmgz8i2Gl1m4vcdFkgEAq14hf2hKEX6izaTlJ+YqdYKb1zhbvrskj+5Ks89Kmndwvuxd/woMzR9S25siA==","tarball":"https://registry.npmjs.org/@caiofeiertag/aspectts/-/aspectts-0.0.1.tgz","fileCount":138,"unpackedSize":48232,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNA3uVnR8Ozx7dGeXWIqPa7hRH1GikDCfcEEYG4oJ90QIhAO8eOZzY6ZG4BwUPXFHKUteugPotBrGpRSKQiQpvQ2YB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi1Hv7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo+CQ/+L3IQEMDfUDHGlGiE1SS7357VLM9TDunT2Z5FxP2pQYN0hfAs\r\ngJrJNtfw3wWb6xUqMUtz+AOnUW6lQszKRaA+0lxPb5eYc0e/eC5dxjhRTLmQ\r\n9WUb9k22Ogk/4zTBhttqxZsmilgfXfkhF1B3xkM8rBkif0HwO2GBhMZKbVVb\r\nzDxfWUgp3NCO2QIDBztII5qaATXYx56E/RwmTuJCfuJ+LFYvTXLUll7grA3M\r\n52A/+WsfobhvRPpax9fNCkzxnuunhXW8jjcBNCLq/ghu5HaO5UTVpiO0qKF1\r\nMIMcgcX6NFJALmU4WeAeZc8ESDnyR8ez/56WUC0/hVcs7A7s7GWeJ+fVQqR5\r\nE8REIL2gnYRTtVDZEjzbKsWd9gFDuoGwwhMOERLrL/oQyXt/AFp1JwFGVoT9\r\nHlImrU3/KQmMBAGmz2nvV4DyrDjZ2m5UCFBYwg/PThnqX8ucA3z7NIhpsRs4\r\nHwTP2XkYfQBjgrVuvo8cnCJnhzdoWYtqx6e5ih3MYy5fYOJP0t/C1Sl38s0T\r\nINZkQ7/5vn9P6p9fs5uXcRumCYJgpzUdSz3FiMymH1K9RFfM9EXXKXJXBuxH\r\nRgFwFxqE9tdWbO+y7+UpxuYqOhGfdkNQUWSnrw60WWEWOiypnny5JbkK0SnK\r\n+gOhIHlDu0H+mF3vn/QkCKClFKVGGwMzHNk=\r\n=LtmM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"caiofeiertag","email":"caiogfeiertag@gmail.com"},"directories":{},"maintainers":[{"name":"caiofeiertag","email":"caiogfeiertag@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aspectts_0.0.1_1658092539168_0.3241518821580782"},"_hasShrinkwrap":false},"0.0.2":{"name":"@caiofeiertag/aspectts","version":"0.0.2","description":"Library for Aspect Oriented Programming in TypeScript","keywords":["Aspected Oriented Programming","AOP"],"author":{"name":"Caio Feiertag"},"homepage":"https://github.com/CaioFeiertag/aspectts#readme","repository":{"type":"git","url":"https://github.com/CaioFeiertag/aspectts.git"},"license":"ISC","main":"lib/index.js","types":"lib/index.d.ts","publishConfig":{"registry":"http://registry.npmjs.org/"},"scripts":{"test":"jest","tsc":"ttsc","build":"ttsc","coverage":"jest --coverage"},"devDependencies":{"@types/jest":"^28.1.6","jest":"^28.1.2","jest-extended":"^3.0.1","ts-jest":"^28.0.5","ts-node":"^10.7.0","ttypescript":"^1.5.13","typescript":"^4.6.4","typescript-transform-paths":"^3.3.1"},"gitHead":"a97f7d255fdda4db3535d43df281609f1c0f4378","dependencies":{},"_id":"@caiofeiertag/aspectts@0.0.2","dist":{"shasum":"fbaa8d74e8737619d6dbf02c82bd08186eb30e5e","integrity":"sha512-xGp8q/0E5PO2vOE0bVxI1A8TuUHRQTFtHxmkZ7d8V0COK5YNYbGRNJ0hI/2F/QFsKuF9VfXfk7Wa3qzGHPXlNQ==","tarball":"https://registry.npmjs.org/@caiofeiertag/aspectts/-/aspectts-0.0.2.tgz","fileCount":138,"unpackedSize":49372,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCIv157aNQWe1fJuHb/zl6xNIpNmvvOa2SkdReiWYtO3gIhAJA+9urymhB9e6s92AuxT9UlZxR3Tv7dk1Kc/+Z53IYx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi33FkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqAghAAnhNlgJJiCH4szmokUl9up406xtXGdw4GjDzvv55AQte7P0Yf\r\n7JjRUJTpaoy7mXJjYWYYhg2ZaeW9hbSfy+S+6O8oUTxHs8zqM6QaqAmJ0S5i\r\n7nu7T84+rVfHUb47pVTM5ApiX1j+FdRpKUIeRhF3otsryy3mQcwEM95xq2Ma\r\nfqDPq7zPUkjBz6mrwUa3P/h33+jrbLzX1aWvXxkG6OIEU/e9mO3aWMBX+hSE\r\nhOVPO1Dlr8OgsXJQBhdNmWEFQfHWZO4pnkocR0iNetZxC4yyHAnsY7o00DBU\r\nY5v7IFd8RF32hnYB660pEcBjk9YX5ORUhkmpQbDaYp26vNnLHED63rtzIV4t\r\nS4g7UzMmUvCKMsiJR8SBBZPO18hzvnY8GpSBfZgoFrPf2+4YjT4imRusgnW2\r\nS6ZyA0g5NRkY0ps7TI9iQBN6rBA0JyljeRS/ogQv6guwwRS+9oXVqjS6fV2U\r\nVF77AboTXR2Cg3ikW8cAPtA+yZX1h6whNOknzLBsaO5PkdEd3DW8bbDyelEs\r\nSWCfI6912bpjbgyg3Dim4s94/A+OTMvB6maNt5GNMErGTMbNrwvi8HD1COLC\r\nI2pDrtEqHwDnJ4QN3L9g13I1+QO0syuaTbloN+L390yRA9WebXILVw8p9aX9\r\n98uz6/AVtV2fCFbsNzc4Zn2GW6xvgm+3VKw=\r\n=Nkwi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"caiofeiertag","email":"caiogfeiertag@gmail.com"},"directories":{},"maintainers":[{"name":"caiofeiertag","email":"caiogfeiertag@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aspectts_0.0.2_1658810723779_0.8614397106250857"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-17T21:15:39.119Z","0.0.1":"2022-07-17T21:15:39.609Z","modified":"2022-07-26T04:45:24.093Z","0.0.2":"2022-07-26T04:45:24.011Z"},"maintainers":[{"name":"caiofeiertag","email":"caiogfeiertag@gmail.com"}],"description":"Library for Aspect Oriented Programming in TypeScript","homepage":"https://github.com/CaioFeiertag/aspectts#readme","keywords":["Aspected Oriented Programming","AOP"],"author":{"name":"Caio Feiertag"},"license":"ISC","readme":"# `@caiofeiertag/aspectts`\n\n## Usage\n\n```javascript\nimport AspectTS, {\n\tIAspect,\n\tIMetadata,\n\tIPointcuts,\n} from \"@caiofeiertag/aspectts\";\n\nclass LogAspect implements IAspect {\n\tpointcuts: IPointcuts = {\n\t\tjoinpointType: \"MethodCall\",\n\t\tclassName: [],\n\t\tmethodOrProperty: [],\n\t};\n\tbefore(metadata: IMetadata): void {\n\t\tconsole.log(\n\t\t\t`Chamou '${metadata.methodName}' da '${metadata.className}' com: ${metadata.arguments}`\n\t\t);\n\t}\n\tafter(metadata: IMetadata): void {\n\t\tconsole.log(\n\t\t\t`Retornou ${metadata.result} após chamar '${metadata.methodName}' da '${metadata.className}'`\n\t\t);\n\t}\n}\n\nclass Math {\n\tadd(a: number, b: number): number {\n\t\treturn a + b;\n\t}\n\tdivide(a: number, b: number): number {\n\t\tif (b === 0) {\n\t\t\tthrow new Error(\"Erro ao tentar dividir por zero\");\n\t\t}\n\t\treturn a / b;\n\t}\n}\n\nAspectTS.registerAspects([new LogAspect()]);\nAspectTS.registerTargets([Math]);\n\nconst math = new Math();\nmath.add(1, 1);\nmath.divide(2, 1);\n\n// Result:\n// Chamou 'add' da 'Math' com: 1,1\n// Retornou 2 após chamar 'add' da 'Math'\n// Chamou 'divide' da 'Math' com: 2,1\n// Retornou 2 após chamar 'divide' da 'Math'\n```\n","readmeFilename":"README.md","repository":{"type":"git","url":"https://github.com/CaioFeiertag/aspectts.git"}}