cookies-parser.js 866 B

1234567891011121314151617181920212223242526272829303132
  1. import {DebuggableService} from '../debuggable-service.js';
  2. import {parseCookieString, getRequestPathname} from '../utils/index.js';
  3. /**
  4. * Cookies parser.
  5. */
  6. export class CookiesParser extends DebuggableService {
  7. /**
  8. * Parse
  9. *
  10. * @param {import('http').IncomingMessage} request
  11. * @returns {object}
  12. */
  13. parse(request) {
  14. const debug = this.getDebuggerFor(this.parse);
  15. const cookiesString = request.headers['cookie'] || '';
  16. const cookies = parseCookieString(cookiesString);
  17. const cookiesKeys = Object.keys(cookies);
  18. if (cookiesKeys.length) {
  19. cookiesKeys.forEach(key => {
  20. debug('The cookie %v had the value %v.', key, cookies[key]);
  21. });
  22. } else {
  23. debug(
  24. 'The request %s %v had no cookies.',
  25. request.method,
  26. getRequestPathname(request),
  27. );
  28. }
  29. return cookies;
  30. }
  31. }