azurite
Version:
An open source Azure Storage API compatible server
64 lines • 3.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const fs_extra_1 = require("fs-extra");
const path_1 = require("path");
const QueueConfiguration_1 = tslib_1.__importDefault(require("../queue/QueueConfiguration"));
const QueueServer_1 = tslib_1.__importDefault(require("../queue/QueueServer"));
const constants_1 = require("../queue/utils/constants");
const Logger = tslib_1.__importStar(require("./Logger"));
const NoLoggerStrategy_1 = tslib_1.__importDefault(require("./NoLoggerStrategy"));
const VSCChannelLoggerStrategy_1 = tslib_1.__importDefault(require("./VSCChannelLoggerStrategy"));
const VSCChannelWriteStream_1 = tslib_1.__importDefault(require("./VSCChannelWriteStream"));
const VSCEnvironment_1 = tslib_1.__importDefault(require("./VSCEnvironment"));
const VSCServerManagerBase_1 = tslib_1.__importDefault(require("./VSCServerManagerBase"));
const VSCServerManagerClosedState_1 = tslib_1.__importDefault(require("./VSCServerManagerClosedState"));
const Telemetry_1 = require("./Telemetry");
class VSCServerManagerBlob extends VSCServerManagerBase_1.default {
constructor() {
super("Azurite Queue Service", new VSCServerManagerClosedState_1.default());
this.accessChannelStream = new VSCChannelWriteStream_1.default("Azurite Queue");
this.debuggerLoggerStrategy = new VSCChannelLoggerStrategy_1.default("Azurite Queue Debug");
}
getStartCommand() {
return "azurite.start_queue";
}
getCloseCommand() {
return "azurite.close_queue";
}
getCleanCommand() {
return "azurite.clean_queue";
}
async createImpl() {
const config = await this.getConfiguration();
Logger.default.strategy = config.enableDebugLog
? this.debuggerLoggerStrategy
: new NoLoggerStrategy_1.default();
this.server = new QueueServer_1.default(config);
}
async startImpl() {
await this.server.start();
await Telemetry_1.AzuriteTelemetryClient.TraceStartEvent("Queue-VSC");
}
async closeImpl() {
Telemetry_1.AzuriteTelemetryClient.TraceStopEvent("Queue-VSC");
this.server.close();
}
async cleanImpl() {
await this.createImpl();
await this.server.clean();
}
async getConfiguration() {
const env = new VSCEnvironment_1.default();
const location = await env.location();
await (0, fs_extra_1.ensureDir)(location);
await (0, fs_extra_1.access)(location);
constants_1.DEFAULT_QUEUE_PERSISTENCE_ARRAY[0].locationPath = (0, path_1.join)(location, constants_1.DEFAULT_QUEUE_PERSISTENCE_PATH);
Telemetry_1.AzuriteTelemetryClient.init(constants_1.DEFAULT_QUEUE_PERSISTENCE_ARRAY[0].locationPath, !env.disableTelemetry(), env.workspaceConfiguration, true);
// Initialize server configuration
const config = new QueueConfiguration_1.default(env.queueHost(), env.queuePort(), env.queueKeepAliveTimeout(), (0, path_1.join)(location, constants_1.DEFAULT_QUEUE_LOKI_DB_PATH), (0, path_1.join)(location, constants_1.DEFAULT_QUEUE_EXTENT_LOKI_DB_PATH), constants_1.DEFAULT_QUEUE_PERSISTENCE_ARRAY, !env.silent(), this.accessChannelStream, (await env.debug()) === true, undefined, env.loose(), env.skipApiVersionCheck(), env.cert(), env.key(), env.pwd(), env.oauth(), env.disableProductStyleUrl(), env.inMemoryPersistence());
return config;
}
}
exports.default = VSCServerManagerBlob;
//# sourceMappingURL=VSCServerManagerQueue.js.map
;