https://github.com/cabinjs/bson-objectid
Construct ObjectIDs without the mongodb driver or bson module. Maintained for @forwardemail, @ladjs, @spamscanner, @breejs, @cabinjs, and @lassjs.
https://github.com/cabinjs/bson-objectid
Last synced: about 2 months ago
JSON representation
Construct ObjectIDs without the mongodb driver or bson module. Maintained for @forwardemail, @ladjs, @spamscanner, @breejs, @cabinjs, and @lassjs.
- Host: GitHub
- URL: https://github.com/cabinjs/bson-objectid
- Owner: cabinjs
- License: apache-2.0
- Created: 2014-10-23T19:28:35.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-05-08T14:08:58.000Z (almost 2 years ago)
- Last Synced: 2026-01-13T04:07:44.879Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 96.7 KB
- Stars: 209
- Watchers: 4
- Forks: 33
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - bson-objectid
README
BSON ObjectID [](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()
ObjectID(time)
ObjectID(hexString)
ObjectID(idString)
ObjectID(array)
ObjectID(buffer)
Creates a new immutable `ObjectID` instance based on the current system time.
Possible arguments:
**time** Constructs the instance based on the specified time (in seconds).
**hexString** Constructs the instance from a 24 character hex string.
**idString** Constructs the instance from a 12 byte string.
**array** Constructs the instance from an `Array` of 24 bytes.
**buffer** Constructs the instance from a 24 byte `Buffer` instance.
#### 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)
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!
> 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.