@aws-amplify/datastore
Version:
AppSyncLocal support for aws-amplify
26 lines (22 loc) • 798 B
text/typescript
import {
PersistentModel,
PersistentModelConstructor,
} from '@aws-amplify/datastore';
// Helper for converting JSON back into DataStore models (while respecting IDs)
export function deserializeModel<T extends PersistentModel>(
Model: PersistentModelConstructor<T>,
init: T | T[]
) {
if (Array.isArray(init)) {
return init.map(init => deserializeModel(Model, init));
}
// `fromJSON` is intentionally hidden from types as a "private" method (though it exists on the instance)
// @ts-ignore Property 'fromJSON' does not exist on type 'PersistentModelConstructor<T>'.ts(2339)
return Model.fromJSON(init);
}
// Helper for converting DataStore models to JSON
export function serializeModel<T extends PersistentModel>(
model: T | T[]
): JSON {
return JSON.parse(JSON.stringify(model));
}