/
Stameskaaa
/
Server
Обзор
Документация
Войти
/
Stameskaaa
/
Server
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
node_modules/bson/src/int_32.ts
67 строк
2 KB
Stameskaaa
first
19 июн 2024, 15:02
19 июн 2024, 15:02
ac1472e
Код
Авторство
О чём код?
import { BSONValue } from './bson_value'; import type { EJSONOptions } from './extended_json'; import { type InspectFn, defaultInspect } from './parser/utils'; /** @public */ export interface Int32Extended { $numberInt: string; } /** * A class representation of a BSON Int32 type. * @public * @category BSONType */ export class Int32 extends BSONValue { get _bsontype(): 'Int32' { return 'Int32'; } value!: number; /** * Create an Int32 type * * @param value - the number we want to represent as an int32. */ constructor(value: number | string) { super(); if ((value as unknown) instanceof Number) { value = value.valueOf(); } this.value = +value | 0; } /** * Access the number value. * * @returns returns the wrapped int32 number. */ valueOf(): number { return this.value; } toString(radix?: number): string { return this.value.toString(radix); } toJSON(): number { return this.value; } /** @internal */ toExtendedJSON(options?: EJSONOptions): number | Int32Extended { if (options && (options.relaxed || options.legacy)) return this.value; return { $numberInt: this.value.toString() }; } /** @internal */ static fromExtendedJSON(doc: Int32Extended, options?: EJSONOptions): number | Int32 { return options && options.relaxed ? parseInt(doc.$numberInt, 10) : new Int32(doc.$numberInt); } inspect(depth?: number, options?: unknown, inspect?: InspectFn): string { inspect ??= defaultInspect; return `new Int32(${inspect(this.value, options)})`; } }