@concord-consortium/object-storage 1.0.0-pre.3 → 1.0.0-pre.4

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.
@@ -63,6 +63,9 @@ export declare class TypedObject implements StoredObject {
63
63
  metadata: TypedMetadata;
64
64
  data: TypedData;
65
65
  constructor(options?: TypedObjectOptions);
66
+ static IsSupportedTypedObject(storedObject: StoredObject): boolean;
67
+ static IsSupportedTypedObjectMetadata(storedObjectMetadata?: StoredObject["metadata"]): boolean;
68
+ static FromStoredObject(id: string, storedObject: StoredObject): TypedObject;
66
69
  addImage(options: AddImageOptions): void;
67
70
  addDataTable(options: AddDataTableOptions): void;
68
71
  addText(options: AddTypedTextOptions): void;
@@ -18,6 +18,22 @@ class TypedObject {
18
18
  }
19
19
  this.data = {};
20
20
  }
21
+ static IsSupportedTypedObject(storedObject) {
22
+ return TypedObject.IsSupportedTypedObjectMetadata(storedObject.metadata);
23
+ }
24
+ static IsSupportedTypedObjectMetadata(storedObjectMetadata) {
25
+ const metadata = storedObjectMetadata;
26
+ return metadata !== undefined && metadata.type === "typed" && typeof metadata.version === "number" && metadata.version == 1;
27
+ }
28
+ static FromStoredObject(id, storedObject) {
29
+ if (!TypedObject.IsSupportedTypedObject(storedObject)) {
30
+ throw new Error("Invalid or unsupported TypedObject");
31
+ }
32
+ const typedObject = new TypedObject({ id });
33
+ typedObject.metadata = storedObject.metadata;
34
+ typedObject.data = storedObject.data;
35
+ return typedObject;
36
+ }
21
37
  addImage(options) {
22
38
  const id = options.id || (0, nanoid_1.nanoid)();
23
39
  this.metadata.items[id] = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@concord-consortium/object-storage",
3
- "version": "1.0.0-pre.3",
3
+ "version": "1.0.0-pre.4",
4
4
  "description": "A TypeScript library for object storage",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",