bombom
Detect, enforce or strip BOM signatures.


Getting Started
Installation
$ npm install bombom
TypeScript Usage
import bombom = require('bombom');
JavaScript Usage
var bombom = require('bombom');
API
Terms
- BOM type: This is the key (e.g.,
utf8
) used to point to a particular BOM signature. See pre-registered BOM types below.
- BOM signature: This is a small
NodeBuffer
with an array of hex codes in it. For your convenience, you can register a new BOM type and signature by providing a simple number[]
.
Pre-registered BOM Types
utf8: new Buffer([0xEF, 0xBB, 0xBF])
utf16le: new Buffer([0xFF, 0xFE])
utf16be: new Buffer([0xFE, 0xFF])
utf32le: new Buffer([0xFF, 0xFE, 0x00, 0x00])
utf32be: new Buffer([0x00, 0x00, 0xFE, 0xFF])
See boms.ts
Public Methods
detect(buffer: NodeBuffer): string
Detects if the specified buffer has a BOM signature and returns the type if it does.
enforce(buffer: NodeBuffer, type: string): void
Enforces the specified BOM type on the buffer. This will either add the BOM signature to the buffer or, if there is an existing BOM signature that is not of the type specified, it will replace it with the type specified.
Emits "error" if type is not registered
isRegistered(type: string): boolean
Checks whether the specified BOM type is already registered.
isSigned(buffer: NodeBuffer, type?: string): boolean
Checks whether the specified buffer is signed or not. If the type is specified, it only checks for that type.
Emits "error" if type is not registered
register(type: string, signature: number[]): void
Registers a BOM type with a BOM signature (an array of hex values).
Emits "warn" if type is already registered
strip(buffer: NodeBuffer, type?: string): NodeBuffer
Strips off the BOM signature from the specified buffer and returns the new, stripped-off buffer. If the type is specified, it only strips off that type of signature, if it exists.
Emits "error" if type is not registered
unregister(type: string): void
Unregisters the specified BOM type.
Emits "warn" if type hasn't been registered
License
Released under the MIT license.
