elearning/Frontend-Learner/node_modules/@mapbox/node-pre-gyp/lib/mock/s3.js
2026-01-13 10:48:02 +07:00

44 lines
1.1 KiB
JavaScript

'use strict';
module.exports = exports = s3_mock;
const AWSMock = require('mock-aws-s3');
const os = require('os');
const log = require('../util/log.js');
log.heading = 'node-pre-gyp'; // differentiate node-pre-gyp's logs from npm's
function s3_mock() {
log.warn('mocking s3 operations');
AWSMock.config.basePath = `${os.tmpdir()}/mock`;
const s3 = AWSMock.S3();
// wrapped callback maker. fs calls return code of ENOENT but AWS.S3 returns
// NotFound.
const wcb = (fn) => (err, ...args) => {
if (err && err.code === 'ENOENT') {
err.code = 'NotFound';
}
return fn(err, ...args);
};
return {
listObjects(params, callback) {
return s3.listObjects(params, wcb(callback));
},
headObject(params, callback) {
return s3.headObject(params, wcb(callback));
},
deleteObject(params, callback) {
return s3.deleteObject(params, wcb(callback));
},
putObject(params, callback) {
return s3.putObject(params, wcb(callback));
},
getObject(params, callback) {
return s3.getObject(params, wcb(callback));
}
};
}