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-typescriptor
yarn add range-at-index-typescriptimport { 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;
}): RangeThe main files are inside /src.
To run project, use:
npm installthen
npm run start # or yarn startThis 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:
mainwhich installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrixsizewhich 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.