jsona
Version:
Provide data formatters (data model builder & json builder) to work with JSON API specification v1.0 in your JavaScript / TypeScript code
28 lines (27 loc) • 1.52 kB
TypeScript
import { IModelPropertiesMapper, IModelsSerializerConstructor, IJsonDeserializerConstructor, IJsonPropertiesMapper, TJsonaDenormalizedIncludeNames, TJsonaNormalizedIncludeNamesTree, TJsonaModel, TJsonApiBody, TReduxObject, IDeserializeCacheConstructor, TDeserializeOptions } from './JsonaTypes';
declare class Jsona {
modelPropertiesMapper: IModelPropertiesMapper;
jsonPropertiesMapper: IJsonPropertiesMapper;
DeserializeCache: IDeserializeCacheConstructor;
ModelsSerializer: IModelsSerializerConstructor;
JsonDeserializer: IJsonDeserializerConstructor;
constructor(params?: {
modelPropertiesMapper?: IModelPropertiesMapper;
jsonPropertiesMapper?: IJsonPropertiesMapper;
DeserializeCache?: IDeserializeCacheConstructor;
ModelsSerializer?: IModelsSerializerConstructor;
JsonDeserializer?: IJsonDeserializerConstructor;
});
serialize({ stuff, includeNames }: {
stuff: TJsonaModel | Array<TJsonaModel>;
includeNames?: TJsonaDenormalizedIncludeNames | TJsonaNormalizedIncludeNamesTree;
}): TJsonApiBody;
deserialize(body: TJsonApiBody | string, options?: TDeserializeOptions): TJsonaModel | Array<TJsonaModel>;
denormalizeReduxObject({ reduxObject, entityType, entityIds, returnBuilderInRelations }: {
reduxObject: TReduxObject;
entityType: string;
entityIds?: string | Array<string>;
returnBuilderInRelations?: boolean;
}): null | TJsonaModel | Array<TJsonaModel>;
}
export default Jsona;