@financialforcedev/orizuru
Version:
Streamlined communication between Heroku dynos / other worker processes
54 lines • 7.14 kB
JavaScript
;
/*
* Copyright (c) 2017-2019, FinancialForce.com, inc
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the FinancialForce.com, inc nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @module validator/publishFunction
*/
const lodash_1 = require("lodash");
const schema_1 = require("./shared/schema");
/**
* Validates {@link Publisher} function options.
*/
class PublishFunctionValidator {
/**
* Validate the publish function options.
* @param options The publish function options to validate.
*/
validate(options) {
if (!options) {
throw new Error('Missing required object parameter.');
}
if (!lodash_1.isPlainObject(options)) {
throw new Error(`Invalid parameter: ${options} is not an object.`);
}
// Validate the schema
options.schema = new schema_1.SchemaValidator().validate(options.schema);
return options;
}
}
exports.PublishFunctionValidator = PublishFunctionValidator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaEZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2luZGV4L3ZhbGlkYXRvci9wdWJsaXNoRnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7O0FBRUg7O0dBRUc7QUFFSCxtQ0FBdUM7QUFJdkMsNENBQWtEO0FBVWxEOztHQUVHO0FBQ0gsTUFBYSx3QkFBd0I7SUFFcEM7OztPQUdHO0lBQ0ksUUFBUSxDQUF1RCxPQUF1QztRQUU1RyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLHNCQUFhLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsT0FBTyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsc0JBQXNCO1FBQ3RCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSx3QkFBZSxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoRSxPQUFPLE9BQWdELENBQUM7SUFFekQsQ0FBQztDQUVEO0FBdkJELDREQXVCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSwgRmluYW5jaWFsRm9yY2UuY29tLCBpbmNcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbixcbiAqICAgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuICpcbiAqIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICogICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICogLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsXG4gKiAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAqICAgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG4gKiAtIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEZpbmFuY2lhbEZvcmNlLmNvbSwgaW5jIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9yc1xuICogICAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dFxuICogICAgICBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uXG4gKlxuICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCIgQU5EXG4gKiAgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFU1xuICogIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMXG4gKiAgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsXG4gKiAgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTXG4gKiAgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZXG4gKiAgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpXG4gKiAgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlIHZhbGlkYXRvci9wdWJsaXNoRnVuY3Rpb25cbiAqL1xuXG5pbXBvcnQgeyBpc1BsYWluT2JqZWN0IH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQXZyb1NjaGVtYSwgT3B0aW9ucyB9IGZyb20gJy4uLy4uJztcblxuaW1wb3J0IHsgU2NoZW1hVmFsaWRhdG9yIH0gZnJvbSAnLi9zaGFyZWQvc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0ZWRQdWJsaXNoRnVuY3Rpb25PcHRpb25zPEMgZXh0ZW5kcyBPcml6dXJ1LkNvbnRleHQsIE0gZXh0ZW5kcyBPcml6dXJ1Lk1lc3NhZ2U+IGV4dGVuZHMgT3B0aW9ucy5JUHVibGlzaEZ1bmN0aW9uPEMsIE0+IHtcblxuXHQvKipcblx0ICogVGhlIFtBcGFjaGUgQXZyb10oaHR0cHM6Ly9hdnJvLmFwYWNoZS5vcmcvZG9jcy9jdXJyZW50Lykgc2NoZW1hLlxuXHQgKi9cblx0c2NoZW1hOiBBdnJvU2NoZW1hO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB7QGxpbmsgUHVibGlzaGVyfSBmdW5jdGlvbiBvcHRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgUHVibGlzaEZ1bmN0aW9uVmFsaWRhdG9yIHtcblxuXHQvKipcblx0ICogVmFsaWRhdGUgdGhlIHB1Ymxpc2ggZnVuY3Rpb24gb3B0aW9ucy5cblx0ICogQHBhcmFtIG9wdGlvbnMgVGhlIHB1Ymxpc2ggZnVuY3Rpb24gb3B0aW9ucyB0byB2YWxpZGF0ZS5cblx0ICovXG5cdHB1YmxpYyB2YWxpZGF0ZTxDIGV4dGVuZHMgT3JpenVydS5Db250ZXh0LCBNIGV4dGVuZHMgT3JpenVydS5NZXNzYWdlPihvcHRpb25zOiBPcHRpb25zLklQdWJsaXNoRnVuY3Rpb248QywgTT4pIHtcblxuXHRcdGlmICghb3B0aW9ucykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmVkIG9iamVjdCBwYXJhbWV0ZXIuJyk7XG5cdFx0fVxuXG5cdFx0aWYgKCFpc1BsYWluT2JqZWN0KG9wdGlvbnMpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW1ldGVyOiAke29wdGlvbnN9IGlzIG5vdCBhbiBvYmplY3QuYCk7XG5cdFx0fVxuXG5cdFx0Ly8gVmFsaWRhdGUgdGhlIHNjaGVtYVxuXHRcdG9wdGlvbnMuc2NoZW1hID0gbmV3IFNjaGVtYVZhbGlkYXRvcigpLnZhbGlkYXRlKG9wdGlvbnMuc2NoZW1hKTtcblxuXHRcdHJldHVybiBvcHRpb25zIGFzIFZhbGlkYXRlZFB1Ymxpc2hGdW5jdGlvbk9wdGlvbnM8QywgTT47XG5cblx0fVxuXG59XG4iXX0=