123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.Runtime = exports.Extensions = void 0;
- const extensions_api_client_internal_1 = require("./extensions-api-client-internal");
- const validator = require("../utils/validator");
- class Extensions {
-
- constructor(app) {
- this.app = app;
- this.client = new extensions_api_client_internal_1.ExtensionsApiClient(app);
- }
-
- runtime() {
- return new Runtime(this.client);
- }
- }
- exports.Extensions = Extensions;
- class Runtime {
-
- constructor(client) {
- this.projectId = this.getProjectId();
- if (!validator.isNonEmptyString(process.env['EXT_INSTANCE_ID'])) {
- throw new extensions_api_client_internal_1.FirebaseExtensionsError('invalid-argument', 'Runtime is only available from within a running Extension instance.');
- }
- this.extensionInstanceId = process.env['EXT_INSTANCE_ID'];
- if (!validator.isNonNullObject(client) || !('updateRuntimeData' in client)) {
- throw new extensions_api_client_internal_1.FirebaseExtensionsError('invalid-argument', 'Must provide a valid ExtensionsApiClient instance to create a new Runtime.');
- }
- this.client = client;
- }
-
- async setProcessingState(state, detailMessage) {
- await this.client.updateRuntimeData(this.projectId, this.extensionInstanceId, {
- processingState: {
- state,
- detailMessage,
- },
- });
- }
-
- async setFatalError(errorMessage) {
- if (!validator.isNonEmptyString(errorMessage)) {
- throw new extensions_api_client_internal_1.FirebaseExtensionsError('invalid-argument', 'errorMessage must not be empty');
- }
- await this.client.updateRuntimeData(this.projectId, this.extensionInstanceId, {
- fatalError: {
- errorMessage,
- },
- });
- }
- getProjectId() {
- const projectId = process.env['PROJECT_ID'];
- if (!validator.isNonEmptyString(projectId)) {
- throw new extensions_api_client_internal_1.FirebaseExtensionsError('invalid-argument', 'PROJECT_ID must not be undefined in Extensions runtime environment');
- }
- return projectId;
- }
- }
- exports.Runtime = Runtime;
|