UNPKG

1.57 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var Ajv = require("ajv");
4var config_1 = require("./config");
5var platforms = ['facebook', 'telegram', 'twilio', 'wechat', 'slack', 'slack-command', 'sendbird', 'slack-event', "viber", 'telegram-callback', 'bot-framework'];
6var SchemaValidator = /** @class */ (function () {
7 function SchemaValidator(schema) {
8 this.schema = schema;
9 }
10 SchemaValidator.findOne = function (data) {
11 return new Promise(function (resolve, reject) {
12 var validator = new SchemaValidator(config_1.Config.schema);
13 Promise.all(platforms.map(function (platform) {
14 return validator.validate(platform, data);
15 })).then(function (results) {
16 var index = results.indexOf(true);
17 if (results.indexOf(true) >= 0) {
18 resolve(platforms[index].replace(/-callback/, ""));
19 }
20 else {
21 resolve("web");
22 }
23 });
24 });
25 };
26 SchemaValidator.prototype.validate = function (platform, data) {
27 var _this = this;
28 return new Promise(function (resolve, reject) {
29 resolve(_this.validateSchema(_this.schema[platform], data));
30 });
31 };
32 SchemaValidator.prototype.validateSchema = function (schema, data) {
33 var ajv = new Ajv();
34 var validate = ajv.compile(schema);
35 return validate(data);
36 };
37 return SchemaValidator;
38}());
39exports.SchemaValidator = SchemaValidator;