{"_id":"safe-identifier","_rev":"289759","name":"safe-identifier","description":"Sanitize strings for use as JavaScript identifiers & property names","dist-tags":{"latest":"0.4.2"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"time":{"modified":"2021-06-03T18:48:00.000Z","created":"2019-04-22T15:09:58.869Z","0.4.2":"2020-08-09T07:23:35.235Z","0.4.1":"2020-04-05T13:51:16.732Z","0.4.0":"2020-04-05T09:11:34.192Z","0.3.1":"2019-12-04T21:20:24.928Z","0.3.0":"2019-12-04T19:38:16.117Z","0.2.0":"2019-08-04T18:50:59.694Z","0.1.0":"2019-04-22T15:09:58.869Z"},"users":{},"author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"versions":{"0.4.2":{"name":"safe-identifier","version":"0.4.2","author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","description":"Sanitize strings for use as JavaScript identifiers & property names","keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"main":"./index.js","type":"commonjs","exports":{".":[{"import":"./index.mjs","require":"./index.js"},"./index.js"],"./reserved":"./reserved.js","./package.json":"./package.json"},"browser":"./index.mjs","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"homepage":"https://github.com/eemeli/safe-identifier#readme","prettier":{"semi":false,"singleQuote":true},"gitHead":"d68293826d77d6e9f66270195322a146e1fe979d","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"_id":"safe-identifier@0.4.2","_nodeVersion":"13.10.1","_npmVersion":"6.14.2","dist":{"shasum":"cf6bfca31c2897c588092d1750d30ef501d59fcb","size":2623,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.4.2.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.4.2_1596957814979_0.2751791293741128"},"_hasShrinkwrap":false,"publish_time":1596957815235,"_cnpm_publish_time":1596957815235},"0.4.1":{"name":"safe-identifier","version":"0.4.1","author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","description":"Sanitize strings for use as JavaScript identifiers & property names","keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"main":"./index.js","type":"commonjs","exports":{".":[{"import":"./index.mjs","require":"./index.js"},"./index.js"],"./reserved":"./reserved.js"},"browser":"./index.mjs","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"homepage":"https://github.com/eemeli/safe-identifier#readme","prettier":{"semi":false,"singleQuote":true},"gitHead":"6298b814cc7dd1e805bce2d76c7ca7828ac90770","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"_id":"safe-identifier@0.4.1","_nodeVersion":"13.10.1","_npmVersion":"6.14.2","dist":{"shasum":"b6516bf72594f03142b5f914f4c01842ccb1b678","size":2614,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.4.1.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.4.1_1586094676587_0.18102585120600834"},"_hasShrinkwrap":false,"publish_time":1586094676732,"_cnpm_publish_time":1586094676732},"0.4.0":{"name":"safe-identifier","version":"0.4.0","author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","description":"Sanitize strings for use as JavaScript identifiers & property names","keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"main":"./index.js","type":"commonjs","exports":{".":[{"import":"./index.mjs","require":"./index.js"},"./index.js"],"reserved":"./reserved.js"},"browser":"./index.mjs","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"homepage":"https://github.com/eemeli/safe-identifier#readme","prettier":{"semi":false,"singleQuote":true},"gitHead":"5f54bef45a308748bb29ed2b0d50f9f2b23272cc","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"_id":"safe-identifier@0.4.0","_nodeVersion":"13.10.1","_npmVersion":"6.14.2","dist":{"shasum":"34a5a1c749a84d9d7cdb60523e3d60dd6fd76d03","size":2613,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.4.0.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.4.0_1586077894038_0.2160322217969377"},"_hasShrinkwrap":false,"publish_time":1586077894192,"_cnpm_publish_time":1586077894192},"0.3.1":{"name":"safe-identifier","version":"0.3.1","author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","description":"Sanitize strings for use as JavaScript identifiers & property names","keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"main":"index","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"homepage":"https://github.com/eemeli/safe-identifier#readme","prettier":{"semi":false,"singleQuote":true},"gitHead":"d48d3b26bd5511120d63d3c458730fb77f6c651b","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"_id":"safe-identifier@0.3.1","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"shasum":"466b956ef8558b10bbe15b87fedf470ab283cd39","size":2562,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.3.1.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.3.1_1575494424778_0.35557107836649804"},"_hasShrinkwrap":false,"publish_time":1575494424928,"_cnpm_publish_time":1575494424928},"0.3.0":{"name":"safe-identifier","version":"0.3.0","author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","description":"Sanitize strings for use as JavaScript identifiers & property names","keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"main":"index","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"homepage":"https://github.com/eemeli/safe-identifier#readme","prettier":{"semi":false,"singleQuote":true},"gitHead":"acee56692d91d71e4c80299b6f3889c2d23502fd","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"_id":"safe-identifier@0.3.0","_nodeVersion":"12.12.0","_npmVersion":"6.11.3","dist":{"shasum":"da36e65c2a19c385f5d9c16896b228388aeeeaab","size":2526,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.3.0.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.3.0_1575488295980_0.19527773525358127"},"_hasShrinkwrap":false,"publish_time":1575488296117,"_cnpm_publish_time":1575488296117},"0.2.0":{"name":"safe-identifier","version":"0.2.0","description":"Sanitize strings for use as JavaScript identifiers & property names","main":"index","sideEffects":false,"repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"homepage":"https://github.com/eemeli/safe-identifier#readme","gitHead":"9b79a7a56b850e43ae64cb9b7c5c88a877cbb1be","_id":"safe-identifier@0.2.0","_nodeVersion":"12.6.0","_npmVersion":"6.9.0","dist":{"shasum":"24bc6c4e6e86966812f6553869ba6fd3369da7fc","size":2201,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.2.0.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.2.0_1564944659544_0.01745356856304925"},"_hasShrinkwrap":false,"publish_time":1564944659694,"_cnpm_publish_time":1564944659694},"0.1.0":{"name":"safe-identifier","version":"0.1.0","description":"Sanitize strings for use as JavaScript identifiers & property names","main":"index.js","repository":{"type":"git","url":"git+https://github.com/eemeli/safe-identifier.git"},"keywords":["es3","es5","esnext","reserved","words","code","generation","identifier","property"],"author":{"name":"Eemeli Aro","email":"eemeli@gmail.com"},"license":"ISC","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"homepage":"https://github.com/eemeli/safe-identifier#readme","gitHead":"601022db7371532d6a3243a5e031a20f801f8a1d","_id":"safe-identifier@0.1.0","_nodeVersion":"11.9.0","_npmVersion":"6.9.0","dist":{"shasum":"e31966313da5a1989a4a38604a508a387d286b5d","size":2086,"noattachment":false,"key":"/safe-identifier/-/safe-identifier-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/safe-identifier/download/safe-identifier-0.1.0.tgz"},"maintainers":[{"name":"eemeli","email":"eemeli@gmail.com"}],"_npmUser":{"name":"eemeli","email":"eemeli@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/safe-identifier_0.1.0_1555945798766_0.6512502406968106"},"_hasShrinkwrap":false,"publish_time":1555945798869,"_cnpm_publish_time":1555945798869}},"readme":"# safe-identifier\n\nSanitize strings for use as JavaScript identifiers & property names.\n\n```\nnpm install --save safe-identifier\n```\n\n```js\nimport { identifier, property } from 'safe-identifier'\n\nidentifier('Foo') === 'Foo'\nidentifier('enum') === '_enum'\nidentifier('my var', true) === 'my_var_hk17pp'\nidentifier(' my \\0var ', true) === 'my_var_1d8fi3'\n\nproperty('Foo', 'bar') === 'Foo.bar'\nproperty('Foo', 'bar\\nbar') === 'Foo[\"bar\\\\nbar\"]'\nproperty(null, 'foo') === 'foo'\nproperty(null, 'void') === '\"void\"'\n```\n\n## `identifier(key: string, unique: boolean): string`\n\nSanitize a string for use as an identifier name\n\nReplaces invalid character sequences with `_` and may add a `_` prefix if the\nresulting name would conflict with a JavaScript reserved name, covering all\nstandards from ES3 up to ES2018, along with current\n[active proposals](https://github.com/tc39/proposals).\n\nIf `unique` is true, a 32-bit hash of the `key` is appended to the result in\norder to help ensure that different inputs produce different outputs.\n\n## `property(obj: string?, key: string): string`\n\nSanitize a string for use as a property name\n\nBy default uses `obj.key` notation, falling back to `obj[\"key\"]` if the key\ncontains invalid characters or is an ECMAScript 3rd Edition reserved word\n(required for IE8 compatibility). If `obj` is empty, returns only the possibly\nquoted property key. The correctness of `obj` is not checked.\n","_attachments":{},"homepage":"https://github.com/eemeli/safe-identifier#readme","bugs":{"url":"https://github.com/eemeli/safe-identifier/issues"},"license":"ISC"}