loopback4-cloudfront
Version:
A loopback4 extension for AWS Cloudfront integration
38 lines (32 loc) • 1.02 kB
text/typescript
import {
Component,
config,
ContextTags,
injectable,
ProviderMap,
} from '@loopback/core';
import {CloudFrontBindings} from './keys';
import {CloudFrontProvider, CloudFrontSignerProvider} from './providers';
export interface CloudFrontComponentOptions {
enableCloudFront?: boolean;
enableCloudFrontSigner?: boolean;
}
export const DEFAULT_CLOUD_FRONT_OPTIONS: CloudFrontComponentOptions = {
enableCloudFront: true,
enableCloudFrontSigner: false,
};
({tags: {[ContextTags.KEY]: CloudFrontBindings.COMPONENT}})
export class CloudFrontComponent implements Component {
providers: ProviderMap = {};
constructor(
()
cloudfrontConfig: CloudFrontComponentOptions = DEFAULT_CLOUD_FRONT_OPTIONS,
) {
if (cloudfrontConfig.enableCloudFront) {
this.providers[CloudFrontBindings.CLOUD_FRONT.key] = CloudFrontProvider;
}
if (cloudfrontConfig.enableCloudFrontSigner) {
this.providers[CloudFrontBindings.SIGNER.key] = CloudFrontSignerProvider;
}
}
}