@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
44 lines • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.eventContractCleanerUtil = void 0;
const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
exports.eventContractCleanerUtil = {
cleanPayloadsAndPermissions(contract) {
const cleaned = {
eventSignatures: {},
};
const signatures = spruce_event_utils_1.eventContractUtil.getNamedEventSignatures(contract);
for (const sig of signatures) {
const cleanedSig = {
...sig.signature,
};
const emitPayloadFields = Object.keys(
//@ts-ignore
cleanedSig.emitPayloadSchema?.fields?.payload?.options?.schema
?.fields ?? {}).length;
const targetPayloadFields = Object.keys(
//@ts-ignore
cleanedSig.emitPayloadSchema?.fields?.target?.options?.schema
?.fields ?? {}).length;
if (emitPayloadFields + targetPayloadFields === 0) {
delete cleanedSig.emitPayloadSchema;
}
if (cleanedSig.responsePayloadSchema?.fields &&
Object.keys(cleanedSig.responsePayloadSchema?.fields).length ===
0) {
delete cleanedSig.responsePayloadSchema;
}
if (cleanedSig.emitPermissionContract &&
cleanedSig.emitPermissionContract.permissions.length === 0) {
delete cleanedSig.emitPermissionContract;
}
if (cleanedSig.listenPermissionContract &&
cleanedSig.listenPermissionContract.permissions.length === 0) {
delete cleanedSig.listenPermissionContract;
}
cleaned.eventSignatures[sig.fullyQualifiedEventName] = cleanedSig;
}
return cleaned;
},
};
//# sourceMappingURL=eventContractCleaner.utility.js.map