@genkit-ai/flow
Version:
Genkit AI framework workflow APIs.
93 lines • 3.35 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var __async = (__this, __arguments, generator) => {
return new Promise((resolve, reject) => {
var fulfilled = (value) => {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
};
var rejected = (value) => {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
};
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
step((generator = generator.apply(__this, __arguments)).next());
});
};
var firestoreStateStore_exports = {};
__export(firestoreStateStore_exports, {
FirestoreStateStore: () => FirestoreStateStore
});
module.exports = __toCommonJS(firestoreStateStore_exports);
var import_core = require("@genkit-ai/core");
var import_logging = require("@genkit-ai/core/logging");
var import_firestore = require("@google-cloud/firestore");
class FirestoreStateStore {
constructor(params = {}) {
this.collection = params.collection || "genkit-flows";
this.databaseId = params.databaseId || "(default)";
this.db = new import_firestore.Firestore({
databaseId: this.databaseId,
ignoreUndefinedProperties: true,
credentials: params.credentials
});
}
load(id) {
return __async(this, null, function* () {
const data = (yield this.db.collection(this.collection).doc(id).get()).data();
if (!data) {
return void 0;
}
return import_core.FlowStateSchema.parse(data);
});
}
save(id, state) {
return __async(this, null, function* () {
import_logging.logger.debug(state, "save state");
yield this.db.collection(this.collection).doc(id).set(state);
});
}
list(query) {
return __async(this, null, function* () {
const limit = (query == null ? void 0 : query.limit) || 10;
let fsQuery = this.db.collection(this.collection).orderBy("startTime", "desc");
if (query == null ? void 0 : query.continuationToken) {
fsQuery = fsQuery.startAfter(parseInt(query.continuationToken));
}
fsQuery = fsQuery.limit(limit);
const data = yield fsQuery.get();
const lastVisible = data.docs[data.docs.length - 1];
return {
flowStates: data.docs.map((d) => d.data()),
continuationToken: data.docs.length === limit ? `${lastVisible.data().startTime}` : void 0
};
});
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
FirestoreStateStore
});
//# sourceMappingURL=firestoreStateStore.js.map