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;
}