@medplum/fhir-router 3.1.11 → 3.2.1

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.
@@ -64,6 +64,15 @@ export declare interface FhirOptions {
64
64
  * 2. Server Repository - A repository that stores resources in a relational database.
65
65
  */
66
66
  export declare interface FhirRepository<TClient = unknown> {
67
+ /**
68
+ * Sets the repository mode.
69
+ * In general, it is assumed that repositories will start in "reader" mode,
70
+ * and that the mode will be changed to "writer" as needed.
71
+ * It is recommended that the repository use "reader" opportunistically,
72
+ * but after using "writer" once it should use "writer" exclusively.
73
+ * @param mode - The repository mode.
74
+ */
75
+ setMode(mode: RepositoryMode): void;
67
76
  /**
68
77
  * Creates a FHIR resource.
69
78
  *
@@ -228,6 +237,7 @@ export declare class MemoryRepository extends BaseRepository implements FhirRepo
228
237
  private readonly history;
229
238
  constructor();
230
239
  clear(): void;
240
+ setMode(_mode: RepositoryMode): void;
231
241
  createResource<T extends Resource>(resource: T): Promise<T>;
232
242
  updateResource<T extends Resource>(resource: T, versionId?: string): Promise<T>;
233
243
  conditionalUpdate<T extends Resource>(resource: T, search: SearchRequest): Promise<{
@@ -250,6 +260,11 @@ export declare type PathSegment = {
250
260
  param?: boolean;
251
261
  };
252
262
 
263
+ export declare enum RepositoryMode {
264
+ READER = "reader",
265
+ WRITER = "writer"
266
+ }
267
+
253
268
  export declare type Route<T> = {
254
269
  method: HttpMethod;
255
270
  path: PathSegment[];
@@ -64,6 +64,15 @@ export declare interface FhirOptions {
64
64
  * 2. Server Repository - A repository that stores resources in a relational database.
65
65
  */
66
66
  export declare interface FhirRepository<TClient = unknown> {
67
+ /**
68
+ * Sets the repository mode.
69
+ * In general, it is assumed that repositories will start in "reader" mode,
70
+ * and that the mode will be changed to "writer" as needed.
71
+ * It is recommended that the repository use "reader" opportunistically,
72
+ * but after using "writer" once it should use "writer" exclusively.
73
+ * @param mode - The repository mode.
74
+ */
75
+ setMode(mode: RepositoryMode): void;
67
76
  /**
68
77
  * Creates a FHIR resource.
69
78
  *
@@ -228,6 +237,7 @@ export declare class MemoryRepository extends BaseRepository implements FhirRepo
228
237
  private readonly history;
229
238
  constructor();
230
239
  clear(): void;
240
+ setMode(_mode: RepositoryMode): void;
231
241
  createResource<T extends Resource>(resource: T): Promise<T>;
232
242
  updateResource<T extends Resource>(resource: T, versionId?: string): Promise<T>;
233
243
  conditionalUpdate<T extends Resource>(resource: T, search: SearchRequest): Promise<{
@@ -250,6 +260,11 @@ export declare type PathSegment = {
250
260
  param?: boolean;
251
261
  };
252
262
 
263
+ export declare enum RepositoryMode {
264
+ READER = "reader",
265
+ WRITER = "writer"
266
+ }
267
+
253
268
  export declare type Route<T> = {
254
269
  method: HttpMethod;
255
270
  path: PathSegment[];