unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
63 lines • 2.46 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.clientRegisterSchema = exports.applicationSchema = exports.clientMetricsSchema = void 0;
const joi_1 = __importDefault(require("joi"));
const countSchema = joi_1.default
.object()
.options({ stripUnknown: true })
.keys({
yes: joi_1.default.number().min(0).empty('').default(0),
no: joi_1.default.number().min(0).empty('').default(0),
variants: joi_1.default.object().pattern(joi_1.default.string(), joi_1.default.number().min(0)),
});
exports.clientMetricsSchema = joi_1.default
.object()
.options({ stripUnknown: true })
.keys({
environment: joi_1.default.string().optional(),
appName: joi_1.default.string().required(),
instanceId: joi_1.default.string().empty(['', null]).default('default'),
bucket: joi_1.default
.object()
.required()
.keys({
start: joi_1.default.date().required(),
stop: joi_1.default.date().required(),
toggles: joi_1.default.object().pattern(/.*/, countSchema),
}),
});
exports.applicationSchema = joi_1.default
.object()
.options({ stripUnknown: false })
.keys({
appName: joi_1.default.string().required(),
sdkVersion: joi_1.default.string().optional(),
strategies: joi_1.default
.array()
.optional()
.items(joi_1.default.string(), joi_1.default.any().strip()),
description: joi_1.default.string().allow('').optional(),
url: joi_1.default.string().allow('').optional(),
color: joi_1.default.string().allow('').optional(),
icon: joi_1.default.string().allow('').optional(),
announced: joi_1.default.boolean().optional().default(false),
});
exports.clientRegisterSchema = joi_1.default
.object()
.options({ stripUnknown: true })
.keys({
appName: joi_1.default.string().required(),
instanceId: joi_1.default.string().empty(['', null]).default('default'),
sdkVersion: joi_1.default.string().optional(),
strategies: joi_1.default
.array()
.required()
.items(joi_1.default.string(), joi_1.default.any().strip()),
started: joi_1.default.date().required(),
interval: joi_1.default.number().required(),
environment: joi_1.default.string().optional(),
});
//# sourceMappingURL=schema.js.map