@memberjunction/data-context-server
v4.4.0
Published
This library provides a server-side implementation of the DataContextItem class from @memberjunction/data-context that can handle the server-side only use case of loading data into a context using raw SQL statements.
Keywords
Readme
@memberjunction/data-context-server
Server-side implementation of the MemberJunction Data Context system. Provides SQL-based data loading for DataContextItem objects using direct database connections.
Overview
The @memberjunction/data-context-server package extends the base DataContextItem class from @memberjunction/data-context with a server-side implementation that executes SQL queries directly against SQL Server using mssql connection pools. This is the server counterpart to the client-side GraphQL-based data context loading.
graph TD
A["DataContextItemServer"] -->|extends| B["DataContextItem<br/>(data-context package)"]
A -->|uses| C["mssql ConnectionPool"]
C --> D["SQL Server"]
E["Server-Side Code<br/>(MJAPI, Actions, etc.)"] --> A
F["Client-Side Code<br/>(Angular, React)"] --> G["DataContextItemClient<br/>(GraphQL-based)"]
style A fill:#2d6a9f,stroke:#1a4971,color:#fff
style B fill:#7c5295,stroke:#563a6b,color:#fff
style C fill:#2d8659,stroke:#1a5c3a,color:#fff
style D fill:#2d8659,stroke:#1a5c3a,color:#fff
style E fill:#b8762f,stroke:#8a5722,color:#fff
style G fill:#b8762f,stroke:#8a5722,color:#fffInstallation
npm install @memberjunction/data-context-serverHow It Works
The package registers DataContextItemServer as a subclass of DataContextItem using MemberJunction's @RegisterClass decorator. When server-side code creates a DataContextItem, the class factory automatically returns the server implementation that uses direct SQL execution rather than GraphQL.
import '@memberjunction/data-context-server';
// DataContextItem instances now use direct SQL execution on the serverThe LoadFromSQL method:
- Receives a SQL Server
ConnectionPoolas the data source - Creates a new
Requestfrom the pool - Executes the
DataContextItem.SQLquery directly - Stores the resulting recordset in
DataContextItem.Data - Returns success/failure with error details on
DataLoadingError
Dependencies
| Package | Purpose |
|---------|---------|
| @memberjunction/core | UserInfo, LogError utilities |
| @memberjunction/global | RegisterClass decorator |
| @memberjunction/data-context | Base DataContextItem class |
| mssql | SQL Server connectivity |
License
ISC
