@ngqp/core
Version:
62 lines • 8.5 kB
JavaScript
import { isMissing } from './util';
/**
* Creates a serializer for parameters of type `string`.
*
* @param defaultValue Optional default value to return if the value to serialize is `undefined` or `null`.
*/
export function createStringSerializer(defaultValue = null) {
return model => isMissing(model) ? defaultValue : model;
}
/**
* Creates a deserializer for parameters of type `string`.
*
* @param defaultValue Optional default value to return if the value to deserialize is `undefined` or `null`.
*/
export function createStringDeserializer(defaultValue = null) {
return value => isMissing(value) ? defaultValue : value;
}
/**
* Creates a serializer for parameters of type `number`.
*
* @param defaultValue Optional default value to return if the value to serialize is `undefined` or `null`.
*/
export function createNumberSerializer(defaultValue = null) {
return model => isMissing(model) ? defaultValue : `${model}`;
}
/**
* Creates a deserializer for parameters of type `number`.
*
* @param defaultValue Optional default value to return if the value to deserialize is `undefined` or `null`.
*/
export function createNumberDeserializer(defaultValue = null) {
return value => isMissing(value) ? defaultValue : parseFloat(value);
}
/**
* Creates a serializer for parameters of type `boolean`.
*
* @param defaultValue Optional default value to return if the value to serialize is `undefined` or `null`.
*/
export function createBooleanSerializer(defaultValue = null) {
return model => isMissing(model) ? defaultValue : `${model}`;
}
/**
* Creates a deserializer for parameters of type `boolean`.
*
* @param defaultValue Optional default value to return if the value to deserialize is `undefined` or `null`.
*/
export function createBooleanDeserializer(defaultValue = null) {
return value => isMissing(value) ? defaultValue : (value === 'true' || value === '1');
}
/** @internal */
export const DEFAULT_STRING_SERIALIZER = createStringSerializer();
/** @internal */
export const DEFAULT_STRING_DESERIALIZER = createStringDeserializer();
/** @internal */
export const DEFAULT_NUMBER_SERIALIZER = createNumberSerializer();
/** @internal */
export const DEFAULT_NUMBER_DESERIALIZER = createNumberDeserializer();
/** @internal */
export const DEFAULT_BOOLEAN_SERIALIZER = createBooleanSerializer();
/** @internal */
export const DEFAULT_BOOLEAN_DESERIALIZER = createBooleanDeserializer();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplcnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdxcC9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zZXJpYWxpemVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUdsRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLGVBQThCLElBQUk7SUFDckUsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDNUQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsZUFBOEIsSUFBSTtJQUN2RSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUM1RCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxlQUE4QixJQUFJO0lBQ3JFLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUNqRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxlQUE4QixJQUFJO0lBQ3ZFLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLGVBQThCLElBQUk7SUFDdEUsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ2pFLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGVBQStCLElBQUk7SUFDekUsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQzFGLENBQUM7QUFFRCxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztBQUVsRSxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztBQUV0RSxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztBQUVsRSxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztBQUV0RSxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztBQUVwRSxnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFyZUVxdWFsVXNpbmcsIGlzTWlzc2luZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBDb21wYXJhdG9yLCBQYXJhbURlc2VyaWFsaXplciwgUGFyYW1TZXJpYWxpemVyIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHNlcmlhbGl6ZXIgZm9yIHBhcmFtZXRlcnMgb2YgdHlwZSBgc3RyaW5nYC5cbiAqXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIE9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSB2YWx1ZSB0byBzZXJpYWxpemUgaXMgYHVuZGVmaW5lZGAgb3IgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nU2VyaWFsaXplcihkZWZhdWx0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogUGFyYW1TZXJpYWxpemVyPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gbW9kZWwgPT4gaXNNaXNzaW5nKG1vZGVsKSA/IGRlZmF1bHRWYWx1ZSA6IG1vZGVsO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBkZXNlcmlhbGl6ZXIgZm9yIHBhcmFtZXRlcnMgb2YgdHlwZSBgc3RyaW5nYC5cbiAqXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIE9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSB2YWx1ZSB0byBkZXNlcmlhbGl6ZSBpcyBgdW5kZWZpbmVkYCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHJpbmdEZXNlcmlhbGl6ZXIoZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IFBhcmFtRGVzZXJpYWxpemVyPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdmFsdWUgPT4gaXNNaXNzaW5nKHZhbHVlKSA/IGRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzZXJpYWxpemVyIGZvciBwYXJhbWV0ZXJzIG9mIHR5cGUgYG51bWJlcmAuXG4gKlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBPcHRpb25hbCBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUgdmFsdWUgdG8gc2VyaWFsaXplIGlzIGB1bmRlZmluZWRgIG9yIGBudWxsYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU51bWJlclNlcmlhbGl6ZXIoZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbCk6IFBhcmFtU2VyaWFsaXplcjxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIG1vZGVsID0+IGlzTWlzc2luZyhtb2RlbCkgPyBkZWZhdWx0VmFsdWUgOiBgJHttb2RlbH1gO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBkZXNlcmlhbGl6ZXIgZm9yIHBhcmFtZXRlcnMgb2YgdHlwZSBgbnVtYmVyYC5cbiAqXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIE9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSB2YWx1ZSB0byBkZXNlcmlhbGl6ZSBpcyBgdW5kZWZpbmVkYCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOdW1iZXJEZXNlcmlhbGl6ZXIoZGVmYXVsdFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbCk6IFBhcmFtRGVzZXJpYWxpemVyPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdmFsdWUgPT4gaXNNaXNzaW5nKHZhbHVlKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlRmxvYXQodmFsdWUpO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzZXJpYWxpemVyIGZvciBwYXJhbWV0ZXJzIG9mIHR5cGUgYGJvb2xlYW5gLlxuICpcbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgT3B0aW9uYWwgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgdGhlIHZhbHVlIHRvIHNlcmlhbGl6ZSBpcyBgdW5kZWZpbmVkYCBvciBgbnVsbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb29sZWFuU2VyaWFsaXplcihkZWZhdWx0VmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogUGFyYW1TZXJpYWxpemVyPGJvb2xlYW4gfCBudWxsPiB7XG4gICAgcmV0dXJuIG1vZGVsID0+IGlzTWlzc2luZyhtb2RlbCkgPyBkZWZhdWx0VmFsdWUgOiBgJHttb2RlbH1gO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBkZXNlcmlhbGl6ZXIgZm9yIHBhcmFtZXRlcnMgb2YgdHlwZSBgYm9vbGVhbmAuXG4gKlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBPcHRpb25hbCBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiB0aGUgdmFsdWUgdG8gZGVzZXJpYWxpemUgaXMgYHVuZGVmaW5lZGAgb3IgYG51bGxgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQm9vbGVhbkRlc2VyaWFsaXplcihkZWZhdWx0VmFsdWU6IGJvb2xlYW4gfCBudWxsID0gbnVsbCk6IFBhcmFtRGVzZXJpYWxpemVyPGJvb2xlYW4gfCBudWxsPiB7XG4gICAgcmV0dXJuIHZhbHVlID0+IGlzTWlzc2luZyh2YWx1ZSkgPyBkZWZhdWx0VmFsdWUgOiAodmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJzEnKTtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1RSSU5HX1NFUklBTElaRVIgPSBjcmVhdGVTdHJpbmdTZXJpYWxpemVyKCk7XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NUUklOR19ERVNFUklBTElaRVIgPSBjcmVhdGVTdHJpbmdEZXNlcmlhbGl6ZXIoKTtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTlVNQkVSX1NFUklBTElaRVIgPSBjcmVhdGVOdW1iZXJTZXJpYWxpemVyKCk7XG5cbi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX05VTUJFUl9ERVNFUklBTElaRVIgPSBjcmVhdGVOdW1iZXJEZXNlcmlhbGl6ZXIoKTtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQk9PTEVBTl9TRVJJQUxJWkVSID0gY3JlYXRlQm9vbGVhblNlcmlhbGl6ZXIoKTtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfQk9PTEVBTl9ERVNFUklBTElaRVIgPSBjcmVhdGVCb29sZWFuRGVzZXJpYWxpemVyKCk7Il19