Ir al contenido

Directivas pendientes

pendingDirectives() lista las directivas que la sesión de un factory todavía va a enviar, antes de que el engine prepare ninguna en staging. Es una función plana de @pbuilder/sdk/commons y se importa igual que cualquier otro verbo de autoría. No tiene un subpath propio.

import { pendingDirectives } from "@pbuilder/sdk/commons";

pendingDirectives() retorna PendingDirective[]: las directivas aún pendientes en el buffer de la sesión activa, expresadas en vocabulario de autor. Cada entrada lleva un verb y un path, más un kind opcional ("rendered" | "copied"). Ese campo aparece solo en los verbos de lectura local del paquete cuyo transporte se clasifica: create (kind: "rendered") y copyIn (kind: "copied").

import { runFactoryForTest } from "@pbuilder/sdk/testing";
import { create, find, pendingDirectives } from "@pbuilder/sdk/commons";
const run = () => {
create("src/index.ts", { template: "export const version = '1.0.0';", options: {} });
find("src/legacy.ts").remove();
for (const entry of pendingDirectives()) {
console.log(entry.verb, entry.path); // "create src/index.ts", luego "remove src/legacy.ts"
}
};
await runFactoryForTest(run, undefined, { seed: { "src/legacy.ts": "" } });

El resultado contiene solo lo que sigue pendiente: lo que la sesión todavía va a enviar, sin lo que ya envió. Un read() (o cualquier flush) vacía el buffer de pendientes, así que las directivas ya enviadas desaparecen del resultado de pendingDirectives().

pendingDirectives() solo puede llamarse dentro de una sesión activa (un factory en ejecución). Llamarlo fuera de una lanza el mismo error “authoring verbs can only be used while a schematic is running” que lanza cualquier otro verbo de @pbuilder/sdk/commons.