{"_id":"@alibaba_inc/decorators_pro","name":"@alibaba_inc/decorators_pro","dist-tags":{"latest":"16.0.1"},"versions":{"16.0.1":{"name":"@alibaba_inc/decorators_pro","version":"16.0.1","description":"TypeScript React decorators_pro","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc && node minify","do-publish":"npm run build && npm publish --access public","do-pack":"npm run build && npm pack"},"keywords":["typescript","react","decorators_pro"],"author":{"name":"alibaba_inc"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/alibaba-inc/decorators_pro.git"},"dependencies":{"@alibaba_inc/decorators":"^16.0.5","@alibaba_inc/fetch_worker":"^1.0.7","@alibaba_inc/match":"^1.1.2","@alibaba_inc/toots":"^1.1.3","@types/jquery":"^3.3.31","@types/node":"^24.0.3","@types/react":"^16.9.13","@types/react-dom":"^16.9.4","antd":"^3.26.13","clean-css":"^5.3.3","glob":"^11.0.3","jquery":"^3.4.1","react":"^16.13.0","react-dom":"^16.11.0","react-jss":"^10.9.0","terser":"^5.43.1","typescript":"^4.9.5"},"bugs":{"url":"https://github.com/alibaba-inc/decorators_pro/issues"},"homepage":"https://github.com/alibaba-inc/decorators_pro#readme","_id":"@alibaba_inc/decorators_pro@16.0.1","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-5Od17XrutHDo++BpEiB+5piIVliSBMoXHFgSo009rScMuGYm5aU0qFCGBsv2qPKAv7X7REOAUXouK5A8qP4lig==","shasum":"3af5862113a9677e8610d8b4ae12ca272968bc68","tarball":"https://registry.npmjs.org/@alibaba_inc/decorators_pro/-/decorators_pro-16.0.1.tgz","fileCount":28,"unpackedSize":48205,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDd3IxEBe+349DlqLMydWNVqRHtMs0q1dS8NUhxzf8+0AIgeSyT6APFg/zLU1lLCdDNxSmJ+0cl+WzRHUCFTP/PXO0="}]},"_npmUser":{"name":"alibaba_inc","email":"yuxiao33344520@sina.com"},"directories":{},"maintainers":[{"name":"alibaba_inc","email":"yuxiao33344520@sina.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/decorators_pro_16.0.1_1755678675979_0.5277035326099682"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-20T08:31:15.905Z","16.0.1":"2025-08-20T08:31:16.194Z","modified":"2025-08-20T08:31:16.450Z"},"maintainers":[{"name":"alibaba_inc","email":"yuxiao33344520@sina.com"}],"description":"TypeScript React decorators_pro","homepage":"https://github.com/alibaba-inc/decorators_pro#readme","keywords":["typescript","react","decorators_pro"],"repository":{"type":"git","url":"git+https://github.com/alibaba-inc/decorators_pro.git"},"author":{"name":"alibaba_inc"},"bugs":{"url":"https://github.com/alibaba-inc/decorators_pro/issues"},"license":"MIT","readme":"# decorators\r\n\r\n> TypeScript React decorators.\r\n\r\n## 安装\r\n\r\n```bash\r\nnpm install @alibaba_inc/decorators\r\n```\r\n\r\n```typescript\r\nimport React, { useState, useEffect } from \"react\";\r\nimport type { HooksProps } from \"@alibaba_inc/decorators\";\r\nimport { State, Hooks, Get, Post, Perfect, Mount, match } from \"@alibaba_inc/decorators\";\r\n\r\ntype PerfectKey = \"name\" | \"extract_nest_data\";\r\n\r\nInitPerfectData((meta_key: PerfectKey, data: any) => {\r\n\tif (meta_key) {\r\n\t\tmatch(meta_key, {\r\n\t\t\tname: async () => {\r\n\t\t\t\tdata.name = data?.name ?? data?.nickname ?? data?.nick_name;\r\n\t\t\t},\r\n\t\t\textract_nest_data: async () => {\r\n\t\t\t\tdata = data?.data;\r\n\t\t\t},\r\n\t\t\t//...\r\n\t\t});\r\n\t}\r\n\treturn data;\r\n});\r\n\r\nexport default class Self extends React.PureComponent<{}, {}> {\r\n\tprivate uuid = \"a2a556d7-48c3-11f0-acf2-00163e04cc20\";\r\n\r\n\t@State private data: any;\r\n\r\n\t@Get(\"/user/info\", { uuid: \"@uuid\" })\r\n\tpublic async get_user(@Perfect<PerfectKey>(\"@data\", \"name\") _: any) {}\r\n\r\n\tprivate hooks_name;\r\n\t@Hooks(\"hooks_name\")\r\n\tprivate HooksName({ data }: HooksProps<string, any>) {\r\n\t\treturn data;\r\n\t}\r\n\r\n\t@Mount()\r\n\tasync componentDidMount() {}\r\n\r\n\trender() {\r\n\t\tlet This = this;\r\n\t\treturn (\r\n\t\t\t<div>\r\n\t\t\t\t<div>\r\n\t\t\t\t\thooks: <This.HooksName _this={this} />\r\n\t\t\t\t</div>\r\n\t\t\t\t<button\r\n\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\tthis.hooks_name = \"this is decorators hooks\";\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\tclick hooks\r\n\t\t\t\t</button>\r\n\t\t\t\t<div>this.data: {JSON.stringify(this.data)}</div>\r\n\t\t\t</div>\r\n\t\t);\r\n\t}\r\n}\r\n```\r\n","readmeFilename":"README.md","_rev":"1-e77455cab6b492e8fa0a9663a4819be7"}