token.js

/** @module token */

/**
 * @memberof: module:token
 */
class Token {

	/**
	 * @typedef {TokenType} string
	 * @type {TokenType}
	 */
	static TYPE = {
		TEXT: "TEXT",
		CHANNEL: "CHANNEL",
		USER: "USER",
	}

	/**
	 * @param {string}    buffer
	 * @param {string}    bufferIndex
	 * @param {TokenType} type
	 */
	constructor(type, buffer, bufferIndex) {
		this._type = type
		this._buffer = buffer
		this._bufferIndex = bufferIndex
	}

	/**
	 * @type {TokenType}
	 */
	get type() {
		return this._type
	}

	/**
	 * @type {string}
	 */
	get buffer() {
		return this._buffer
	}

	/**
	 * @type {number}
	 */
	get bufferIndex() {
		return this._bufferIndex
	}

}

export default Token