something is working
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
||||
/** @public */
|
||||
export interface BSONSymbolExtended {
|
||||
$symbol: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* A class representation of the BSON Symbol type.
|
||||
* @public
|
||||
* @category BSONType
|
||||
*/
|
||||
export class BSONSymbol {
|
||||
_bsontype!: 'Symbol';
|
||||
|
||||
value!: string;
|
||||
/**
|
||||
* @param value - the string representing the symbol.
|
||||
*/
|
||||
constructor(value: string) {
|
||||
if (!(this instanceof BSONSymbol)) return new BSONSymbol(value);
|
||||
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
/** Access the wrapped string value. */
|
||||
valueOf(): string {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
toString(): string {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
inspect(): string {
|
||||
return `new BSONSymbol("${this.value}")`;
|
||||
}
|
||||
|
||||
toJSON(): string {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
toExtendedJSON(): BSONSymbolExtended {
|
||||
return { $symbol: this.value };
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
static fromExtendedJSON(doc: BSONSymbolExtended): BSONSymbol {
|
||||
return new BSONSymbol(doc.$symbol);
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
[Symbol.for('nodejs.util.inspect.custom')](): string {
|
||||
return this.inspect();
|
||||
}
|
||||
}
|
||||
|
||||
Object.defineProperty(BSONSymbol.prototype, '_bsontype', { value: 'Symbol' });
|
||||
Reference in New Issue
Block a user