Manually Trigger Hooks
For version @barktler/core >=2.5.0
, manually hooks triggering function is supported.
Considering the following example:
import { Barktler } from "@barktler/core";
class GoogleSearchAPI extends Barktler {
public static create(): GoogleSearchAPI {
return new GoogleSearchAPI();
}
public async search(keyword: string): Promise<void> {
const pendingRequest: PendingRequest = await this._requestForPendingRequest({
url: `https://www.google.com/search?q=${keyword}`,
method: 'GET',
});
// await pendingRequest.response; -> Wait for response data
// pendingRequest.cancel(); -> cancel request
}
}
The above example is called super._requestForPendingRequest(request)
for canceling support. But the validation, processing, and side effect execution are skipped due to the response uncertainty. In case of that, calling super._triggerPostHook(responseData)
will ensure the post hook is executed manually.
Function super._triggerPostHook(responseData)
return new responseData
that got processed or null
. Returning null
indicates the validation failing.