intl-segmenter-polyfill
Advanced tools
Comparing version 0.3.3 to 0.3.4
@@ -12,3 +12,3 @@ (function (global, factory) { | ||
word: 1, | ||
sentence: 3 | ||
sentence: 3, | ||
}; | ||
@@ -48,3 +48,3 @@ | ||
wasmInstance, | ||
values, | ||
values | ||
) => { | ||
@@ -67,3 +67,3 @@ const allocStr = (str) => { | ||
this.locale = locale; | ||
this.options = options; | ||
this.options = options || {}; | ||
} | ||
@@ -73,3 +73,3 @@ | ||
const locale = this.locale; | ||
const granularity = this.options.granularity; | ||
const granularity = this.options.granularity || 'grapheme'; | ||
const exports = wasmInstance.exports; | ||
@@ -87,3 +87,3 @@ | ||
return values.current.map(([start, end, segmentType]) => ({ | ||
const segments = values.current.map(([start, end, segmentType]) => ({ | ||
segment: decoder.decode(inputView.slice(start, end)), | ||
@@ -97,3 +97,11 @@ index: decoder.decode(inputView.slice(0, start)).length, | ||
granularity === 'word' ? getSegmentType(segmentType) : undefined, | ||
})) | ||
})); | ||
segments.containing = (indexToFind) => | ||
segments.find( | ||
({ index, segment }) => | ||
indexToFind >= index && indexToFind <= index + segment.length - 1 | ||
); | ||
return segments | ||
} | ||
@@ -118,7 +126,5 @@ } | ||
const createIntlSegmenterPolyfillFromFactory = async ( | ||
wasmFactory | ||
) => { | ||
const createIntlSegmenterPolyfillFromFactory = async (wasmFactory) => { | ||
let values = { current: [] }; | ||
const {instance} = await wasmFactory( | ||
const { instance } = await wasmFactory( | ||
getImports((value) => { | ||
@@ -132,8 +138,6 @@ values.current.push(value); | ||
const createIntlSegmenterPolyfill = async ( | ||
wasm | ||
) => { | ||
const createIntlSegmenterPolyfill = async (wasm) => { | ||
let values = { current: [] }; | ||
const {instance} = await instantiateWasmModule( | ||
const { instance } = await instantiateWasmModule( | ||
wasm, | ||
@@ -140,0 +144,0 @@ getImports((value) => { |
{ | ||
"name": "intl-segmenter-polyfill", | ||
"version": "0.3.3", | ||
"version": "0.3.4", | ||
"description": "This repo builds .wasm module using icu4c for breaking text into words, so that we can polyfill [Intl Segmenter Proposal](https://github.com/tc39/proposal-intl-segmenter) with full compatibility, even on browsers that do not expose v8BreakIterator api.", | ||
@@ -12,3 +12,4 @@ "main": "dist/index.js", | ||
"prepublish": "npm run build", | ||
"build": "cp src/break_iterator.wasm dist/ && rollup -c rollup.config.js && rollup -c rollup.config.bundled.js" | ||
"build": "cp src/break_iterator.wasm dist/ && rollup -c rollup.config.js && rollup -c rollup.config.bundled.js", | ||
"test": "jest" | ||
}, | ||
@@ -27,2 +28,3 @@ "repository": { | ||
"@rollup/plugin-wasm": "^5.0.0", | ||
"jest": "^26.0.1", | ||
"rollup": "^2.16.1" | ||
@@ -29,0 +31,0 @@ }, |
# Intl Segmenter Polyfill | ||
[![](https://img.shields.io/badge/npm-0.2.8-blue)](https://www.npmjs.com/package/intl-segmenter-polyfill) | ||
[![npm version](https://badge.fury.io/js/intl-segmenter-polyfill.svg)](https://www.npmjs.com/package/intl-segmenter-polyfill) | ||
![Build WASM](https://github.com/surferseo/intl-segmenter-polyfill/workflows/Build%20WASM/badge.svg) | ||
![Test](https://github.com/surferseo/intl-segmenter-polyfill/workflows/Test/badge.svg) | ||
@@ -21,3 +23,3 @@ Provides .wasm module built with icu4c for breaking text into words, so that we can polyfill [Intl Segmenter Proposal](https://github.com/tc39/proposal-intl-segmenter) with full compatibility, even on browsers that do not expose v8BreakIterator api. | ||
```js | ||
import { createIntlSegmenterPolyfillFromFactory } from 'intl-segmenter-polyfill' | ||
import { createIntlSegmenterPolyfill } from 'intl-segmenter-polyfill' | ||
@@ -24,0 +26,0 @@ (async function(){ |
@@ -5,5 +5,3 @@ import break_iterator from './break_iterator.wasm' | ||
export const createIntlSegmenterPolyfill = () => { | ||
return createIntlSegmenterPolyfillFromFactory( | ||
break_iterator | ||
) | ||
return createIntlSegmenterPolyfillFromFactory(break_iterator) | ||
} |
@@ -7,3 +7,3 @@ // polyfill TextEncoder and TextDecoder, which is missing on Edge 18 | ||
word: 1, | ||
sentence: 3 | ||
sentence: 3, | ||
} | ||
@@ -43,3 +43,3 @@ | ||
wasmInstance, | ||
values, | ||
values | ||
) => { | ||
@@ -62,3 +62,3 @@ const allocStr = (str) => { | ||
this.locale = locale | ||
this.options = options | ||
this.options = options || {} | ||
} | ||
@@ -68,3 +68,3 @@ | ||
const locale = this.locale | ||
const granularity = this.options.granularity | ||
const granularity = this.options.granularity || 'grapheme' | ||
const exports = wasmInstance.exports | ||
@@ -82,3 +82,3 @@ | ||
return values.current.map(([start, end, segmentType]) => ({ | ||
const segments = values.current.map(([start, end, segmentType]) => ({ | ||
segment: decoder.decode(inputView.slice(start, end)), | ||
@@ -93,2 +93,10 @@ index: decoder.decode(inputView.slice(0, start)).length, | ||
})) | ||
segments.containing = (indexToFind) => | ||
segments.find( | ||
({ index, segment }) => | ||
indexToFind >= index && indexToFind <= index + segment.length - 1 | ||
) | ||
return segments | ||
} | ||
@@ -113,7 +121,5 @@ } | ||
export const createIntlSegmenterPolyfillFromFactory = async ( | ||
wasmFactory | ||
) => { | ||
export const createIntlSegmenterPolyfillFromFactory = async (wasmFactory) => { | ||
let values = { current: [] } | ||
const {instance} = await wasmFactory( | ||
const { instance } = await wasmFactory( | ||
getImports((value) => { | ||
@@ -127,8 +133,6 @@ values.current.push(value) | ||
export const createIntlSegmenterPolyfill = async ( | ||
wasm | ||
) => { | ||
export const createIntlSegmenterPolyfill = async (wasm) => { | ||
let values = { current: [] } | ||
const {instance} = await instantiateWasmModule( | ||
const { instance } = await instantiateWasmModule( | ||
wasm, | ||
@@ -135,0 +139,0 @@ getImports((value) => { |
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
3813811
6576
104
0
3