Initial commit
This commit is contained in:
21
node_modules/@serialport/parser-regex/dist/index.d.ts
generated
vendored
Normal file
21
node_modules/@serialport/parser-regex/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
/// <reference types="node" />
|
||||
/// <reference types="node" />
|
||||
import { Transform, TransformCallback, TransformOptions } from 'stream';
|
||||
export interface RegexParserOptions extends TransformOptions {
|
||||
/** The regular expression to use to split incoming text */
|
||||
regex: RegExp | string | Buffer;
|
||||
/** Defaults to utf8 */
|
||||
encoding?: BufferEncoding;
|
||||
}
|
||||
/**
|
||||
* A transform stream that uses a regular expression to split the incoming text upon.
|
||||
*
|
||||
* To use the `Regex` parser provide a regular expression to split the incoming text upon. Data is emitted as string controllable by the `encoding` option (defaults to `utf8`).
|
||||
*/
|
||||
export declare class RegexParser extends Transform {
|
||||
regex: RegExp;
|
||||
data: string;
|
||||
constructor({ regex, ...options }: RegexParserOptions);
|
||||
_transform(chunk: string, encoding: BufferEncoding, cb: TransformCallback): void;
|
||||
_flush(cb: TransformCallback): void;
|
||||
}
|
||||
43
node_modules/@serialport/parser-regex/dist/index.js
generated
vendored
Normal file
43
node_modules/@serialport/parser-regex/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.RegexParser = void 0;
|
||||
const stream_1 = require("stream");
|
||||
/**
|
||||
* A transform stream that uses a regular expression to split the incoming text upon.
|
||||
*
|
||||
* To use the `Regex` parser provide a regular expression to split the incoming text upon. Data is emitted as string controllable by the `encoding` option (defaults to `utf8`).
|
||||
*/
|
||||
class RegexParser extends stream_1.Transform {
|
||||
regex;
|
||||
data;
|
||||
constructor({ regex, ...options }) {
|
||||
const opts = {
|
||||
encoding: 'utf8',
|
||||
...options,
|
||||
};
|
||||
if (regex === undefined) {
|
||||
throw new TypeError('"options.regex" must be a regular expression pattern or object');
|
||||
}
|
||||
if (!(regex instanceof RegExp)) {
|
||||
regex = new RegExp(regex.toString());
|
||||
}
|
||||
super(opts);
|
||||
this.regex = regex;
|
||||
this.data = '';
|
||||
}
|
||||
_transform(chunk, encoding, cb) {
|
||||
const data = this.data + chunk;
|
||||
const parts = data.split(this.regex);
|
||||
this.data = parts.pop() || '';
|
||||
parts.forEach(part => {
|
||||
this.push(part);
|
||||
});
|
||||
cb();
|
||||
}
|
||||
_flush(cb) {
|
||||
this.push(this.data);
|
||||
this.data = '';
|
||||
cb();
|
||||
}
|
||||
}
|
||||
exports.RegexParser = RegexParser;
|
||||
Reference in New Issue
Block a user