@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
28 lines (20 loc) • 1.17 kB
text/typescript
import { angular2react } from 'angular2react';
import React from 'react';
import { ReactInject } from '@spinnaker/core';
import { IScalingPolicySummaryProps } from 'amazon/serverGroup/details/scalingPolicy/ScalingPolicySummary';
import { scalingPolicyDetailsSummary } from 'amazon/serverGroup/details/scalingPolicy/detailsSummary.component';
import IInjectorService = angular.auto.IInjectorService;
// prettier-ignore
export class AwsNgReactInjector extends ReactInject {
public $injectorProxy = {} as IInjectorService;
// Reactified components
public ScalingPolicySummary: React.ComponentClass<IScalingPolicySummaryProps> = angular2react('scalingPolicySummary', scalingPolicyDetailsSummary, this.$injectorProxy) as any;
public initialize($injector: IInjectorService) {
const realInjector: { [key: string]: Function } = $injector as any;
const proxyInjector: { [key: string]: Function } = this.$injectorProxy as any;
Object.keys($injector)
.filter(key => typeof realInjector[key] === 'function')
.forEach(key => proxyInjector[key] = realInjector[key].bind(realInjector));
}
}
export const AwsNgReact = new AwsNgReactInjector();