datum-focus
Version:
Data shape, model, metadata, JSON, JSON Schema, GraphQL, MongoDB query and aggregations, iterator generators
67 lines (63 loc) • 1.86 kB
text/typescript
import { BSONType } from 'mongodb';
export const BSON_NUMBER = "number";
export const BSON_DOUBLE = "double";
export const BSON_STRING = "string";
export const BSON_OBJECT = "object";
export const BSON_ARRAY = "array";
export const BSON_BIN_DATA = "binData";
export const BSON_OBJECT_ID = "objectId";
export const BSON_BOOL = "bool";
export const BSON_DATE = "date";
export const BSON_NULL = "null";
export const BSON_REGEX = "regex";
export const BSON_JAVA_SCRIPT = "javascript";
export const BSON_JAVA_SCRIPT_WITH_SCOPE = "javascriptWithScope";
export const BSON_INT = "int";
export const BSON_TIMESTAMP = "timestamp";
export const BSON_LONG = "long";
export const BSON_DECIMAL = "decimal";
export const BSON_MIN_KEY = "minKey";
export const BSON_MAX_KEY = "maxKey";
const BSON_TYPES = [
BSON_NUMBER,
BSON_DOUBLE,
BSON_STRING,
BSON_OBJECT,
BSON_ARRAY,
BSON_BIN_DATA,
BSON_OBJECT_ID,
BSON_BOOL,
BSON_DATE,
BSON_NULL,
BSON_REGEX,
BSON_JAVA_SCRIPT,
BSON_JAVA_SCRIPT_WITH_SCOPE,
BSON_INT,
BSON_TIMESTAMP,
BSON_LONG,
BSON_DECIMAL,
BSON_MIN_KEY,
BSON_MAX_KEY
] as const;
export type BsonType = typeof BSON_TYPES[number];
const BSON_TYPE_MAP = {
[]: BSONType.Double,
[]: BSONType.Double,
[]: BSONType.String,
[]: BSONType.Object,
[]: BSONType.Array,
[]: BSONType.BinData,
[]: BSONType.ObjectId,
[]: BSONType.Boolean,
[]: BSONType.Date,
[]: BSONType.Null,
[]: BSONType.Regex,
[]: BSONType.JavaScript,
[]: BSONType.JavaScriptWithScope,
[]: BSONType.Int,
[]: BSONType.Timestamp,
[]: BSONType.Long,
[]: BSONType.Decimal,
[]: BSONType.MinKey,
[]: BSONType.MinKey
};