{"_id":"@alloc/spy-on","_rev":"1-8fa02b9c7fa9783d4e876bc52668b9f4","name":"@alloc/spy-on","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alloc/spy-on","version":"0.1.0","main":"spyOn.js","devDependencies":{"@types/jest":"^26.0.15","esbuild":"^0.7","esbuild-jest":"^0.3.0-beta.0","jest":"^26.6.3","prettier":"^2.1.2","typescript":"^4.0.5"},"scripts":{"build":"tsc -p ."},"jest":{"transform":{"\\.[jt]sx?$":"esbuild-jest"},"moduleFileExtensions":["ts","js"]},"gitHead":"a10e4817fef8aa9a1ef8fa325af2cf2acaee94f1","description":"Observe assignments to any writable, configurable object property.","_id":"@alloc/spy-on@0.1.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YskH/6bLCJG1JgSaw4cp2yAKuo6Bbe4c4zaBkmJjWykDMSKYIR/PgJGEt/Tvn1P8nMgPQW6BO32zuACavus2iw==","shasum":"ebcd996835bd433c0b5723ec6fff8308dbae60df","tarball":"https://registry.npmjs.org/@alloc/spy-on/-/spy-on-0.1.0.tgz","fileCount":3,"unpackedSize":2668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftvWRCRA9TVsSAnZWagAAZJQP/iRRCGS8mCFsYA1EnupT\ngCVt8HIkhHJ8ttorYseHK+Oo6y+72ththcN2z5a0hg0NNn7qRYvTMuu/05fT\n5186GFbfbwNKGDH+qMgZ/PgW+w50cv/GkLB+gx13sANbiuX05JPBPPBk5xv6\nxxScgqDmSRyb6GBjk5fwbtpYYkfICK2Nahgy7+g9zLFIsLTI/esYMEL3Vi+V\nDwkmL8DWuVFmVAWcJ4CGQ5ipxmrw9MIaioZHSoqJ/OT0KacYW4CAsyxTj5di\nyFMlUgUCvXJ4o6fFuWAn5++wxRmsIPGlJdBzQDk8/1kgYZc+o+Ltbw0ssTH7\n9oXVOO650Ee3IXcHX14Qh0YOWXtOO7Wuz6u1nWhBmEvmPMeY6us3rE4q7tlq\n9aRST2l9/5aao3fiGwVDDLft1YpkzOOQUFyYfJj+fRUBhw5Fg6L5eez7MD+I\nNKYFJtHsoaOqnqYz8XkWiPcGLF3L1fiKdIGKQKeYBhXucAv4+6NWBkcDReBn\nNcxV9/ernaX+uyLoUzXN/Q5Jq+56hJqYhbm7gHzG9K5V6nVtUnR2C/h9xpLs\nVXqq8PIakGhKCxn7WB8DfqDzhVubhRqanUARb/e307jEYncoicLF+pInl3Rv\njG+2ZUJzViviOSguIlpzYhrPN5tXKDMH6bF0mSpOyNce7LXbbiSpWPtXJuEi\nbulM\r\n=o3y4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAslOVNlmJjN0YEBElQXtBl+6Ghe9qI50FyFa/A+vxeUAiEA5odJ11nKQRslFD6NNtkdaDHogUy6gcTTFGicEGRTp64="}]},"_npmUser":{"name":"aleclarson","email":"aleclarson@protonmail.com"},"directories":{},"maintainers":[{"name":"aleclarson","email":"aleclarson@protonmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/spy-on_0.1.0_1605825936619_0.7127406667460896"},"_hasShrinkwrap":false}},"time":{"created":"2020-11-19T22:45:36.390Z","0.1.0":"2020-11-19T22:45:36.860Z","modified":"2022-04-04T13:33:43.295Z"},"maintainers":[{"name":"aleclarson","email":"aleclarson@protonmail.com"}],"description":"Observe assignments to any writable, configurable object property.","readme":"# @alloc/spy-on\n\nObserve assignments to any writable, configurable object property.\n\n```js\nimport spyOn from '@alloc/spy-on'\n\nconst obj = { a: 0 }\n\n// The same property can be spied on multiple times.\nconst logger = spyOn(obj, 'a', console.log)\nconst mirror = spyOn(obj, 'a', a => (obj.b = a))\n\nobj.a++        // logs \"1\"\nobj.a == obj.b // => true\n\n// Spies can be disposed.\nlogger.dispose()\nobj.a++        // logs nothing\nobj.a == obj.b // => true\n\nmirror.dispose()\nobj.a++        // logs nothing\nobj.a == obj.b // => false\n\n// Once all spies are disposed, the original descriptor \n// is restored.\nObject.defineProperty(obj, 'a').value == 3 // => true\n```\n","readmeFilename":"README.md"}