@infrascan/aws-s3-scanner
Version:
Infrascan scanner definition for AWS S3
81 lines (79 loc) • 2.51 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/middleware.ts
var middleware_exports = {};
__export(middleware_exports, {
mapNotFoundErrorToEmptyResponse: () => mapNotFoundErrorToEmptyResponse,
registerMiddleware: () => registerMiddleware
});
module.exports = __toCommonJS(middleware_exports);
var import_client_s3 = require("@aws-sdk/client-s3");
function isRichError(err) {
return err.Code != null;
}
function mapNotFoundErrorToEmptyResponse(context, err) {
const isRichS3Err = err instanceof import_client_s3.S3ServiceException && isRichError(err);
if (!isRichS3Err) {
return void 0;
}
if (context.commandName === "GetBucketTaggingCommand" && err.Code === "NoSuchTagSet") {
return {
output: {
$metadata: {},
TagSet: []
},
response: err
};
}
if (context.commandName === "GetBucketWebsiteCommand" && err.Code === "NoSuchWebsiteConfiguration") {
return {
output: {
$metadata: {}
},
response: err
};
}
return void 0;
}
function ignoreS3ConfigNotFoundMiddleware(next, context) {
return async function mapNotFoundErrors(args) {
try {
return await next(args);
} catch (err) {
const mappedResponse = mapNotFoundErrorToEmptyResponse(context, err);
if (mappedResponse != null) {
return mappedResponse;
}
throw err;
}
};
}
function registerMiddleware(client) {
client.middlewareStack.add(ignoreS3ConfigNotFoundMiddleware, {
step: "finalizeRequest",
name: "ignoreS3ConfigNotFoundErrors",
tags: ["ErrorHandling"],
priority: "high"
});
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
mapNotFoundErrorToEmptyResponse,
registerMiddleware
});
;