# ric-shim

> Shim for requestIdleCallback

Latest version **1.0.1** (published 2022-08-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install ric-shim
pnpm add ric-shim
yarn add ric-shim
bun add ric-shim
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2022-08-30 |
| First published | 2016-05-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 4.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 31 |
| Author | Henrik Joreteg |
| Maintainers | henrikjoreteg |
| Keywords | requestIdleCallback, shim |

## Links

- npm: https://www.npmjs.com/package/ric-shim
- Repository: https://github.com/HenrikJoreteg/ric-shim
- Homepage: https://github.com/HenrikJoreteg/ric-shim#readme
- Issues: https://github.com/HenrikJoreteg/ric-shim/issues
- npm.io page: https://npm.io/package/ric-shim

## Alternatives

- [@sindresorhus/slugify](https://npm.io/package/@sindresorhus/slugify.md) — 3.7M weekly downloads
- [solid-js](https://npm.io/package/solid-js.md) — 2.7M weekly downloads
- [expo-glass-effect](https://npm.io/package/expo-glass-effect.md) — 2.5M weekly downloads
- [nanoassert](https://npm.io/package/nanoassert.md) — 780.8K weekly downloads
- [@ffmpeg/ffmpeg](https://npm.io/package/@ffmpeg/ffmpeg.md) — 529.5K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2022-08-30
- 1.0.0 — 2016-05-05
- 0.0.0 — 2016-05-05

## README

# ric-shim

![](https://img.shields.io/npm/dm/ric-shim.svg)![](https://img.shields.io/npm/v/ric-shim.svg)![](https://img.shields.io/npm/l/ric-shim.svg) [![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)

`requestIdleCallback` is awesome. I want to use it in my projects and install it from npm.

I was going to write a shim that would fallback to a simple `setTimeout` only to find that the awesome [Paul Lewis](https://twitter.com/aerotwist) had [already done this](https://gist.github.com/paullewis/55efe5d6f05434a96c36).

But in addition to shimming it for browser use, I also wanted it to not break code if used from within node.js (falls back to `setTimeout`).

So... here we are.

I simply wrapped/published it for compatibility with npm-based frontend projects and changed it to not blow up if used in a node environment where `window` obviously won't be defined. Instead it simply checks to see if `requestIdleCallback` exists and uses it if it's there.

I didn't even write any tests!?!! The audacity! Yeah, I know. Deal with it. Or don't and use something else.

All credit for the actual fallback code goes to [Paul Lewis](https://twitter.com/aerotwist). The original license is retained in a `NOTICE` file in my best efforts to comply with the original licensing. If I'm doing this wrong, just tell me and please love me despite my many flaws.

## install

```
npm install ric-shim
```

## example

```javascript
import requestIdleCallback from 'ric-shim'

requestIdleCallback(() => {
  // do your thang!
})
```

Or if you're not into the fancy-pants ES6+ modules thing:

```javascript
var requestIdleCallback = require('ric-shim')

requestIdleCallback(function () {
  // do your thang!
})
```

## what about cancelling?

Yeah, you probably won't need it, but in case you do that's exported too, as a property of the main export:

```javascript
import requestIdleCallback, { cancelIdleCallback } from 'ric-shim'

// do a thing!
const id = requestIdleCallback(doSomething)

// just kidding, nevermind
cancelIdleCallback(id)
```

Or node-style:

```javascript
var requestIdleCallback = require('ric-shim')
var cancel = requestIdleCallback.cancelIdleCallback

// do a thing!
var id = requestIdleCallback(doSomething)

// just kidding, nevermind
cancel(id)
```

## credits

If you like this sort of stuff and think there may be something to this whole "web thing" you may want to follow [@HenrikJoreteg](http://twitter.com/henrikjoreteg) on twitter. Or you may not. That's ok too.

## license

[MIT](http://mit.joreteg.com/)

---
_Source: https://npm.io/package/ric-shim · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
