async function saveStubMetaAndResponses()

in apps/mountebank-mock/mountebank-source/src/models/filesystemBackedImpostersRepository.js [318:348]


    async function saveStubMetaAndResponses (stub, baseDir) {
        const stubDefinition = {
                meta: { dir: `stubs/${filenameFor(new Date())}` }
            },
            meta = {
                responseFiles: [],
                orderWithRepeats: [],
                nextIndex: 0
            },
            responses = stub.responses || [],
            writes = [];

        if (stub.predicates) {
            stubDefinition.predicates = stub.predicates;
        }

        for (let i = 0; i < responses.length; i += 1) {
            const responseFile = `responses/${filenameFor(new Date())}.json`;
            meta.responseFiles.push(responseFile);

            for (let repeats = 0; repeats < repeatsFor(responses[i]); repeats += 1) {
                meta.orderWithRepeats.push(i);
            }

            writes.push(writeFile(`${baseDir}/${stubDefinition.meta.dir}/${responseFile}`, responses[i]));
        }

        writes.push(writeFile(`${baseDir}/${stubDefinition.meta.dir}/meta.json`, meta));
        await Promise.all(writes);
        return stubDefinition;
    }