Quality API logo

Builder pattern

Quality API follows a half-traditional builder pattern.
Whenever a builder function is run, the original object isn't mutated, but rather cloned with new type parameters. This means that simply running a builder function, and then later returning the original object, will not return the new object.
See examples below.

The wrong way

import QualityApi from "@quality-api/core";

const middleware = QualityApi.createMiddleware(request => {
    const parseResult = schema.parse(request.body);
    
    request.setBody(parseResult.data);
    
    return request;
});

export default middleware;

The right way

import QualityApi from "@quality-api/core";

const middleware = QualityApi.createMiddleware(request => {
    const parseResult = schema.parse(request.body);
    
    return request.setBody(parseResult.data);
});

export default middleware;