{"_id":"@0xc/transient","_rev":"2-b10834a04a2578b5a6e7a9a6154105d4","name":"@0xc/transient","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@0xc/transient","version":"0.0.1","description":"transient decorator utilizing reflection","main":"dist/index.js","author":{"name":"Tom Carrio","email":"tom@carrio.dev"},"license":"MIT","private":false,"scripts":{"prebuild":"rm -rf ./dist","build":"tsc","test":"uvu -r ts-node/register -r esbuild-register tests"},"devDependencies":{"@types/node":"^16.4.13","esbuild-register":"^2.6.0","ts-node":"^10.2.0","typescript":"^4.3.5","uvu":"^0.5.1"},"dependencies":{"reflect-metadata":"^0.1.13"},"gitHead":"01d5f8f7f1865fe9953ea98dd2651f8161a41de6","_id":"@0xc/transient@0.0.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Qe/1JGx4I29hFF1el6qPjyV3qQ9Vd53GTdJfVnlMvmaqxiWRrVoHYuqhZJPKjPtAZBS9/KkcggjECl/osbYq9g==","shasum":"6935e6b783ff132c8f33be2998194ba212990550","tarball":"https://registry.npmjs.org/@0xc/transient/-/transient-0.0.1.tgz","fileCount":10,"unpackedSize":6573,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJbraCRA9TVsSAnZWagAAJzMQAIVs7+hYdgupIS+NWZCW\nQNNQi3k6NOrBEMPz19/PMzeEFdJujxzOH8DTNUN1Ey8/4PngRCanGkg9t/ku\nrkIsz4Xta3aQBblEP88DbyNXO/jH5x+2bLYDtf5LtFKYAGkWKi5LJIhWbicc\nfk+J8m8gpQszwzJ9iH52M22ygEm1h6LntpXaHuqMLIJt4l24V4YKbewDm311\nguKNNqX68F4ovskHnCw7Fg5QSHoWf+Aw5q06K8LgLh7TpqLoWTdA/ZpnVtUq\ncQrE5y4trE7jJj3m/ydPkgo8u57H/KkBSD/PR9f4ndOjQym2XF5kzkyPwDAe\nxMvf5zB11KwwIpDDe6yl5uxzmCvDT7MX1xhN4K36O0mxMq9kfvLvhCFAdpNj\nl+x8UB4R7xXBOVc5V6B+Q/5GEuCAlah0pyTeUr7CCmCTott4RWti79xcS7Vy\nH6SOfp9fwMoNknIu7dDoKXPWppNwIeql/5l+RZZ1ClZvbu0TolmP3csTLsG8\nNAvySHgvJFGrYv+y3LsSPXSQ2D6CVfC8+exjqLnXbrd7gRM3tBw7fggHo/3F\nHRlDSq7sSHZDn0+zLcZ1OI6TEpvD93WW1k0nq7YnDLgdmMHtFZa83QVZFApc\nh8JQorfRxd9/U13jqD/3Le9J/YZ+Ww8i6CHKCvSDK3L98VBOhKOaBudNZ31Y\nanxj\r\n=nX+8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTuM5Ooee2w1YuYrvq/v+tfCDiV5al7g1anaCtaWD4fAiEAvvdgEh5IegWQD/cWd4vE8aq+Yz7HnNdHBsK65nO4eWE="}]},"_npmUser":{"name":"tcarrio","email":"tom@carrio.me"},"directories":{},"maintainers":[{"name":"tcarrio","email":"tom@carrio.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/transient_0.0.1_1629862618025_0.35982419076712735"},"_hasShrinkwrap":false},"0.1.0":{"name":"@0xc/transient","version":"0.1.0","description":"transient decorator utilizing reflection","main":"dist/index.js","author":{"name":"Tom Carrio","email":"tom@carrio.dev"},"license":"MIT","private":false,"scripts":{"prebuild":"rm -rf ./dist","build":"tsc","prepare":"yarn run build","test":"uvu -r ts-node/register -r esbuild-register tests"},"devDependencies":{"@types/node":"^16.4.13","esbuild-register":"^2.6.0","ts-node":"^10.2.0","typescript":"^4.3.5","uvu":"^0.5.1"},"dependencies":{"reflect-metadata":"^0.1.13"},"gitHead":"48ecca103b2b65f1734e2418a83ef04d0aab7119","_id":"@0xc/transient@0.1.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kMCEqX3LL8oqr17HhccFYwcZrNABWSihxjOpNVijds58UF+By+hTOzhKd4vlM5W538Ju4M6orMOvRp0Lcd4PVw==","shasum":"011d5b1459369d74b9c7e02cbc8ee54d1a21900d","tarball":"https://registry.npmjs.org/@0xc/transient/-/transient-0.1.0.tgz","fileCount":26,"unpackedSize":13186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJcH3CRA9TVsSAnZWagAAUSIP/2WLWJd4nA8lZS9oUPSK\n78x/cxS/mPXCA48afYhqiKt2P73vOegoe/q3zqK/nHqWNhtQ9uBv8jkRh2VA\nta+WRwH/s7+aco9cFr5tHrv5cWir1GdmPanjg5TNC0nBW9Ncy23y/Bmwyphn\nQPDnFSsyP7wGPQyvudSCMuqjJhO5TZX9V5V/kYDFQTGpeKgG0NBkeZ/fifHK\nRJr3gy9AGRaDNAi5gklQ/9oRN3Bo7niBH+d6gkP5XHJYUJ8IIRSdq+Snjbdi\ntJfxnsf/N8gwJ3DH0x/vLIoSJgu5vimyrO6L+scnU6xOL3ZpYeUblResvSsv\nmWmF8R1kacL4i4vKVWj7TVti4f5gFCuHIZbTU6/x+hWFJBcj8hxdHY+FsAWE\nztxIpCXKeyoZ+izkVMb2YSGxn1xx+ay2NuVTU+abCtCWit4Dxrr75LaBXTaN\nXfjJyYit6QIU8iOBaZrH8SSQejgCtxtrF0KE92mFftlcDU5Vu1izxjfWXePO\nEYferTT3opBE1M86K4gRDjdbED5E60zjL5trosOtB2/ceN9UMBs5qDKDEg2u\nOtYDbqEcTtgNA2aAqHUN8TzCipqu3+u29xujes9ynDN3rj2M29D91082kaX6\n+syatPoSXcyVpLKgD/iU2TJqjx9Yo5wfNKzfjKZrm5f/I6iIz1j+WidwYBLp\n95Hi\r\n=VVPO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHhFvDzIxvUCIwcY7troPAqO2XEii5mmP8jyrQpgNegwIhAIvYBzTXQQx7qNMUQVEWMt5pHrMJ7889rvWv8m7RqpKM"}]},"_npmUser":{"name":"tcarrio","email":"tom@carrio.me"},"directories":{},"maintainers":[{"name":"tcarrio","email":"tom@carrio.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/transient_0.1.0_1629864439419_0.8836873819081941"},"_hasShrinkwrap":false}},"time":{"created":"2021-08-25T03:36:57.971Z","0.0.1":"2021-08-25T03:36:58.140Z","modified":"2022-04-04T10:28:04.654Z","0.1.0":"2021-08-25T04:07:19.576Z"},"maintainers":[{"name":"tcarrio","email":"tom@carrio.me"}],"description":"transient decorator utilizing reflection","author":{"name":"Tom Carrio","email":"tom@carrio.dev"},"license":"MIT","readme":"[![npm (scoped)](https://img.shields.io/npm/v/@0xc/transient)](https://www.npmjs.com/package/@0xc/transient)\n[![npm](https://img.shields.io/npm/dt/@0xc/transient)](https://www.npmjs.com/package/@0xc/transient)\n[![GitHub issues](https://img.shields.io/github/issues/tcarrio/transient-ts)](https://github.com/tcarrio/transient-ts/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/tcarrio/transient-ts)](https://github.com/tcarrio/transient-ts/pulls)\n![Dependencies](https://img.shields.io/david/tcarrio/transient-ts)\n\n# @0xc/transient\n\nThis package provides a `@transient` decorator, similar to the `transient` keyword in Java.\n\nMarking a property in a class with the `@transient` operator will ignore serialization of that property when using the native `JSON.stringify(object)`.\n\nThis is useful if you would prefer to redact properties for objects going over the wire, such as with `fetch` and others which make use of `JSON.stringify`.\n\n## example\n\nTo get started using the `transient` decorator, you can import it from the library:\n\n```typescript\nimport { transient } from \"@0xc/transient\";\n\nexport class UserDto {\n    public firstName: string;\n\n    public lastName: string;\n\n    public email: string;\n\n    @transient()\n    public password: string;\n\n    public static fromModel(userModel: UserModel): UserDto {\n        const userDto = new UserDto();\n        this.firstName = userModel.firstName;\n        this.lastName = userModel.lastName;\n        this.email = userModel.email;\n        this.password = userModel.password;\n        return userDto;\n    }\n}\n```\n\nIn this scenario, we have a User DTO which will no longer serialize when calling `userDto.toJSON()`. Perhaps this is used a backend service which we would prefer to not return this field when serializing a response back to users.\n\n```typescript\napp.get(\"/user\", (req, res) => {\n    const userModel = UserRepository.findOne(req.session.id);\n    const userDto = UserDto.fromModel(userModel);\n    res.send(userDto);\n});\n```\n\n**Ta-da!** Now the response should look like:\n\n```json\n{\n    \"firstName\": \"Ricky\",\n    \"lastName\": \"Bobby\",\n    \"email\": \"shake@bake.net\"\n}\n```\n","readmeFilename":"README.md"}