@pebula/metap
Version:
meta-programming tools
88 lines • 5.49 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { PlainObjectMapper } from './plain-object-mapper';
/**
* @record
* @template TTarget, TSource
*/
export function SerializerClass() { }
/**
* @record
* @template TTarget, TSource
*/
export function Serializer() { }
if (false) {
/**
* @param {?} context
* @return {?}
*/
Serializer.prototype.serialize = function (context) { };
}
/**
* Represents the contract a Serializer needs to implements.
* A Serializer should handle both a collection and a single item and should be able to identify them.
*
* Since Serialization transforms a KNOWN document to an UNKNOWN document the serializer is gets
* free control over the output.
* The library provides the instance and a container of property metadata for the instance and the
* serializer should do the rest.
*
* Since the output schema is now known to the library the whole process is managed by the serializer.
* The library helps with metadata.
* @abstract
* @template TTarget, TSource
*/
var /**
* Represents the contract a Serializer needs to implements.
* A Serializer should handle both a collection and a single item and should be able to identify them.
*
* Since Serialization transforms a KNOWN document to an UNKNOWN document the serializer is gets
* free control over the output.
* The library provides the instance and a container of property metadata for the instance and the
* serializer should do the rest.
*
* Since the output schema is now known to the library the whole process is managed by the serializer.
* The library helps with metadata.
* @abstract
* @template TTarget, TSource
*/
BaseSerializer = /** @class */ (function () {
function BaseSerializer(source, plainMapper) {
this.source = source;
this.plainMapper = plainMapper || new PlainObjectMapper();
}
return BaseSerializer;
}());
/**
* Represents the contract a Serializer needs to implements.
* A Serializer should handle both a collection and a single item and should be able to identify them.
*
* Since Serialization transforms a KNOWN document to an UNKNOWN document the serializer is gets
* free control over the output.
* The library provides the instance and a container of property metadata for the instance and the
* serializer should do the rest.
*
* Since the output schema is now known to the library the whole process is managed by the serializer.
* The library helps with metadata.
* @abstract
* @template TTarget, TSource
*/
export { BaseSerializer };
if (false) {
/**
* @type {?}
* @protected
*/
BaseSerializer.prototype.plainMapper;
/** @type {?} */
BaseSerializer.prototype.source;
/**
* @abstract
* @param {?} container
* @return {?}
*/
BaseSerializer.prototype.serialize = function (container) { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwZWJ1bGEvbWV0YXAvaW50ZXJuYWwvIiwic291cmNlcyI6WyJsaWIvc2VyaWFsaXphdGlvbi9zZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFMUQscUNBRUM7Ozs7O0FBRUQsZ0NBRUM7Ozs7OztJQURDLHdEQUErQzs7Ozs7Ozs7Ozs7Ozs7OztBQWVqRDs7Ozs7Ozs7Ozs7Ozs7O0lBR0Usd0JBQW1CLE1BQTJCLEVBQUUsV0FBK0I7UUFBNUQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLElBQUksSUFBSSxpQkFBaUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFHSCxxQkFBQztBQUFELENBQUMsQUFSRCxJQVFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFQQyxxQ0FBeUM7O0lBRTdCLGdDQUFrQzs7Ozs7O0lBSTlDLDhEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6ZXJDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IFBsYWluT2JqZWN0TWFwcGVyIH0gZnJvbSAnLi9wbGFpbi1vYmplY3QtbWFwcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVyQ2xhc3M8VFRhcmdldCA9IGFueSwgVFNvdXJjZSA9IGFueT4ge1xuICBuZXcgKHNvdXJjZTogVFNvdXJjZSB8IGFueVtdLCBwbGFpbk1hcHBlcj86IFBsYWluT2JqZWN0TWFwcGVyKTogU2VyaWFsaXplcjxUVGFyZ2V0LCBUU291cmNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVyPFRUYXJnZXQgPSBhbnksIFRTb3VyY2UgPSBhbnk+IHtcbiAgc2VyaWFsaXplKGNvbnRleHQ6IFNlcmlhbGl6ZXJDb250ZXh0KTogVFRhcmdldDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBjb250cmFjdCBhIFNlcmlhbGl6ZXIgbmVlZHMgdG8gaW1wbGVtZW50cy5cbiAqIEEgU2VyaWFsaXplciBzaG91bGQgaGFuZGxlIGJvdGggYSBjb2xsZWN0aW9uIGFuZCBhIHNpbmdsZSBpdGVtIGFuZCBzaG91bGQgYmUgYWJsZSB0byBpZGVudGlmeSB0aGVtLlxuICpcbiAqIFNpbmNlIFNlcmlhbGl6YXRpb24gdHJhbnNmb3JtcyBhIEtOT1dOIGRvY3VtZW50IHRvIGFuIFVOS05PV04gZG9jdW1lbnQgdGhlIHNlcmlhbGl6ZXIgaXMgZ2V0c1xuICogZnJlZSBjb250cm9sIG92ZXIgdGhlIG91dHB1dC5cbiAqIFRoZSBsaWJyYXJ5IHByb3ZpZGVzIHRoZSBpbnN0YW5jZSBhbmQgYSBjb250YWluZXIgb2YgcHJvcGVydHkgbWV0YWRhdGEgZm9yIHRoZSBpbnN0YW5jZSBhbmQgdGhlXG4gKiBzZXJpYWxpemVyIHNob3VsZCBkbyB0aGUgcmVzdC5cbiAqXG4gKiBTaW5jZSB0aGUgb3V0cHV0IHNjaGVtYSBpcyBub3cga25vd24gdG8gdGhlIGxpYnJhcnkgdGhlIHdob2xlIHByb2Nlc3MgaXMgbWFuYWdlZCBieSB0aGUgc2VyaWFsaXplci5cbiAqIFRoZSBsaWJyYXJ5IGhlbHBzIHdpdGggbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VyaWFsaXplcjxUVGFyZ2V0ID0gYW55LCBUU291cmNlID0gYW55PiB7XG4gIHByb3RlY3RlZCBwbGFpbk1hcHBlcjogUGxhaW5PYmplY3RNYXBwZXI7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZTogVFNvdXJjZSB8IFRTb3VyY2VbXSwgcGxhaW5NYXBwZXI/OiBQbGFpbk9iamVjdE1hcHBlcikge1xuICAgIHRoaXMucGxhaW5NYXBwZXIgPSBwbGFpbk1hcHBlciB8fCBuZXcgUGxhaW5PYmplY3RNYXBwZXIoKTtcbiAgfVxuXG4gIGFic3RyYWN0IHNlcmlhbGl6ZShjb250YWluZXI6IFNlcmlhbGl6ZXJDb250ZXh0KTogVFRhcmdldDtcbn1cbiJdfQ==