@swaggerexpert/cookie
Version:
RFC 6265 compliant cookie parser, validator and serializer.
34 lines • 1.07 kB
JavaScript
import cookieValueStrictBase64urlEncoder from "./encoders/cookie-value-strict-base64url.mjs";
import cookieNameStrictValidator from "./validators/cookie-name-strict.mjs";
import cookieValueStrictValidator from "./validators/cookie-value-strict.mjs";
import { identity } from "../../utils.mjs";
const defaultOptions = {
encoders: {
name: identity,
value: cookieValueStrictBase64urlEncoder
},
validators: {
name: cookieNameStrictValidator,
value: cookieValueStrictValidator
}
};
const serialize = (name, value, options = {}) => {
const mergedOptions = {
...defaultOptions,
...options,
encoders: {
...defaultOptions.encoders,
...options.encoders
},
validators: {
...defaultOptions.validators,
...options.validators
}
};
const encodedName = mergedOptions.encoders.name(name);
const encodedValue = mergedOptions.encoders.value(value);
mergedOptions.validators.name(encodedName);
mergedOptions.validators.value(encodedValue);
return `${encodedName}=${encodedValue}`;
};
export default serialize;