createArgFromBinds function

Expression createArgFromBinds(
  1. ServerBindsAnnotation annotation,
  2. ServerParam param
)

Implementation

Expression createArgFromBinds(
  ServerBindsAnnotation annotation,
  ServerParam param,
) {
  var paramsRef = createClass(
    annotation.bind.bind,
  ).property('bind').call([createBindContext(param)]).awaited;

  if (createThrowMissingArgument(annotation, param) case final thrown?) {
    paramsRef = paramsRef.ifNullThen(thrown);
  }

  if (param.defaultValue case final defaultValue?) {
    paramsRef = paramsRef.ifNullThen(CodeExpression(Code(defaultValue)));
  }

  return paramsRef;
}