update
This commit is contained in:
15
package/node_modules/@isaacs/string-locale-compare/LICENSE
generated
vendored
Normal file
15
package/node_modules/@isaacs/string-locale-compare/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
42
package/node_modules/@isaacs/string-locale-compare/index.js
generated
vendored
Normal file
42
package/node_modules/@isaacs/string-locale-compare/index.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
const hasIntl = typeof Intl === 'object' && !!Intl
|
||||
const Collator = hasIntl && Intl.Collator
|
||||
const cache = new Map()
|
||||
|
||||
const collatorCompare = (locale, opts) => {
|
||||
const collator = new Collator(locale, opts)
|
||||
return (a, b) => collator.compare(a, b)
|
||||
}
|
||||
|
||||
const localeCompare = (locale, opts) => (a, b) => a.localeCompare(b, locale, opts)
|
||||
|
||||
const knownOptions = [
|
||||
'sensitivity',
|
||||
'numeric',
|
||||
'ignorePunctuation',
|
||||
'caseFirst',
|
||||
]
|
||||
|
||||
const { hasOwnProperty } = Object.prototype
|
||||
|
||||
module.exports = (locale, options = {}) => {
|
||||
if (!locale || typeof locale !== 'string')
|
||||
throw new TypeError('locale required')
|
||||
|
||||
const opts = knownOptions.reduce((opts, k) => {
|
||||
if (hasOwnProperty.call(options, k)) {
|
||||
opts[k] = options[k]
|
||||
}
|
||||
return opts
|
||||
}, {})
|
||||
const key = `${locale}\n${JSON.stringify(opts)}`
|
||||
|
||||
if (cache.has(key))
|
||||
return cache.get(key)
|
||||
|
||||
const compare = hasIntl
|
||||
? collatorCompare(locale, opts)
|
||||
: localeCompare(locale, opts)
|
||||
cache.set(key, compare)
|
||||
|
||||
return compare
|
||||
}
|
28
package/node_modules/@isaacs/string-locale-compare/package.json
generated
vendored
Normal file
28
package/node_modules/@isaacs/string-locale-compare/package.json
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "@isaacs/string-locale-compare",
|
||||
"version": "1.1.0",
|
||||
"files": [
|
||||
"index.js"
|
||||
],
|
||||
"main": "index.js",
|
||||
"description": "Compare strings with Intl.Collator if available, falling back to String.localeCompare otherwise",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/isaacs/string-locale-compare"
|
||||
},
|
||||
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
|
||||
"license": "ISC",
|
||||
"scripts": {
|
||||
"test": "tap",
|
||||
"snap": "tap",
|
||||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags"
|
||||
},
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"devDependencies": {
|
||||
"tap": "^15.0.9"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user