UNPKG

@ecobee/nodejs-gcloud-pubsub-module

Version:
49 lines (48 loc) 2.23 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.GcloudPubSubService = void 0; const common_1 = require("@nestjs/common"); const pubsub_1 = require("@google-cloud/pubsub"); let GcloudPubSubService = class GcloudPubSubService { constructor(googleAuthOptions, publishOptions) { this.googleAuthOptions = googleAuthOptions; this.publishOptions = publishOptions; this.gcloudPubSubLib = new pubsub_1.PubSub(googleAuthOptions); } publishMessage(topic, data, attributes = {}, encoding) { let dataBuffer = undefined; if (typeof data === 'string' && encoding) { dataBuffer = Buffer.from(data, encoding); } else if (Array.isArray(data)) { dataBuffer = Buffer.from(data); } else if (data instanceof ArrayBuffer) { dataBuffer = Buffer.from(data); } else if (data instanceof SharedArrayBuffer) { dataBuffer = Buffer.from(data); } else if (data instanceof Uint8Array) { dataBuffer = Buffer.from(data); } else { dataBuffer = Buffer.from(data); } return this.gcloudPubSubLib.topic(topic, this.publishOptions).publish(dataBuffer, attributes); } }; GcloudPubSubService = __decorate([ common_1.Injectable(), __metadata("design:paramtypes", [Object, Object]) ], GcloudPubSubService); exports.GcloudPubSubService = GcloudPubSubService;