# raspi-serial-number

> Small library to get a Raspberry's Serial number without dependencies

Latest version **1.0.6** (published 2019-07-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install raspi-serial-number
pnpm add raspi-serial-number
yarn add raspi-serial-number
bun add raspi-serial-number
```

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.6 |
| Published | 2019-07-11 |
| First published | 2019-07-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 13.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | TheDSCPL |
| Maintainers | lpcsd |
| Keywords | raspberry pi, serial number, raspi, rpi, raspberry, pi, linux |

## Links

- npm: https://www.npmjs.com/package/raspi-serial-number
- Repository: https://github.com/TheDSCPL/raspi-serial-number
- Homepage: https://github.com/TheDSCPL/raspi-serial-number#readme
- Issues: https://github.com/TheDSCPL/raspi-serial-number/issues
- npm.io page: https://npm.io/package/raspi-serial-number

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.6 (latest) — 2019-07-11
- 1.0.5 — 2019-07-11
- 1.0.3 — 2019-07-11
- 1.0.2 — 2019-07-11
- 1.0.1 — 2019-07-11
- 1.0.0 — 2019-07-10

## README

#Raspberry Pi Serial Number [![11.15.0](https://badge.fury.io/js/raspi-serial-number.svg)](https://badge.fury.io/js/raspi-serial-number)

**Warning:** Only works on *Raspberry Pi* boards! Will raise an exception if not running in a Raspberry Pi

##Summary
*Raspberry Pi*s come with a serial number. This package provides a way to get your *Raspberry Pi*'s serial number as a string.

##Features
* Has one synchronous and two asynchronous functions
* Fast
* Light weight - **Weights 1290 B (uncompressed) or 718 B (gzip-compressed)**
* Has no dependencies
* Contains Typescript type definitions

##Documentation

###Async - Promises
```ts
function getSerialNumber(): Promise<string>;
```
Almost the same as the previous one but returns a promise which will resolve into the serial number or reject with an exception.

###Async - Callback
```ts
function getSerialNumber(callback: (error: any, data?: string) => void): void;
```
Receives a callback function. If there is an error, the first parameter of the callback will be it. If not, the serial number will be passed to the second parameter.

###Sync
```ts
function getSerialNumberSync(): string;
```
Returns Raspberry Pi's serial number string or throws an exception if there is an error.

##Examples

###### (Typescript definitions already included)

###On ES5:
```js
var rsn = require('raspi-serial-number');
var getSerialNumber = rsn.getSerialNumber;
var getSerialNumberSync = rsn.getSerialNumberSync;
```

###On ES6:
```ts
import {getSerialNumber, getSerialNumberSync} from 'raspi-serial-number';
```
or

```ts
const {getSerialNumber, getSerialNumberSync} = require('raspi-serial-number');
```

###Async - Promises
```ts
getSerialNumber()
    .then(d=>console.log("Promise result: ",d))
    .catch(e=>console.log("Promise error: ",e));
```

###Async - Callback
```ts
getSerialNumber((error,data) => {
    if(error)
        console.error("Callback error: ",error);
    else
        console.log("Callback result: ",data)
});
```

###Sync
```ts
try {
    console.log("Sync result: ",getSerialNumberSync());
} catch (e) {
    console.error("Sync error: ",e);
}
```


##Future work
* Add options to allow specifying whether or not the leftmost zeros should be trimmed or not (current behaviour is trimming the leftmost zeros of the serial number)
* Maybe add some other options. I'm open to suggestions!

##

**Feel free to open an issue on Github if you find a bug or have a suggestion!**

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