
Security News
Node.js TSC Votes to Stop Distributing Corepack
Corepack will be phased out from future Node.js releases following a TSC vote.
typedarray.prototype.slice
Advanced tools
The `typedarray.prototype.slice` npm package provides a polyfill for the `slice` method on TypedArray objects. This allows you to create a new TypedArray from a portion of an existing TypedArray, similar to how `Array.prototype.slice` works for regular arrays.
Slice a portion of a TypedArray
This feature allows you to slice a portion of a TypedArray, creating a new TypedArray from the specified start to end indices.
const slice = require('typedarray.prototype.slice');
const uint8 = new Uint8Array([1, 2, 3, 4, 5]);
const sliced = slice.call(uint8, 1, 3);
console.log(sliced); // Output: Uint8Array [2, 3]
Slice with negative indices
This feature allows you to use negative indices to slice a portion of a TypedArray, which counts back from the end of the array.
const slice = require('typedarray.prototype.slice');
const uint8 = new Uint8Array([1, 2, 3, 4, 5]);
const sliced = slice.call(uint8, -3, -1);
console.log(sliced); // Output: Uint8Array [3, 4]
The `typedarray` package provides a comprehensive set of utilities for working with TypedArrays, including polyfills for various methods. It offers broader functionality compared to `typedarray.prototype.slice`, which focuses specifically on the `slice` method.
The `buffer` package is a Node.js core module that provides a way to handle binary data. It includes a `slice` method for Buffer objects, which are similar to TypedArrays. While it is not a direct polyfill for TypedArrays, it offers similar slicing capabilities for Buffer objects.
An ES spec-compliant TypedArray.prototype.slice
shim. Invoke its "shim" method to shim TypedArray.prototype.slice if it is unavailable.
This package implements the es-shim API interface. It works in an ES5-supported environment and complies with the spec.
Most common usage:
var assert = require('assert');
var slice = require('typedarray.prototype.slice');
var arr = new Uint8Array([1, 2, 3]);
var arr2 = slice(arr);
arr2[0] = 2;
arr2[1] = 3;
assert.deepEqual(arr, new Uint8Array([1, 2, 3]));
assert.deepEqual(arr2, new Uint8Array([2, 3, 3]));
assert.notEqual(arr.buffer, arr2.buffer);
if (!Uint8Array.prototype.slice) {
slice.shim();
}
var arr3 = arr.slice();
arr3[0] = 2;
arr3[1] = 3;
assert.deepEqual(arr, new Uint8Array([1, 2, 3]));
assert.deepEqual(arr3, new Uint8Array([2, 3, 3]));
assert.notEqual(arr.buffer, arr3.buffer);
- node v0.11.4 - v4: no prototype or own `slice` method
- node < v0.11.3: own `slice` method that fails to clone the underlying buffer
Simply clone the repo, npm install
, and run npm test
FAQs
ES spec-compliant shim for TypedArray.prototype.slice
We found that typedarray.prototype.slice demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Corepack will be phased out from future Node.js releases following a TSC vote.
Research
Security News
Research uncovers Black Basta's plans to exploit package registries for ransomware delivery alongside evidence of similar attacks already targeting open source ecosystems.
Security News
Oxlint's beta release introduces 500+ built-in linting rules while delivering twice the speed of previous versions, with future support planned for custom plugins and improved IDE integration.