A Typescript package that returns a Range instance selecting text within an HTML Element, at start and end offsets Stars
npm install range-at-index-typescript
or
yarn add range-at-index-typescript
import { rangeAtIndex } from 'range-at-index-typescript';
or
const { rangeAtIndex } = require('range-at-index-typescript');
RangeAtIndex({ el, index, offset, range }: {
el: Element;
index?: number;
offset?: number;
range?: Range;
}): Range
The main files are inside /src
.
To run project, use:
npm install
then
npm run start # or yarn start
This builds to /dist
and runs the project in watch mode so any edits you save inside src
causes a rebuild to /dist
.
To do a one-off build, use npm run build
or yarn build
.
To run tests, use npm test
or yarn test
.
Code quality is set up for you with prettier
, husky
, and lint-staged
. Adjust the respective fields in package.json
accordingly.
Jest tests are set up to run with npm test
or yarn test
.
size-limit
is set up to calculate the real cost of your library with npm run size
and visualize the bundle with npm run analyze
.
Two actions are added by default:
main
which installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrixsize
which comments cost comparison of your library on every pull request usingsize-limit
Please see the main optimizations docs. In particular, know that you can take advantage of development-only optimizations:
// ./types/index.d.ts
declare var __DEV__: boolean;
// inside your code...
if (__DEV__) {
console.log('foo');
}
You can also choose to install and use invariant and warning functions.
CJS, ESModules, and UMD module formats are supported.
The appropriate paths are configured in package.json
and dist/index.js
accordingly. Please report if any issues are found.
always use named exports. Code split inside your React app instead of your React library.