createCookieHeader function

Code createCookieHeader(
  1. Iterable<ClientParam> params
)

Implementation

Code createCookieHeader(Iterable<ClientParam> params) {
  assert(params.isNotEmpty, 'No cookie params found');
  assert(
    params.every((param) => param.position == ParameterPosition.cookie),
    'Not all params are cookie params',
  );

  return Block.of([
    const Code('{'),
    for (final entry in params.map(_createEntry)) ...[entry, const Code(',')],
    refer('}')
        .property('entries')
        .property('map')
        .call([
          Method(
            (b) => b
              ..lambda = true
              ..requiredParameters.add(Parameter((b) => b..name = 'e'))
              ..body = literalString(r'${e.key}=${e.value ?? ""}').code,
          ).closure,
        ])
        .property('join')
        .call([literal('; ')])
        .code,
  ]);
}