39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
// A function-duration optimization can reduce p95/CPU/GB-hr. It does not by
|
|
// itself reduce function invocation count unless the fix also adds CDN/static
|
|
// response caching.
|
|
|
|
export const metadata = {
|
|
id: 'function-duration-invocations',
|
|
description: 'Remove false claims that slow-route data-cache fixes reduce function invocation count.',
|
|
};
|
|
|
|
const STRING_FIELDS = [
|
|
'what',
|
|
'why',
|
|
'fix',
|
|
'currentBehavior',
|
|
'desiredBehavior',
|
|
'verify',
|
|
];
|
|
|
|
const BAD_INVOCATION_CLAIM =
|
|
/\bfunction invocations?\b[^.!?\n]{0,120}\b(?:drop|drops|fall|falls|decrease|decreases|decline|declines|reduce|reduces|reduced|cut|cuts)\b[^.!?\n]*(?:[.!?]|$)|\b(?:drop|drops|fall|falls|decrease|decreases|decline|declines|reduce|reduces|reduced|cut|cuts)\b[^.!?\n]{0,120}\bfunction invocations?\b[^.!?\n]*(?:[.!?]|$)/gi;
|
|
|
|
const SAFE_REPLACEMENT =
|
|
'95th percentile duration should drop; function invocation count may stay flat unless a separate CDN or static-rendering change is made.';
|
|
|
|
export function apply(rec) {
|
|
if (!String(rec?.candidateRef ?? '').startsWith('slow_route:')) return {};
|
|
const tags = [];
|
|
for (const field of STRING_FIELDS) {
|
|
if (typeof rec?.[field] !== 'string') continue;
|
|
const before = rec[field];
|
|
const after = before.replace(BAD_INVOCATION_CLAIM, SAFE_REPLACEMENT);
|
|
if (after !== before) {
|
|
rec[field] = after;
|
|
tags.push(`function-duration-invocations:${field}`);
|
|
}
|
|
}
|
|
return tags.length > 0 ? { tags } : {};
|
|
}
|