@memberjunction/data-context 3.4.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './types';
1
+ export * from './types.js';
2
2
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
1
+ export * from './types.js';
18
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
package/dist/types.js CHANGED
@@ -1,18 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataContext = exports.DataContextItem = exports.DataContextFieldInfo = void 0;
4
- const core_1 = require("@memberjunction/core");
5
- const global_1 = require("@memberjunction/global");
1
+ import { LogError, Metadata, RunQuery, RunView, CompositeKey } from "@memberjunction/core";
2
+ import { MJGlobal } from "@memberjunction/global";
6
3
  /**
7
4
  * Utility class for storing field info from within a DataContextItem object
8
5
  */
9
- class DataContextFieldInfo {
6
+ export class DataContextFieldInfo {
10
7
  }
11
- exports.DataContextFieldInfo = DataContextFieldInfo;
12
8
  /**
13
9
  * Base class and the default implementation for the DataContextItem object, other implementations (sub-classes) can be registered as well with higher priorities to take over for this particular class.
14
10
  */
15
- class DataContextItem {
11
+ export class DataContextItem {
16
12
  constructor() {
17
13
  /*
18
14
  * The fields in the view, query, or entity
@@ -168,7 +164,7 @@ class DataContextItem {
168
164
  }
169
165
  }
170
166
  catch (e) {
171
- (0, core_1.LogError)(`Error in DataContextItem.Load: ${e && e.message ? e.message : ''}`);
167
+ LogError(`Error in DataContextItem.Load: ${e && e.message ? e.message : ''}`);
172
168
  return false;
173
169
  }
174
170
  }
@@ -224,7 +220,7 @@ class DataContextItem {
224
220
  */
225
221
  async LoadFromView(contextUser) {
226
222
  try {
227
- const rv = new core_1.RunView();
223
+ const rv = new RunView();
228
224
  const viewParams = { IgnoreMaxRows: true }; // ignore max rows for both types
229
225
  viewParams.Fields = this.ViewEntity.ViewEntityInfo.Fields.map((f) => f.Name); // include all fields
230
226
  viewParams.ViewID = this.ViewID;
@@ -235,12 +231,12 @@ class DataContextItem {
235
231
  }
236
232
  else {
237
233
  this.DataLoadingError = `Error running view. View Params: ${JSON.stringify(viewParams)}`;
238
- (0, core_1.LogError)(this.DataLoadingError);
234
+ LogError(this.DataLoadingError);
239
235
  return false;
240
236
  }
241
237
  }
242
238
  catch (e) {
243
- (0, core_1.LogError)(`Error in DataContextItem.LoadFromView: ${e && e.message ? e.message : ''}`);
239
+ LogError(`Error in DataContextItem.LoadFromView: ${e && e.message ? e.message : ''}`);
244
240
  return false;
245
241
  }
246
242
  }
@@ -251,8 +247,8 @@ class DataContextItem {
251
247
  */
252
248
  async LoadFromFullEntity(contextUser) {
253
249
  try {
254
- const md = new core_1.Metadata();
255
- const rv = new core_1.RunView();
250
+ const md = new Metadata();
251
+ const rv = new RunView();
256
252
  const viewParams = { IgnoreMaxRows: true }; // ignore max rows for both types
257
253
  const e = md.Entities.find((e) => e.ID === this.EntityID);
258
254
  viewParams.EntityName = e.Name;
@@ -263,12 +259,12 @@ class DataContextItem {
263
259
  }
264
260
  else {
265
261
  this.DataLoadingError = `Error running view. View Params: ${JSON.stringify(viewParams)}`;
266
- (0, core_1.LogError)(this.DataLoadingError);
262
+ LogError(this.DataLoadingError);
267
263
  return false;
268
264
  }
269
265
  }
270
266
  catch (e) {
271
- (0, core_1.LogError)(`Error in DataContextItem.LoadFromFullEntity: ${e && e.message ? e.message : ''}`);
267
+ LogError(`Error in DataContextItem.LoadFromFullEntity: ${e && e.message ? e.message : ''}`);
272
268
  return false;
273
269
  }
274
270
  }
@@ -279,7 +275,7 @@ class DataContextItem {
279
275
  */
280
276
  async LoadFromSingleRecord(contextUser, includeRelatedEntityData, maxRecordsPerRelationship) {
281
277
  try {
282
- const md = new core_1.Metadata();
278
+ const md = new Metadata();
283
279
  const record = await md.GetEntityObject(this.EntityName, contextUser);
284
280
  const pkeyVals = [];
285
281
  const ei = md.Entities.find((e) => e.ID === this.EntityID);
@@ -289,7 +285,7 @@ class DataContextItem {
289
285
  const v = rawVals[i];
290
286
  pkeyVals.push({ FieldName: pk.Name, Value: v });
291
287
  }
292
- let compositeKey = new core_1.CompositeKey();
288
+ let compositeKey = new CompositeKey();
293
289
  compositeKey.KeyValuePairs = pkeyVals;
294
290
  if (await record.InnerLoad(compositeKey)) {
295
291
  const dataObject = await record.GetDataObject({
@@ -305,13 +301,13 @@ class DataContextItem {
305
301
  }
306
302
  else {
307
303
  this.DataLoadingError = `Error loading single record: ${this.RecordName}`;
308
- (0, core_1.LogError)(this.DataLoadingError);
304
+ LogError(this.DataLoadingError);
309
305
  return false;
310
306
  }
311
307
  }
312
308
  catch (e) {
313
309
  this.DataLoadingError = `Error in DataContextItem.LoadFromSingleRecord: ${e && e.message ? e.message : ''}`;
314
- (0, core_1.LogError)(this.DataLoadingError);
310
+ LogError(this.DataLoadingError);
315
311
  return false;
316
312
  }
317
313
  }
@@ -330,7 +326,7 @@ class DataContextItem {
330
326
  */
331
327
  async LoadFromQuery(contextUser) {
332
328
  try {
333
- const rq = new core_1.RunQuery();
329
+ const rq = new RunQuery();
334
330
  const queryResult = await rq.RunQuery({ QueryID: this.QueryID }, contextUser);
335
331
  if (queryResult && queryResult.Success) {
336
332
  this.Data = queryResult.Results;
@@ -338,13 +334,13 @@ class DataContextItem {
338
334
  }
339
335
  else {
340
336
  this.DataLoadingError = `Error running query ${this.RecordName}`;
341
- (0, core_1.LogError)(this.DataLoadingError);
337
+ LogError(this.DataLoadingError);
342
338
  return false;
343
339
  }
344
340
  }
345
341
  catch (e) {
346
342
  this.DataLoadingError = `Error in DataContextItem.LoadFromQuery: ${e && e.message ? e.message : ''}`;
347
- (0, core_1.LogError)(this.DataLoadingError);
343
+ LogError(this.DataLoadingError);
348
344
  return false;
349
345
  }
350
346
  }
@@ -362,13 +358,13 @@ class DataContextItem {
362
358
  }
363
359
  else {
364
360
  this.DataLoadingError = `Error loading - data is null or undefined`;
365
- (0, core_1.LogError)(this.DataLoadingError);
361
+ LogError(this.DataLoadingError);
366
362
  return false;
367
363
  }
368
364
  }
369
365
  catch (e) {
370
366
  this.DataLoadingError = `Error in DataContextItem.LoadFromDataObject: ${e && e.message ? e.message : ''}`;
371
- (0, core_1.LogError)(this.DataLoadingError);
367
+ LogError(this.DataLoadingError);
372
368
  return false;
373
369
  }
374
370
  }
@@ -426,11 +422,10 @@ class DataContextItem {
426
422
  return item;
427
423
  }
428
424
  }
429
- exports.DataContextItem = DataContextItem;
430
425
  /**
431
426
  * Base class and the default implementation for the DataContext object, other implementations can be registered as well with higher priorities
432
427
  **/
433
- class DataContext {
428
+ export class DataContext {
434
429
  constructor() {
435
430
  /**
436
431
  * The items in the data context
@@ -488,7 +483,7 @@ class DataContext {
488
483
  try {
489
484
  if (!DataContextID || DataContextID.length === 0)
490
485
  throw new Error(`Data Context ID not set or invalid`);
491
- const p = provider ? provider : core_1.Metadata.Provider;
486
+ const p = provider ? provider : Metadata.Provider;
492
487
  const rv = p;
493
488
  const dciEntityInfo = p.Entities.find((e) => e.Name === 'Data Context Items');
494
489
  if (!dciEntityInfo)
@@ -512,7 +507,7 @@ class DataContext {
512
507
  return true;
513
508
  }
514
509
  catch (ex) {
515
- (0, core_1.LogError)(`Error in DataContext.LoadMetadata: ${ex && ex.message ? ex.message : ''}`);
510
+ LogError(`Error in DataContext.LoadMetadata: ${ex && ex.message ? ex.message : ''}`);
516
511
  return false;
517
512
  }
518
513
  }
@@ -543,7 +538,7 @@ class DataContext {
543
538
  try {
544
539
  if (!this.ID || this.ID.length === 0)
545
540
  throw new Error(`Data Context ID not set or invalid`);
546
- const md = new core_1.Metadata();
541
+ const md = new Metadata();
547
542
  const tg = await md.CreateTransactionGroup();
548
543
  const itemsArray = this.Items.map((item) => {
549
544
  return {
@@ -600,7 +595,7 @@ class DataContext {
600
595
  return false;
601
596
  }
602
597
  catch (e) {
603
- (0, core_1.LogError)(`Error in DataContext.SaveItems: ${e && e.message ? e.message : ''}`);
598
+ LogError(`Error in DataContext.SaveItems: ${e && e.message ? e.message : ''}`);
604
599
  return false;
605
600
  }
606
601
  }
@@ -620,7 +615,7 @@ class DataContext {
620
615
  * NOTE: this method does NOT add the newly created DataContextItem to the data context, you must do that yourself if you use this method directly.
621
616
  */
622
617
  static CreateDataContextItem() {
623
- const item = global_1.MJGlobal.Instance.ClassFactory.CreateInstance(DataContextItem);
618
+ const item = MJGlobal.Instance.ClassFactory.CreateInstance(DataContextItem);
624
619
  return item;
625
620
  }
626
621
  /**
@@ -642,7 +637,7 @@ class DataContext {
642
637
  return results.every(r => r); // return true only if all items loaded successfully, otherwise return false
643
638
  }
644
639
  catch (e) {
645
- (0, core_1.LogError)(`Error in DataContext.LoadData: ${e && e.message ? e.message : ''}`);
640
+ LogError(`Error in DataContext.LoadData: ${e && e.message ? e.message : ''}`);
646
641
  return false;
647
642
  }
648
643
  }
@@ -671,7 +666,7 @@ class DataContext {
671
666
  }
672
667
  }
673
668
  catch (e) {
674
- (0, core_1.LogError)(e);
669
+ LogError(e);
675
670
  return false;
676
671
  }
677
672
  }
@@ -714,7 +709,7 @@ class DataContext {
714
709
  */
715
710
  static async Clone(context, includeData = false, contextUser = undefined) {
716
711
  try {
717
- const md = new core_1.Metadata();
712
+ const md = new Metadata();
718
713
  // first, clone the data context itself at the top level
719
714
  const currentContext = await md.GetEntityObject('Data Contexts', contextUser);
720
715
  await currentContext.Load(context.ID);
@@ -749,10 +744,9 @@ class DataContext {
749
744
  }
750
745
  }
751
746
  catch (e) {
752
- (0, core_1.LogError)(`Error in DataContext.Clone: ${e && e.message ? e.message : ''}`);
747
+ LogError(`Error in DataContext.Clone: ${e && e.message ? e.message : ''}`);
753
748
  return null;
754
749
  }
755
750
  }
756
751
  }
757
- exports.DataContext = DataContext;
758
752
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/data-context",
3
- "version": "3.4.0",
3
+ "type": "module",
4
+ "version": "4.1.0",
4
5
  "description": "This library provides a set of objects that handle run-time loading of data contexts as well as types to be able to use across application tiers for interacting with data contexts.",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
@@ -9,19 +10,19 @@
9
10
  ],
10
11
  "scripts": {
11
12
  "start": "ts-node-dev src/index.ts",
12
- "build": "tsc",
13
+ "build": "tsc && tsc-alias -f",
13
14
  "test": "echo \"Error: no test specified\" && exit 1"
14
15
  },
15
16
  "author": "MemberJunction.com",
16
17
  "license": "ISC",
17
18
  "devDependencies": {
18
19
  "ts-node-dev": "^2.0.0",
19
- "typescript": "^5.4.5"
20
+ "typescript": "^5.9.3"
20
21
  },
21
22
  "dependencies": {
22
- "@memberjunction/global": "3.4.0",
23
- "@memberjunction/core-entities": "3.4.0",
24
- "@memberjunction/core": "3.4.0"
23
+ "@memberjunction/global": "4.1.0",
24
+ "@memberjunction/core-entities": "4.1.0",
25
+ "@memberjunction/core": "4.1.0"
25
26
  },
26
27
  "repository": {
27
28
  "type": "git",
package/readme.md CHANGED
@@ -1,15 +1,49 @@
1
1
  # @memberjunction/data-context
2
2
 
3
- The `@memberjunction/data-context` library provides a comprehensive framework for managing data contexts in MemberJunction applications. It enables developers to define, load, and manipulate collections of related data items across different tiers of an application.
4
-
5
- ## Overview
6
-
7
- A Data Context in MemberJunction represents a collection of data items that can include:
8
- - **Views**: Filtered and customized views of entity data
9
- - **Queries**: Pre-defined SQL queries registered in the system
10
- - **Full Entities**: Complete data sets from an entity
11
- - **Single Records**: Individual entity records with optional related data
12
- - **SQL Statements**: Direct SQL queries (server-side only)
3
+ The `@memberjunction/data-context` library provides a metadata-driven framework for managing collections of related data items in MemberJunction applications. It enables developers to define, load, persist, and manipulate data from multiple sources -- views, queries, entities, single records, and raw SQL -- through a unified, type-safe API that works across both client and server tiers.
4
+
5
+ ## Architecture Overview
6
+
7
+ ```mermaid
8
+ graph TD
9
+ subgraph Consumer["Consumer Code"]
10
+ style Consumer fill:#2d6a9f,stroke:#1a4971,color:#fff
11
+ A["Application / Agent / Workflow"]
12
+ end
13
+
14
+ subgraph DataContextPkg["@memberjunction/data-context"]
15
+ style DataContextPkg fill:#7c5295,stroke:#563a6b,color:#fff
16
+ DC["DataContext"]
17
+ DCI["DataContextItem"]
18
+ DCFI["DataContextFieldInfo"]
19
+ end
20
+
21
+ subgraph Sources["Data Sources"]
22
+ style Sources fill:#2d8659,stroke:#1a5c3a,color:#fff
23
+ V["Views (RunView)"]
24
+ Q["Queries (RunQuery)"]
25
+ E["Full Entities"]
26
+ SR["Single Records"]
27
+ SQL["SQL Statements"]
28
+ end
29
+
30
+ subgraph Persistence["Persistence Layer"]
31
+ style Persistence fill:#b8762f,stroke:#8a5722,color:#fff
32
+ DCE["DataContextEntity"]
33
+ DCIE["DataContextItemEntity"]
34
+ end
35
+
36
+ A --> DC
37
+ DC -->|"manages"| DCI
38
+ DCI -->|"field metadata"| DCFI
39
+ DCI -->|"loads from"| V
40
+ DCI -->|"loads from"| Q
41
+ DCI -->|"loads from"| E
42
+ DCI -->|"loads from"| SR
43
+ DCI -->|"loads from"| SQL
44
+ DC -->|"persists via"| DCE
45
+ DC -->|"persists items via"| DCIE
46
+ ```
13
47
 
14
48
  ## Installation
15
49
 
@@ -17,54 +51,167 @@ A Data Context in MemberJunction represents a collection of data items that can
17
51
  npm install @memberjunction/data-context
18
52
  ```
19
53
 
20
- ## Key Features
54
+ ## Key Concepts
55
+
56
+ A **Data Context** is a named collection of **Data Context Items**, each of which represents a distinct data source. An item can be one of five types:
57
+
58
+ | Type | Description | Required Fields |
59
+ |-----------------|--------------------------------------------------|----------------------------------|
60
+ | `view` | A saved MemberJunction User View | `ViewID`, `EntityID` |
61
+ | `query` | A registered MemberJunction Query | `QueryID` |
62
+ | `full_entity` | All records from an entity | `EntityID` |
63
+ | `single_record` | One record, optionally with related entity data | `EntityID`, `RecordID` |
64
+ | `sql` | A raw SQL statement (server-side only) | `SQL` |
65
+
66
+ ## Class Hierarchy
67
+
68
+ ```mermaid
69
+ classDiagram
70
+ class DataContext {
71
+ +ID: string
72
+ +DataContextEntity: DataContextEntity
73
+ +Items: DataContextItem[]
74
+ +LoadMetadata(id, contextUser, provider) Promise~boolean~
75
+ +LoadData(dataSource, forceRefresh, ...) Promise~boolean~
76
+ +Load(id, dataSource, ...) Promise~boolean~
77
+ +SaveItems(contextUser, persistItemData) Promise~boolean~
78
+ +AddDataContextItem() DataContextItem
79
+ +ValidateDataExists(ignoreFailedLoadItems) boolean
80
+ +ConvertToSimpleObject(itemPrefix, includeFailedLoadItems) object
81
+ +CreateSimpleObjectTypeDefinition(itemPrefix, includeFailedLoadItems) string
82
+ +LoadDataFromObject(data) boolean
83
+ +Clone(context, includeData, contextUser)$ Promise~DataContext~
84
+ +FromRawData(rawData)$ Promise~DataContext~
85
+ +CreateDataContextItem()$ DataContextItem
86
+ +MapEntityFieldsToDataContextFields(entity)$ DataContextFieldInfo[]
87
+ }
88
+
89
+ class DataContextItem {
90
+ +Type: ItemType
91
+ +RecordID: string
92
+ +EntityID: string
93
+ +ViewID: string
94
+ +QueryID: string
95
+ +RecordName: string
96
+ +SQL: string
97
+ +CodeName: string
98
+ +EntityName: string
99
+ +Fields: DataContextFieldInfo[]
100
+ +DataContextItemID: string
101
+ +Data: object[]
102
+ +DataLoaded: boolean
103
+ +DataLoadingError: string
104
+ +Description: string
105
+ +AdditionalDescription: string
106
+ +LoadData(dataSource, ...) Promise~boolean~
107
+ +LoadDataFromObject(data) boolean
108
+ +ValidateDataExists(ignoreFailedLoad) boolean
109
+ +FromViewEntity(viewEntity)$ DataContextItem
110
+ +FromSingleRecord(record)$ DataContextItem
111
+ +FromQuery(query)$ DataContextItem
112
+ +FromFullEntity(entity)$ DataContextItem
113
+ +FromRawItem(rawItem)$ DataContextItem
114
+ #LoadFromView(contextUser) Promise~boolean~
115
+ #LoadFromFullEntity(contextUser) Promise~boolean~
116
+ #LoadFromSingleRecord(contextUser, ...) Promise~boolean~
117
+ #LoadFromQuery(contextUser) Promise~boolean~
118
+ #LoadFromSQL(dataSource, contextUser) Promise~boolean~
119
+ }
120
+
121
+ class DataContextFieldInfo {
122
+ +Name: string
123
+ +Type: string
124
+ +Description: string
125
+ }
126
+
127
+ class DataContextItemServer {
128
+ #LoadFromSQL(dataSource, contextUser) Promise~boolean~
129
+ }
130
+
131
+ DataContext "1" --> "*" DataContextItem : contains
132
+ DataContextItem "1" --> "*" DataContextFieldInfo : describes fields
133
+ DataContextItemServer --|> DataContextItem : extends
134
+ ```
135
+
136
+ ## Data Lifecycle
137
+
138
+ ```mermaid
139
+ flowchart LR
140
+ subgraph Step1["1. Create"]
141
+ style Step1 fill:#2d6a9f,stroke:#1a4971,color:#fff
142
+ C1["new DataContext()"]
143
+ end
144
+
145
+ subgraph Step2["2. Load Metadata"]
146
+ style Step2 fill:#7c5295,stroke:#563a6b,color:#fff
147
+ C2["LoadMetadata(id)"]
148
+ end
21
149
 
22
- - **Type-safe data context management**: Full TypeScript support with proper typing
23
- - **Flexible data loading**: Support for various data sources including views, queries, entities, and SQL
24
- - **Metadata-driven**: Automatic loading of metadata from the MemberJunction system
25
- - **Transaction support**: Save multiple data context items in a single transaction
26
- - **Cross-tier compatibility**: Works across server and client tiers with appropriate implementations
27
- - **Data persistence**: Optional saving of loaded data to the database
150
+ subgraph Step3["3. Load Data"]
151
+ style Step3 fill:#2d8659,stroke:#1a5c3a,color:#fff
152
+ C3["LoadData(dataSource)"]
153
+ end
154
+
155
+ subgraph Step4["4. Process"]
156
+ style Step4 fill:#b8762f,stroke:#8a5722,color:#fff
157
+ C4["ValidateDataExists()\nConvertToSimpleObject()"]
158
+ end
159
+
160
+ subgraph Step5["5. Persist"]
161
+ style Step5 fill:#2d6a9f,stroke:#1a4971,color:#fff
162
+ C5["SaveItems(contextUser)"]
163
+ end
164
+
165
+ Step1 --> Step2 --> Step3 --> Step4 --> Step5
166
+ ```
28
167
 
29
168
  ## Usage
30
169
 
31
- ### Basic Example
170
+ ### Loading an Existing Data Context
171
+
172
+ Use `Load()` to fetch both metadata and data in a single call:
32
173
 
33
174
  ```typescript
34
- import { DataContext, DataContextItem } from '@memberjunction/data-context';
35
- import { Metadata } from '@memberjunction/core';
175
+ import { DataContext } from '@memberjunction/data-context';
36
176
 
37
- // Create a new data context
38
177
  const context = new DataContext();
39
-
40
- // Load metadata and data for an existing data context
41
- const dataContextID = 'your-data-context-id';
42
178
  const loaded = await context.Load(
43
- dataContextID,
44
- dataSource, // Required for SQL type items (server-side only)
45
- false, // forceRefresh
46
- true, // loadRelatedDataOnSingleRecords
47
- 10, // maxRecordsPerRelationship
48
- userInfo // contextUser
179
+ dataContextID, // ID of the data context record
180
+ dataSource, // Required only for SQL-type items (server-side)
181
+ false, // forceRefresh -- reload even if data is cached
182
+ true, // loadRelatedDataOnSingleRecords
183
+ 10, // maxRecordsPerRelationship
184
+ contextUser // required on server-side
49
185
  );
50
186
 
51
187
  if (loaded) {
52
- // Access the loaded data
53
188
  context.Items.forEach(item => {
54
- console.log(`Item: ${item.Description}`);
55
- console.log(`Data rows: ${item.Data?.length || 0}`);
189
+ console.log(`${item.Description}: ${item.Data?.length ?? 0} rows`);
56
190
  });
57
191
  }
58
192
  ```
59
193
 
60
- ### Creating Data Context Items
194
+ Alternatively, call `LoadMetadata()` and `LoadData()` separately for finer control:
195
+
196
+ ```typescript
197
+ const context = new DataContext();
198
+ await context.LoadMetadata(dataContextID, contextUser);
199
+
200
+ // Inspect or modify items before loading data
201
+ console.log(`Items to load: ${context.Items.length}`);
202
+
203
+ await context.LoadData(dataSource, false, true, 10, contextUser);
204
+ ```
205
+
206
+ ### Creating Items Programmatically
207
+
208
+ Each item type has a dedicated static factory method.
61
209
 
62
210
  #### From a View
63
211
 
64
212
  ```typescript
65
213
  import { UserViewEntityExtended } from '@memberjunction/core-entities';
66
214
 
67
- // Assuming you have a view entity loaded
68
215
  const viewEntity: UserViewEntityExtended = await md.GetEntityObject<UserViewEntityExtended>('User Views');
69
216
  await viewEntity.Load(viewID);
70
217
 
@@ -77,7 +224,6 @@ context.Items.push(viewItem);
77
224
  ```typescript
78
225
  import { BaseEntity } from '@memberjunction/core';
79
226
 
80
- // Assuming you have an entity record loaded
81
227
  const record: BaseEntity = await md.GetEntityObject('Customers');
82
228
  await record.Load(recordID);
83
229
 
@@ -90,8 +236,7 @@ context.Items.push(recordItem);
90
236
  ```typescript
91
237
  import { QueryInfo } from '@memberjunction/core';
92
238
 
93
- // Get query info from metadata
94
- const queryInfo = md.Queries.find(q => q.Name === 'My Query');
239
+ const queryInfo = md.Queries.find(q => q.Name === 'Monthly Revenue');
95
240
  if (queryInfo) {
96
241
  const queryItem = DataContextItem.FromQuery(queryInfo);
97
242
  context.Items.push(queryItem);
@@ -103,7 +248,6 @@ if (queryInfo) {
103
248
  ```typescript
104
249
  import { EntityInfo } from '@memberjunction/core';
105
250
 
106
- // Get entity info from metadata
107
251
  const entityInfo = md.Entities.find(e => e.Name === 'Products');
108
252
  if (entityInfo) {
109
253
  const entityItem = DataContextItem.FromFullEntity(entityInfo);
@@ -115,75 +259,85 @@ if (entityInfo) {
115
259
 
116
260
  ```typescript
117
261
  // Load data for all items in the context
118
- const dataLoaded = await context.LoadData(
119
- dataSource, // Required for SQL type items
262
+ const allLoaded = await context.LoadData(
263
+ dataSource, // required for SQL-type items
120
264
  false, // forceRefresh
121
265
  true, // loadRelatedDataOnSingleRecords
122
- 10 // maxRecordsPerRelationship
266
+ 10 // maxRecordsPerRelationship
123
267
  );
124
268
 
125
- // Or load data for a specific item
269
+ // Or load data for a single item
126
270
  const itemLoaded = await context.Items[0].LoadData(
127
- dataSource,
128
- false,
129
- true,
130
- 10
271
+ dataSource, false, true, 10, contextUser
131
272
  );
132
273
  ```
133
274
 
275
+ ### Loading Pre-fetched Data
276
+
277
+ If you already have the data available (for example, from a cache or external API), load it directly:
278
+
279
+ ```typescript
280
+ // Load into a single item
281
+ const item = context.Items[0];
282
+ item.LoadDataFromObject(myDataArray);
283
+
284
+ // Load into all items at once (2D array, one sub-array per item in order)
285
+ context.LoadDataFromObject([
286
+ rowsForItem0,
287
+ rowsForItem1,
288
+ rowsForItem2
289
+ ]);
290
+ ```
291
+
134
292
  ### Saving Data Context Items
135
293
 
136
294
  ```typescript
137
- // Save all items in the context to the database
138
295
  const saved = await context.SaveItems(
139
- userInfo, // contextUser
140
- true // persistItemData - saves actual data, not just metadata
296
+ contextUser, // context user for server-side operations
297
+ true // persistItemData -- also save loaded data as JSON
141
298
  );
142
299
 
143
300
  if (saved) {
144
- console.log('Data context items saved successfully');
145
301
  // Each item now has a DataContextItemID populated
302
+ context.Items.forEach(item => {
303
+ console.log(`Saved item ${item.DataContextItemID}`);
304
+ });
146
305
  }
147
306
  ```
148
307
 
149
- ### Working with Data
308
+ Items are saved in a single transaction group -- either all succeed or none are committed.
309
+
310
+ ### Working with Loaded Data
150
311
 
151
312
  ```typescript
152
- // Validate that all items have data loaded
313
+ // Validate all items have data
153
314
  if (context.ValidateDataExists()) {
154
- // Convert to a simple object for easier manipulation
155
- const simpleData = context.ConvertToSimpleObject('item_', false);
315
+ // Convert to a flat keyed object
316
+ const simpleObj = context.ConvertToSimpleObject('item_', false);
156
317
  // Result: { item_0: [...], item_1: [...], ... }
157
-
158
- // Get type definition for the data structure
318
+
319
+ // Generate a TypeScript-style type definition string
159
320
  const typeDef = context.CreateSimpleObjectTypeDefinition('item_');
160
- console.log(typeDef);
161
321
  // Output: {item_0: []; // View: Customer List, From Entity: Customers\n...}
162
322
  }
163
323
 
164
- // Access individual item data
324
+ // Check individual items for errors
165
325
  context.Items.forEach(item => {
166
326
  if (item.DataLoaded && item.Data) {
167
327
  console.log(`${item.Description}: ${item.Data.length} rows`);
168
-
169
- // Process the data
170
- item.Data.forEach(row => {
171
- // Work with row data
172
- });
173
328
  } else if (item.DataLoadingError) {
174
- console.error(`Error loading ${item.Description}: ${item.DataLoadingError}`);
329
+ console.error(`Failed: ${item.DataLoadingError}`);
175
330
  }
176
331
  });
177
332
  ```
178
333
 
179
- ### Cloning Data Contexts
334
+ ### Cloning a Data Context
180
335
 
181
336
  ```typescript
182
- // Clone an existing data context
183
337
  const clonedContext = await DataContext.Clone(
184
338
  originalContext,
185
- true, // includeData - copies the data along with metadata
186
- userInfo // contextUser
339
+ true, // includeData -- copy loaded data into the clone
340
+ contextUser
187
341
  );
188
342
 
189
343
  if (clonedContext) {
@@ -191,116 +345,112 @@ if (clonedContext) {
191
345
  }
192
346
  ```
193
347
 
194
- ## API Reference
195
-
196
- ### DataContext Class
197
-
198
- #### Properties
199
-
200
- - `ID: string` - The unique identifier of the data context
201
- - `DataContextEntity: DataContextEntity` - The metadata entity for the data context
202
- - `Items: DataContextItem[]` - Array of data context items
203
-
204
- #### Methods
205
-
206
- - `async LoadMetadata(DataContextID: string, contextUser?: UserInfo, provider?: IMetadataProvider): Promise<boolean>`
207
- - Loads only the metadata for the data context and its items
208
-
209
- - `async LoadData(dataSource: any, forceRefresh?: boolean, loadRelatedDataOnSingleRecords?: boolean, maxRecordsPerRelationship?: number, contextUser?: UserInfo): Promise<boolean>`
210
- - Loads data for all items in the context
211
-
212
- - `async Load(DataContextID: string, dataSource: any, forceRefresh?: boolean, loadRelatedDataOnSingleRecords?: boolean, maxRecordsPerRelationship?: number, contextUser?: UserInfo): Promise<boolean>`
213
- - Loads both metadata and data in one operation
214
-
215
- - `async SaveItems(contextUser?: UserInfo, persistItemData?: boolean): Promise<boolean>`
216
- - Saves all data context items to the database
217
-
218
- - `AddDataContextItem(): DataContextItem`
219
- - Creates and adds a new item to the context
220
-
221
- - `ValidateDataExists(ignoreFailedLoadItems?: boolean): boolean`
222
- - Checks if all items have data loaded
223
-
224
- - `ConvertToSimpleObject(itemPrefix?: string, includeFailedLoadItems?: boolean): any`
225
- - Converts the context to a simple object structure
348
+ ### Reconstructing from Raw Data
226
349
 
227
- - `CreateSimpleObjectTypeDefinition(itemPrefix?: string, includeFailedLoadItems?: boolean): string`
228
- - Generates TypeScript type definition for the data structure
229
-
230
- - `LoadDataFromObject(data: any[][]): boolean`
231
- - Loads pre-fetched data into the context
232
-
233
- - `static async Clone(context: DataContext, includeData?: boolean, contextUser?: UserInfo): Promise<DataContext>`
234
- - Creates a deep copy of a data context
235
-
236
- - `static async FromRawData(rawData: any): Promise<DataContext>`
237
- - Creates a context from raw data object
238
-
239
- ### DataContextItem Class
240
-
241
- #### Properties
242
-
243
- - `Type: 'view' | 'query' | 'full_entity' | 'sql' | 'single_record'` - The type of data item
244
- - `RecordID: string` - Primary key for single_record types
245
- - `EntityID?: string` - Entity identifier
246
- - `ViewID?: string` - View identifier
247
- - `QueryID?: string` - Query identifier
248
- - `RecordName: string` - Name of the view, query, or entity
249
- - `SQL?: string` - SQL statement for 'sql' type
250
- - `EntityName?: string` - Name of the entity
251
- - `Fields: DataContextFieldInfo[]` - Field metadata
252
- - `Data: any[]` - The loaded data
253
- - `DataLoaded: boolean` - Indicates if data has been loaded
254
- - `DataLoadingError?: string` - Error message if loading failed
255
- - `Description: string` - Auto-generated description
256
- - `AdditionalDescription?: string` - Optional custom description
257
-
258
- #### Methods
259
-
260
- - `async LoadData(dataSource: any, forceRefresh?: boolean, loadRelatedDataOnSingleRecords?: boolean, maxRecordsPerRelationship?: number, contextUser?: UserInfo): Promise<boolean>`
261
- - Loads data for this specific item
350
+ ```typescript
351
+ const context = await DataContext.FromRawData(rawObject);
352
+ // rawObject should have { ID, Items: [ { Type, RecordID, ... }, ... ] }
353
+ ```
262
354
 
263
- - `LoadDataFromObject(data: any[]): boolean`
264
- - Loads pre-fetched data into the item
355
+ ## Server-Side SQL Support
265
356
 
266
- - `ValidateDataExists(ignoreFailedLoad?: boolean): boolean`
267
- - Validates that data has been loaded
357
+ The base `DataContextItem` class throws an error when `LoadFromSQL()` is called because raw SQL execution is inherently a server-side operation. The companion package `@memberjunction/data-context-server` provides `DataContextItemServer`, which overrides this method using an `mssql` connection pool:
268
358
 
269
- - `static FromViewEntity(viewEntity: UserViewEntityExtended): DataContextItem`
270
- - `static FromSingleRecord(singleRecord: BaseEntity): DataContextItem`
271
- - `static FromQuery(query: QueryInfo): DataContextItem`
272
- - `static FromFullEntity(entity: EntityInfo): DataContextItem`
273
- - `static FromRawItem(rawItem: any): DataContextItem`
359
+ ```mermaid
360
+ flowchart TD
361
+ subgraph Client["Client Tier"]
362
+ style Client fill:#2d6a9f,stroke:#1a4971,color:#fff
363
+ DCI_C["DataContextItem\n(base class)"]
364
+ end
274
365
 
275
- ### DataContextFieldInfo Class
366
+ subgraph Server["Server Tier"]
367
+ style Server fill:#2d8659,stroke:#1a5c3a,color:#fff
368
+ DCI_S["DataContextItemServer\n(@RegisterClass override)"]
369
+ MSSQL["mssql ConnectionPool"]
370
+ end
276
371
 
277
- ```typescript
278
- class DataContextFieldInfo {
279
- Name: string;
280
- Type: string;
281
- Description?: string;
282
- }
372
+ DCI_C -->|"LoadFromSQL() throws error"| X["Not supported client-side"]
373
+ DCI_S -->|"LoadFromSQL() executes via"| MSSQL
374
+ DCI_S -.->|"extends"| DCI_C
283
375
  ```
284
376
 
285
- ## Server-Side Considerations
377
+ `DataContextItemServer` is registered via `@RegisterClass` with a higher priority, so the MemberJunction class factory automatically returns the server variant when the server package is included. No code changes are needed -- just include `@memberjunction/data-context-server` in your server project's dependencies.
378
+
379
+ ## API Reference
286
380
 
287
- For SQL type data context items, you'll need to use the server-side implementation from `@memberjunction/data-context-server` which properly handles SQL execution with appropriate security and data source management.
381
+ ### DataContext
382
+
383
+ | Method | Returns | Description |
384
+ |--------|---------|-------------|
385
+ | `LoadMetadata(id, contextUser?, provider?)` | `Promise<boolean>` | Loads metadata for the context and all its items from the database |
386
+ | `LoadData(dataSource, forceRefresh?, loadRelated?, maxRecords?, contextUser?)` | `Promise<boolean>` | Loads data for all items; must call `LoadMetadata()` first |
387
+ | `Load(id, dataSource, forceRefresh?, loadRelated?, maxRecords?, contextUser?)` | `Promise<boolean>` | Combined metadata + data load in one call |
388
+ | `SaveItems(contextUser?, persistItemData?)` | `Promise<boolean>` | Persists all items to the database in a single transaction |
389
+ | `AddDataContextItem()` | `DataContextItem` | Creates a new item and adds it to `Items` |
390
+ | `ValidateDataExists(ignoreFailedLoadItems?)` | `boolean` | Returns true if all items have their `Data` property set |
391
+ | `ConvertToSimpleObject(itemPrefix?, includeFailedLoadItems?)` | `object` | Converts context to a flat keyed object |
392
+ | `CreateSimpleObjectTypeDefinition(itemPrefix?, includeFailedLoadItems?)` | `string` | Generates a type definition string for the simple object |
393
+ | `LoadDataFromObject(data)` | `boolean` | Loads pre-fetched data as a 2D array mapped by item index |
394
+ | `Clone(context, includeData?, contextUser?)` (static) | `Promise<DataContext>` | Deep-clones a context and its items into new database records |
395
+ | `FromRawData(rawData)` (static) | `Promise<DataContext>` | Reconstructs a `DataContext` from a plain object |
396
+ | `CreateDataContextItem()` (static) | `DataContextItem` | Creates a new item via the class factory (does not add to context) |
397
+ | `MapEntityFieldsToDataContextFields(entity)` (static) | `DataContextFieldInfo[]` | Maps `EntityInfo` fields to simplified field info objects |
398
+
399
+ ### DataContextItem
400
+
401
+ | Property | Type | Description |
402
+ |----------|------|-------------|
403
+ | `Type` | `'view' \| 'query' \| 'full_entity' \| 'sql' \| 'single_record'` | The data source type |
404
+ | `RecordID` | `string` | Primary key for `single_record` items (comma-separated for composite keys) |
405
+ | `EntityID` | `string` | Entity identifier (not used for `query` or `sql` types) |
406
+ | `ViewID` | `string` | View identifier (only for `view` type) |
407
+ | `QueryID` | `string` | Query identifier (only for `query` type) |
408
+ | `RecordName` | `string` | Display name of the view, query, or entity |
409
+ | `SQL` | `string` | SQL statement (only for `sql` type) |
410
+ | `CodeName` | `string` | System-generated unique code name within the context |
411
+ | `EntityName` | `string` | Entity name (not used for `query` or `sql` types) |
412
+ | `Fields` | `DataContextFieldInfo[]` | Field metadata for the item |
413
+ | `DataContextItemID` | `string` | Database record ID (populated after save) |
414
+ | `Data` | `object[]` | The loaded data rows |
415
+ | `DataLoaded` | `boolean` | Whether data has been successfully loaded |
416
+ | `DataLoadingError` | `string` | Error message if loading failed |
417
+ | `Description` | `string` (readonly) | Auto-generated description based on type |
418
+ | `AdditionalDescription` | `string` | Optional supplementary description |
419
+
420
+ | Static Factory Method | Description |
421
+ |----------------------|-------------|
422
+ | `FromViewEntity(viewEntity)` | Creates an item from a `UserViewEntityExtended` |
423
+ | `FromSingleRecord(record)` | Creates an item from a `BaseEntity` instance |
424
+ | `FromQuery(query)` | Creates an item from a `QueryInfo` |
425
+ | `FromFullEntity(entity)` | Creates an item from an `EntityInfo` |
426
+ | `FromRawItem(rawItem)` | Creates an item from a plain object |
427
+
428
+ ### DataContextFieldInfo
429
+
430
+ | Property | Type | Description |
431
+ |----------|------|-------------|
432
+ | `Name` | `string` | Field name |
433
+ | `Type` | `string` | Field data type |
434
+ | `Description` | `string` (optional) | Field description |
288
435
 
289
436
  ## Dependencies
290
437
 
291
- - `@memberjunction/global`: Core global utilities and class factory
292
- - `@memberjunction/core-entities`: Entity definitions for MemberJunction
293
- - `@memberjunction/core`: Core MemberJunction functionality
438
+ | Package | Purpose |
439
+ |---------|---------|
440
+ | `@memberjunction/global` | Class factory and `@RegisterClass` decorator |
441
+ | `@memberjunction/core` | Core framework: `Metadata`, `RunView`, `RunQuery`, `BaseEntity`, `EntityInfo`, `UserInfo` |
442
+ | `@memberjunction/core-entities` | Generated entity classes: `DataContextEntity`, `DataContextItemEntity`, `UserViewEntityExtended` |
294
443
 
295
444
  ## Best Practices
296
445
 
297
- 1. **Always load metadata before data**: Use `LoadMetadata()` before `LoadData()` or simply use `Load()` which does both
298
- 2. **Handle loading errors**: Check `DataLoaded` and `DataLoadingError` properties on items
299
- 3. **Use appropriate data sources**: SQL type items require server-side data sources
300
- 4. **Consider performance**: Use `maxRecordsPerRelationship` to limit related data loading
301
- 5. **Validate before use**: Call `ValidateDataExists()` before processing data
302
- 6. **Use transactions**: When saving multiple items, they're automatically wrapped in a transaction
446
+ 1. **Always load metadata before data.** Use `LoadMetadata()` then `LoadData()`, or use the combined `Load()` method.
447
+ 2. **Check `DataLoaded` and `DataLoadingError`** on each item after loading. `LoadData()` does not throw exceptions for individual item failures -- it returns `false` and populates the error properties.
448
+ 3. **Pass `contextUser` on the server side.** Server code serves multiple users concurrently and must include the context user for proper security and audit tracking.
449
+ 4. **Use `maxRecordsPerRelationship`** to limit the amount of related data loaded for `single_record` items, especially in production environments.
450
+ 5. **Validate before processing.** Call `ValidateDataExists()` before working with data to ensure all items are ready.
451
+ 6. **Leverage transactions.** `SaveItems()` automatically wraps all item saves in a transaction group for atomicity.
452
+ 7. **Include `@memberjunction/data-context-server`** in server projects if any items use the `sql` type. The class factory handles the override automatically.
303
453
 
304
454
  ## License
305
455
 
306
- ISC
456
+ ISC