UNPKG

@financialforcedev/orizuru

Version:

Streamlined communication between Heroku dynos / other worker processes

54 lines 7.14 kB
"use strict"; /* * 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=