function resolveWithMetadata()

in apps/mountebank-mock/mountebank-source/src/models/protocols.js [111:143]


            function resolveWithMetadata (possibleJSON) {
                let metadata = {};

                try {
                    metadata = JSON.parse(possibleJSON);
                }
                catch (error) { /* do nothing */ }

                let serverPort = creationRequest.port;
                if (metadata.port) {
                    serverPort = metadata.port;
                    delete metadata.port;
                }
                const callbackURL = options.callbackURLTemplate.replace(':port', serverPort),
                    encoding = metadata.encoding || 'utf8',
                    stubs = impostersRepository.stubsFor(serverPort),
                    resolver = responseResolver.create(stubs, undefined, callbackURL);

                delete metadata.encoding;

                resolve({
                    port: serverPort,
                    metadata: metadata,
                    stubs,
                    resolver,
                    encoding,
                    close: callback => {
                        closeCalled = true;
                        imposterProcess.once('exit', callback);
                        imposterProcess.kill();
                    }
                });
            }