{"_id":"sanctuary-show","_rev":"5-6c1d0796fc407417e30c109619922ec1","name":"sanctuary-show","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"sanctuary-show","version":"1.0.0","description":"Evaluable string representations","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-show.git"},"files":["/LICENSE","/README.md","/index.js","/package.json"],"dependencies":{},"devDependencies":{"sanctuary-scripts":"1.5.x"},"scripts":{"doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"gitHead":"46f523012a0ffcd26f24caebce148733fb9a48ee","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-show/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-show#readme","_id":"sanctuary-show@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"dist":{"integrity":"sha512-63UqNGr5M6wkzKp6eGc/Gy6JBIV2PbzPd3q88+0F9z0qydAQsCWJ+7e4oor39rEEwj2GkZMDEhqGuiMl9eEnYw==","shasum":"72deb4812f9decec850e03286807dca1c97a1d61","tarball":"https://registry.npmjs.org/sanctuary-show/-/sanctuary-show-1.0.0.tgz","fileCount":4,"unpackedSize":8109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa5fujCRA9TVsSAnZWagAALuUP+gNqTldTPm1m2cW/MVZ3\n0DAmVrrrA5+3BfN0nMGFxmKz6zewI079vWW5bATc+MFh0E2Sas5B8PwOfcCc\nTsPUOV+epFyG4W5hotRNN24RV1QEmS6DxOekjpo4Prr93diWG9hlbDCUIVxF\neA2ofzR3KflQm8p6TyybUolBJkMvo1RHX+Ta644HBV/SjFOqRlKq6pmmx7KQ\nC9kvut7KaHt1sD1ooqadtSAySkz0eKph2BWt+SU8vrm1MWHd+Qc1V2UA2pWn\nupF+qlNKl0nLwsB/0HKTPukyiH04F6Jan87Xgv5HE3saRdK7PYxxTubmRtus\nBs8K+z3z6BrhXvt4hCQsPF4pPhsHzncWYLExGHcjq416aJCJ0zNm9xdcDWIy\nHtp80y/bURXsOnL6fL+d9kOfhDYIPZDsF1A+bi7tuz6jKxBygMcT364S99l0\nh3/fRLD0ytfq85Snsk6WXFg88n4CKaP/zynQBe2V7tOnPCt29+V+quYnF4uz\nLtFwULKv17+niLwH1ru11jHwfRgqTqn4Yj4Ym3h1DbKEUUgujsqjKDjUiQbs\ny1VNf4d/StELBK3JC7O8yjf7zHk/sV3mk/HSzEghYgGFFy88OCC65YpNPedy\n0RtDD10J9C8qu5ecUHYiQUceCF0hb4xtuYxgj5nu0KFmQs1X2ldG0aQh+B3A\n78fT\r\n=kFpt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLNxg+Upd3UNF+f3EZ4MEy1DAgXazya0+i6ijvkFqjoQIgMu04D7ui/aE9vVUDeZlynorI1x1AJvyt1n9MVf8L02s="}]},"maintainers":[{"name":"davidchambers","email":"dc@davidchambers.me"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-show_1.0.0_1525021600824_0.7622912363000764"},"_hasShrinkwrap":false},"2.0.0":{"name":"sanctuary-show","version":"2.0.0","description":"Evaluable string representations","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-show.git"},"dependencies":{},"devDependencies":{"sanctuary-scripts":"4.0.x"},"scripts":{"doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"gitHead":"3761b5f2cdc20ce1134575a702282575dda59d5d","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-show/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-show#readme","_id":"sanctuary-show@2.0.0","_nodeVersion":"12.14.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-REj4ZiioUXnDLj6EpJ9HcYDIEGaEexmB9Fg5o6InZR9f0x5PfnnC21QeU9SZ9E7G8zXSZPNjy8VRUK4safbesw==","shasum":"2326b4744f4b0f993f18ca56a29f68a50f514637","tarball":"https://registry.npmjs.org/sanctuary-show/-/sanctuary-show-2.0.0.tgz","fileCount":4,"unpackedSize":8624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIcwFCRA9TVsSAnZWagAAAtMP/jTY8h4WO9eIcvbmEIU0\nKWlofzn/nOsW4o9tJWWbajBHfsZbfGhXDg9cW1F/bTOQITH8yim1hjZ1c4Em\nHQP2jLxBkZJJM9Xdh5Uw4J7hVqzfIGgaBq8olXOKaWoKnXQJb8rO9hay1+/2\nEygygB5L2AnrQy6e3YYGii3VN6jpHLHa2Ksaj5B8/Mq5frEZr5AyGkWUn/wE\n6iOCTTiabyqUBOATGoiYkuP2t1+ibN5JZONqYfTplszrSvV1KVtXeyb6LJW1\nIb4d5nQOl2U3mtRW65j/diHhv/p9+AADaYxvbAA2HffGIX04qdRocQYSGEpd\nUhkVq4XjxqAJrUAUZNtP237xItDapNq0RxbVw7WaOT5xBqpwgeQTbrXgXn5w\nrUO0lHP4yUf/s6eLkwDMv9FgPVSYiZ5kgLUdbI1S4u6OHl9PW/22+LuxUhv1\n7C7EINnLtKr7d1CoriqGswoaOjbq4ajVLXzi8JoUR4V71rV5ThmmqbdiY7XH\nED42h/BUuQTZTpQOZYuvvdwmq+q9m7EjfgavAbTgUEaSPqdEkk0nhQBLJj7m\ngO22g4QeVzW/x2mdCb+7wgifIfCVf9jammgzagdL9CtnSWAzMynbJ5q8kqMA\nbKY6xQsvUA33iPwvpnPdWQ/OxoogyvEnnGIJTQJOJcZ0sLmBeAeMeA7898Ty\n356R\r\n=Nen9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMVrx+VisKj7yHiXwR0ZjwzxOBZxp1ySirD0oiJ26WlAIgduEdRLUCwTOgMEX6DiTtNCqQWflsHoG4uk8rZGbNiKw="}]},"maintainers":[{"name":"davidchambers","email":"dc@davidchambers.me"}],"_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-show_2.0.0_1579273220899_0.6555976519375721"},"_hasShrinkwrap":false},"3.0.0":{"name":"sanctuary-show","version":"3.0.0","description":"Evaluable string representations","license":"MIT","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-show.git"},"dependencies":{},"devDependencies":{"sanctuary-scripts":"5.0.x"},"scripts":{"doctest":"sanctuary-doctest","lint":"sanctuary-lint","release":"sanctuary-release","test":"npm run lint && sanctuary-test && npm run doctest"},"mocha":{"ui":"tdd"},"gitHead":"a00417cfe3275ac12ce83c80b29d8b5181db6dfc","bugs":{"url":"https://github.com/sanctuary-js/sanctuary-show/issues"},"homepage":"https://github.com/sanctuary-js/sanctuary-show#readme","_id":"sanctuary-show@3.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-gYWfafNMh9s7lsLma2qQe6M10H9cKNIGPXhks+yRLsiPdhN+lkThKVKSa53awyuxzGHecholjZZIpYEM5n7EVg==","shasum":"f7d8f8ec68e2da0b8392942a6f7dae0033535c6c","tarball":"https://registry.npmjs.org/sanctuary-show/-/sanctuary-show-3.0.0.tgz","fileCount":4,"unpackedSize":8796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6A80CRA9TVsSAnZWagAA5EcP/RtTcG+U1Busc/skI3e0\ni0J7ovwE5Hx18dUROS39ae+LYGsYXeT/PQxlzIzHTUFg01zibyy5gcSSaGJP\nlZaWXo8c5x5hRRKy60qsvbz2xfbVzAawmCTYN94yTMwu79llwJGaRFyLogc0\nnN2/ubuoWQw09+uhIQZNGzUYG2y4ggKLdb4hiCXUa5XDi4Hkk/8KkIMvtyg+\ncBbkuYiZvwcycZUE6hfG+h5OUXlQjWwPOTsSDMRg59eYI18fvLlHJg7Y5R0f\nONenW8CUhfhee9weVxrPtJchKAHLIbGNNniOLi6K7btwuehVWh73SvZXJPuG\nKeIN+eQi6VTMoUsN7ktanFIAsFr+D1qz0MEy/1DG19CDCLuoWtNTS28dpMzZ\ntt7n7dUe5HyJubLhxMGSwRFstB5Nrd2Zna80pls9wU24qhs0s4zucYiG4mr9\nY7b++8KoVzEkevxZAm12nyKDseGCaXNWXZzzKTvZ3B5gLqV688mGDEIvqIfz\na2vzhHc/XVIh5821Df7GV2sv2KzBHM9r5LwjgwjveVD4l0CJjAwHRmL/sO0d\n28RWN6QU2UISmwICn/D3h900bKCoICOt1NaUUz9mFmlYs2Yf8p0JSfCLbSyK\n527tH/XoNKwpmlP1cp4OAZLfy1dv7FGvqc6+KAVq9ZsTgCP+Do/Mk7uY981d\nBFSI\r\n=5E6S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdoLpMEM83krNvXxvluhIydxoZT5UZSDZRFm4v5RH/ygIgC/U2v1nx1RzNnOiuqsbXUq4VcDTAyoyqXjEM7RQ1Egw="}]},"_npmUser":{"name":"davidchambers","email":"dc@davidchambers.me"},"directories":{},"maintainers":[{"name":"davidchambers","email":"dc@davidchambers.me"},{"name":"avaq","email":"npmjs@account.avaq.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sanctuary-show_3.0.0_1642598195913_0.6600910954014789"},"_hasShrinkwrap":false}},"time":{"created":"2018-04-29T17:06:40.824Z","1.0.0":"2018-04-29T17:06:41.200Z","modified":"2022-05-17T02:36:36.833Z","2.0.0":"2020-01-17T15:00:21.014Z","3.0.0":"2022-01-19T13:16:36.056Z"},"maintainers":[{"name":"davidchambers","email":"dc@davidchambers.me"},{"name":"avaq","email":"npmjs@account.avaq.it"}],"description":"Evaluable string representations","homepage":"https://github.com/sanctuary-js/sanctuary-show#readme","repository":{"type":"git","url":"git://github.com/sanctuary-js/sanctuary-show.git"},"bugs":{"url":"https://github.com/sanctuary-js/sanctuary-show/issues"},"license":"MIT","readme":"# sanctuary-show\n\nHaskell has a `show` function which can be applied to a compatible value to\nproduce a descriptive string representation of that value. The idea is that\nthe string representation should, if possible, be an expression which would\nproduce the original value if evaluated.\n\nThis library provides a similar [`show`](#show) function.\n\nIn general, this property should hold: `eval (show (x)) = x`. In some cases\nparens are necessary to ensure correct interpretation (`{}`, for example,\nis an empty block rather than an empty object in some contexts). Thus the\nproperty is more accurately stated `eval ('(' + show (x) + ')') = x`.\n\nOne can make values of a custom type compatible with [`show`](#show) by\ndefining a `@@show` method. For example:\n\n```javascript\n//# Maybe#@@show :: Maybe a ~> () -> String\n//.\n//. ```javascript\n//. > show (Nothing)\n//. 'Nothing'\n//.\n//. > show (Just (['foo', 'bar', 'baz']))\n//. 'Just ([\"foo\", \"bar\", \"baz\"])'\n//. ```\nMaybe.prototype['@@show'] = function() {\n  return this.isNothing ? 'Nothing' : 'Just (' + show (this.value) + ')';\n};\n```\n\n### <a name=\"show\" href=\"https://github.com/sanctuary-js/sanctuary-show/blob/v3.0.0/index.js#L62\">`show :: Showable a => a -⁠> String`</a>\n\nReturns a useful string representation of the given value.\n\nDispatches to the value's `@@show` method if present.\n\nWhere practical, `show (eval ('(' + show (x) + ')')) = show (x)`.\n\n```javascript\n> show (null)\n'null'\n\n> show (undefined)\n'undefined'\n\n> show (true)\n'true'\n\n> show (new Boolean (false))\n'new Boolean (false)'\n\n> show (-0)\n'-0'\n\n> show (NaN)\n'NaN'\n\n> show (new Number (Infinity))\n'new Number (Infinity)'\n\n> show ('foo\\n\"bar\"\\nbaz\\n')\n'\"foo\\\\n\\\\\"bar\\\\\"\\\\nbaz\\\\n\"'\n\n> show (new String (''))\n'new String (\"\")'\n\n> show (['foo', 'bar', 'baz'])\n'[\"foo\", \"bar\", \"baz\"]'\n\n> show ([[[[[0]]]]])\n'[[[[[0]]]]]'\n\n> show ({x: [1, 2], y: [3, 4], z: [5, 6]})\n'{\"x\": [1, 2], \"y\": [3, 4], \"z\": [5, 6]}'\n```\n","readmeFilename":"README.md"}