# bson-objectid

> Construct ObjectIDs without the mongodb driver or bson module

Latest version **2.0.4** (published 2022-11-21) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install bson-objectid
pnpm add bson-objectid
yarn add bson-objectid
bun add bson-objectid
```

## 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 | 2.0.4 |
| Published | 2022-11-21 |
| First published | 2014-10-23 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 34.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 208 |
| Author | William Kapke |
| Maintainers | niftylettuce, williamkapke, titanism |
| Keywords | ObjectID, mongo, mongodb, bson, createFromHexString, hex |

## Links

- npm: https://www.npmjs.com/package/bson-objectid
- Repository: https://github.com/williamkapke/bson-objectid
- Issues: https://github.com/williamkapke/bson-objectid/issues
- npm.io page: https://npm.io/package/bson-objectid

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [mongoose-typescript](https://npm.io/package/mongoose-typescript.md) — 85 weekly downloads

## Recent versions

- 2.0.4 (latest) — 2022-11-21
- 2.0.3 — 2022-03-12
- 2.0.2 — 2022-01-17
- 2.0.1 — 2021-03-01
- 2.0.0 — 2021-03-01
- 1.3.1 — 2020-06-11
- 1.3.0 — 2019-06-18
- 1.2.5 — 2019-05-14
- 1.2.4 — 2018-09-28
- 1.2.3 — 2018-04-02
- 1.2.2 — 2017-12-11
- 1.2.1 — 2017-10-17
- 1.2.0 — 2017-09-28
- 1.1.5 — 2017-01-18
- 1.1.4 — 2016-01-19
- … 8 more at https://npm.io/package/bson-objectid/versions

## README

BSON ObjectID &nbsp;[![Build Status](https://travis-ci.org/williamkapke/bson-objectid.svg?branch=master)](https://travis-ci.org/williamkapke/bson-objectid)
=============

This module allows you to create and parse `ObjectID`s without a reference to the
[mongodb](https://github.com/mongodb/node-mongodb-native) or [bson](https://github.com/mongodb/js-bson)
modules.

The goal is to be 100% compatable with all [bson](https://github.com/mongodb/js-bson)'s
public API implementation (found here: https://github.com/mongodb/js-bson/blob/main/src/objectid.ts).

## Install
    $ npm install bson-objectid

## Usage
```javascript
var ObjectID = require("bson-objectid");

console.log(ObjectID());
console.log(ObjectID("54495ad94c934721ede76d90"));
console.log(ObjectID(1414093117));//time
console.log(ObjectID([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ]));
console.log(ObjectID(new Buffer([ 84, 73, 90, 217, 76, 147, 71, 33, 237, 231, 109, 144 ])));
```

### ObjectID()<br>ObjectID(time)<br>ObjectID(hexString)<br>ObjectID(idString)<br>ObjectID(array)<br>ObjectID(buffer)
Creates a new immutable `ObjectID` instance based on the current system time.

Possible arguments:<br>
**time** Constructs the instance based on the specified time (in seconds).<br>
**hexString** Constructs the instance from a 24 character hex string.<br>
**idString** Constructs the instance from a 12 byte string.<br>
**array** Constructs the instance from an `Array` of 24 bytes.<br>
**buffer** Constructs the instance from a 24 byte `Buffer` instance.<br>

#### id
**returns** the 12 byte id string.

#### str
#### toHexString()
**returns** the `ObjectID` represented as a 24 character hex string.

#### equals(other)
**returns** true if the `ObjectID`s represent the same underlying value. Otherwise false.
#### getTimestamp()
**returns** the generation `Date` (accurate up to the second) that this `ObjectID` was generated.

### ObjectID.createFromTime(time)
Creates an ObjectID from a time (in seconds) `Number`, with the rest of the `ObjectID` zeroed out. Used for comparisons or sorting the ObjectID.

### ObjectID.createFromHexString(hexString)
Creates an ObjectID from a 24 character hex string.

### ObjectID.isValid(hexString)<br>ObjectID.isValid(ObjectID)
Checks if a value is a valid `ObjectID` or 24 character hex string.
> THE NATIVE DOCUMENTATION ISN'T CLEAR ON THIS GUY!<br>
> See: http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html#objectid-isvalid

## Test
    mocha

or

    npm test

License
=======
Apache v2.0

See LICENSE file.

Special callout to [@feross](https://github.com/feross) for the [is-buffer](https://github.com/feross/is-buffer) code
used internally to avoid Buffer from being loaded in browserify environments.

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