Examples
This directory contains practical examples demonstrating how to use the @relational-fabric/canon package.
Available Examples
01-basic-id-axiom
Learn how Canon enables universal code that works across different data formats using the Id axiom
Keywords: axiom, canon, id, json-ld, universal functions
Difficulty: introductory
Pattern: Single-file example
Source: View on GitHub
02-module-style-canon
Learn how to create reusable, shareable canons that can be published as npm packages
Keywords: canon, module, reusable, npm, mongodb
Difficulty: introductory
Pattern: Multi-file example
Source: View on GitHub
Referenced files:
./mongodb-canon.ts
03-multi-axiom-canon
Working with complex entities that implement multiple axioms (Id, Type, Version, Timestamps, References)
Keywords: multi-axiom, comprehensive, entity, timestamps, references, version
Difficulty: intermediate
Pattern: Multi-file example
Source: View on GitHub
04-format-conversion-examples
Converting data between different formats (REST API, MongoDB, JSON-LD) using Canon's universal type system
Keywords: format-conversion, rest-api, mongodb, json-ld, transformation
Difficulty: intermediate
Pattern: Multi-file example
Source: View on GitHub
05-error-handling-and-edge-cases
Gracefully handling errors, edge cases, and validation in Canon applications
Keywords: error-handling, validation, edge-cases, safe-functions, robustness
Difficulty: intermediate
Pattern: Multi-file example
Source: View on GitHub
06-real-world-business-scenarios
Practical business logic implementation using Canon for order processing, customer management, and workflows
Keywords: business-logic, order-processing, workflow, e-commerce, domain-models
Difficulty: advanced
Pattern: Multi-file example
Source: View on GitHub
07-custom-axioms-example
Creating and using custom axioms (Email, Currency, Status, Priority) for domain-specific requirements
Keywords: custom-axioms, domain-specific, email, currency, status, priority
Difficulty: advanced
Pattern: Multi-file example
Source: View on GitHub
Getting Started
Each example includes:
- Narrative documentation that teaches concepts through prose
- Complete code samples with full TypeScript typing
- In-source tests that demonstrate and validate behavior
- Real-world scenarios showing practical applications
Running Examples
You can run examples directly using tsx:
# Run a single-file example
npx tsx examples/01-basic-id-axiom.ts
# Run a folder example
npx tsx examples/02-module-style-canon/index.ts