{"_id":"@anfo/decorator-manager","_rev":"1-1f921955deefe3387079d5d36da4f81d","name":"@anfo/decorator-manager","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@anfo/decorator-manager","version":"1.0.0","description":"自动生成decorator并将管理所有被标记的类和方法的信息","main":"src/index.js","scripts":{"test":"babel src -d dist && node dist/test.js"},"keywords":[],"author":{"name":"Anfo"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/longjiahui/decorator-manager.git"},"dependencies":{"uuid":"^7.0.2"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.7","@babel/plugin-proposal-decorators":"^7.8.3"},"gitHead":"e054cad24f29aed60b660c30cb83fdde77adc732","bugs":{"url":"https://github.com/longjiahui/decorator-manager/issues"},"homepage":"https://github.com/longjiahui/decorator-manager#readme","_id":"@anfo/decorator-manager@1.0.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-5sn697MIk/wZgsst1mlqVWlIPixjVtyzHVY14osUJp01iWyciMD5mDuXsgoaFBphTCNlkBhz3uRV39BuBSNxHA==","shasum":"71b7c5e05d5b86b73989b2ac8eba0c008a8cf8ad","tarball":"https://registry.npmjs.org/@anfo/decorator-manager/-/decorator-manager-1.0.0.tgz","fileCount":8,"unpackedSize":12900,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeyVbcCRA9TVsSAnZWagAAno0QAKJHkQCxkRHTRFeLEAPF\nbve2MXLtwF1USNqhOI4qDfQmheYLTRVg+EFeI4Z7LBBbISEWaAQPxzD7kJvG\nRPCbOOQual4NA/ENzgrUExjiBoy/xEpSlsMlJ4wZ2FX4PpfH+y95vTQcQsKq\nvjwWsyiDf6V+vUmDYai0lIDSP7M/MVJ+4bZs1e0bzLJ62BzMH8Rk9jCpY14h\nEhuVIMFnblHHQYsJ11I42MEQU29sr+ljctsmxh0mUXQc9rR2aanovMECgXGD\n6Hf7OFSMbgKOj5SScDDHjwcFxb7zUI/vszjsR7Ld2KCee77M+AOrMGhxFym1\nbiK/jWvjPNbw8F6mXvxoHRLDzGL/fL1dOAWBvdedRz198YJwQOGayo8h+4b2\nUlDDcbwGDWQeBmybh5HaHpcZBTrS8FCpuj7uDI4YvE5p6OOtzaJMrP13aAkj\nxWgZfz/FCfrRRNdDVp/0RYikEspBdTKh74Kq3l+G3rSuOWUyxUpgugI47Vv2\nKSi1sFZ69iq+2KhQ5DeXsNc/WzC6iF/qSfaqqyCJExJYLxenQppLIzEqcDF2\nG458XcOh22TvWB6RuUdo09WW77uQRu3ePXdmImJpIU98pkHBOmfZN1+RPnbn\nX9renJwYUqH/F3kFpeJNucOh+F5thSUDtoOG8CiEm/gNE7b/a09Btr3AqUOT\nwLJ/\r\n=Ud3z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdlhhyGjmB4AGnVRxfX741n0WQiFfAJrpAgz5bhMFlUQIhAJM2zK4T7JFp2T85gQ2iPlzEHjXpSxI64Bd0e939RBab"}]},"maintainers":[{"name":"longjiahui","email":"longjiahui@hotmail.com"}],"_npmUser":{"name":"longjiahui","email":"longjiahui@hotmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/decorator-manager_1.0.0_1590253276102_0.8337926495381689"},"_hasShrinkwrap":false}},"time":{"created":"2020-05-23T17:01:15.855Z","1.0.0":"2020-05-23T17:01:16.267Z","modified":"2022-04-04T14:05:31.088Z"},"maintainers":[{"name":"longjiahui","email":"longjiahui@hotmail.com"}],"description":"自动生成decorator并将管理所有被标记的类和方法的信息","homepage":"https://github.com/longjiahui/decorator-manager#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/longjiahui/decorator-manager.git"},"author":{"name":"Anfo"},"bugs":{"url":"https://github.com/longjiahui/decorator-manager/issues"},"license":"MIT","readme":"自动生成decorator并将管理所有被标记的类和方法的信息\r\n\r\n# Install\r\n\r\n`npm i decorator-manager`\r\n```javascript\r\nconst DecoratorManger = require('decorator-manager')\r\n```\r\n\r\n# API\r\n\r\n### Constructor `DecoratorManager()`\r\n\r\n### Method `register(decoratorName: string)`\r\n\r\n- 注册后的decorator可以通过参数使用，也可以不通过参数使用\r\n\r\n### Method `forEach(targetHandler: Function, methodHandler: Function)`\r\n\r\n遍历所有配置\r\n\r\n- `targetHandler(target, config: Array, configs: Array)`: 处理装饰类的装饰器配置\r\n  - target: 当前类的prototype\r\n  - config: 该target的配置，按参数顺序为数组顺序\r\n  - configs: 同`manager.configs`\r\n- `methodHandler(target, name: string, config: Array, methodConfigs: Array`: 处理装饰方法的装饰器配置\r\n  - target: 当前类的prototype\r\n  - name: 当前方法名\r\n  - config: 该方法的配置，按参数顺序为数组顺序\r\n  - methodConfigs: 当前类的全部装饰了装饰器的方法配置\r\n  \r\n### Method `getTarget(targetId: string)`\r\n\r\n### Property `get configs: Object`\r\n\r\n返回注册的decorators的使用情况\r\n\r\n### Property `get methodConfigsKey: Symbol`\r\n### Property `get decorators: {string: Function}`\r\n\r\n# Example\r\n\r\n```javascript\r\nlet manager = new DecoratorManager();\r\n\r\nmanager.register('router');\r\nmanager.register('loginCheck');\r\nlet {router, loginCheck} = manager.decorators;\r\n\r\n@router('a', 'b')\r\nclass A{\r\n\r\n    @loginCheck\r\n    @router('c', 'd')\r\n    a(){\r\n\r\n    }\r\n}\r\nconsole.log(JSON.stringify(manager.configs));\r\n/*\r\noutput:\r\n{\r\n    //targetId -- manager.getTarget(id) can get the target\r\n    \"719f5330-68f3-11ea-9c68-f16f400f393e\": {\r\n        \"router\": [\r\n            \"a\",\r\n            \"b\"\r\n        ],\r\n        \"methodConfigs\": {\r\n            \"a\": {\r\n                \"router\": [\r\n                    \"c\",\r\n                    \"d\"\r\n                ],\r\n                \"loginCheck\": true\r\n            }\r\n        }\r\n    }\r\n}\r\n*/\r\n``` \r\n","readmeFilename":"README.md"}