Skip to content

Exports Reference

Complete list of all exports from @codician-team/monch.

Functions

ExportDescription
collection(config)Create a Monch collection
fieldField helper namespace with type builders
resolveConnection(config)Resolve MongoDB connection
disconnectAll()Close all cached connections
setDebug(config)Enable/configure debug logging
serialize(doc)Serialize a single document
serializeArray(docs)Serialize an array of documents
getCurrencyConfig(code)Get configuration for a currency

Classes

ExportDescription
MoneyMoney utility class with formatting, arithmetic, and comparison methods
MonchErrorBase class for all Monch errors
MonchConnectionErrorConnection configuration or network errors
MonchValidationErrorZod validation errors
CursorChainable query cursor
MonchArrayArray subclass with .serialize() method

BSON Types

Re-exported from MongoDB driver:

ExportDescription
ObjectIdMongoDB ObjectId
Long64-bit integer
Decimal128128-bit decimal
BinaryBinary data
TimestampMongoDB timestamp
MongoClientMongoDB client class
DbMongoDB database class

Constants

ExportDescription
zRe-export of Zod
CURRENCY_CONFIGSMap of 30+ currency configurations

Types

Schema & Document Types

typescript
import type {
  Schema,           // Schema definition type
  Doc,              // Document type from schema
  Input,            // Input type (respects defaults/optionals)
  TimestampFields,  // { createdAt: Date; updatedAt: Date }
  WithTimestamps,   // Add timestamp fields to type
  WithTS,           // Alias for WithTimestamps
  MonchDocument,    // Document with methods and .serialize()
  MonchFilter,      // Relaxed filter type for Zod
} from '@codician-team/monch';

Collection Types

typescript
import type {
  Collection,           // Full collection type
  CollectionInstance,   // Collection instance type
  CollectionConfig,     // Collection configuration
  ConnectionConfig,     // Connection options
  OperationOptions,     // Options for CRUD operations
  Hooks,                // Lifecycle hooks definition
  Index,                // Index definition
  IndexOptions,         // Index options
  IndexDirection,       // 1 | -1 | 'text' | etc.
  Methods,              // Instance methods definition
  Statics,              // Static methods definition
  WithMethods,          // Document with methods attached
} from '@codician-team/monch';

Serialization Types

typescript
import type {
  Serialized,     // Serialized version of document
  WithSerialize,  // Object with .serialize() method
} from '@codician-team/monch';

Pagination Types

typescript
import type {
  PaginationResult,   // Paginated query result
  PaginationOptions,  // Pagination options
} from '@codician-team/monch';

Money Types

typescript
import type {
  MoneyValue,    // Money field value structure
  MoneyOptions,  // Money field configuration
} from '@codician-team/monch';

Connection Types

typescript
import type {
  ConnectionResult,  // Result from resolveConnection()
  DebugConfig,       // Debug mode configuration
} from '@codician-team/monch';

Type Extraction Helpers

typescript
import type {
  ModelOf,       // Extract document type from collection
  SerializedOf,  // Extract serialized type from collection
  SchemaOf,      // Extract schema type from collection
} from '@codician-team/monch';

Re-exported MongoDB Types

typescript
import type {
  Filter,
  UpdateFilter,
  AggregateOptions,
  BulkWriteOptions,
  BulkWriteResult,
  AnyBulkWriteOperation,
  FindOneAndDeleteOptions,
  FindOneAndReplaceOptions,
  FindOneAndUpdateOptions,
  ReplaceOptions,
  UpdateResult,
  ClientSession,
} from '@codician-team/monch';

Usage Example

typescript
// Import everything you need
import {
  // Functions
  collection,
  field,
  setDebug,
  disconnectAll,

  // Classes
  MonchValidationError,
  ObjectId,

  // Constants
  z,

  // Types
  type ModelOf,
  type SerializedOf,
  type PaginationResult,
} from '@codician-team/monch';

// Define collection
const Users = collection({
  name: 'users',
  schema: {
    _id: field.id(),
    name: field.string(),
    email: field.email(),
  },
  timestamps: true,
});

// Extract types
type User = ModelOf<typeof Users>;
type SerializedUser = SerializedOf<typeof Users>;

// Use in components
interface Props {
  user: SerializedUser;
}

Released under the MIT License.