本文整理汇总了TypeScript中core/application.Application.getDataSource方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Application.getDataSource方法的具体用法?TypeScript Application.getDataSource怎么用?TypeScript Application.getDataSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类core/application.Application
的用法示例。
在下文中一共展示了Application.getDataSource方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1:
return app.ready().then(() => {
for (const serverGroup of app.getDataSource('serverGroups').data as IServerGroup[]) {
if (
serverGroup.cloudProvider === cloudProvider &&
(serverGroup.instances || []).some(instance => instance.id === instanceId)
) {
return this.mapAccountToSkin(serverGroup.account);
}
}
for (const loadBalancer of app.getDataSource('loadBalancers').data as ILoadBalancer[]) {
if (loadBalancer.cloudProvider === cloudProvider) {
if ((loadBalancer.instances || []).some(instance => instance.id === instanceId)) {
return this.mapAccountToSkin(loadBalancer.account);
}
// Hit a crazy Babel bug - can't return from a nested for...of loop.
for (let i = 0; i < (loadBalancer.serverGroups || []).length; i++) {
const serverGroup = loadBalancer.serverGroups[i];
if (
serverGroup.isDisabled &&
(serverGroup.instances || []).some(instance => instance.id === instanceId)
) {
return this.mapAccountToSkin(loadBalancer.account);
}
}
}
}
return null;
});
示例2:
return app.ready().then(() => {
const serverGroups = app.getDataSource('serverGroups').data as IServerGroup[];
const loadBalancers = app.getDataSource('loadBalancers').data as ILoadBalancer[];
const loadBalancerServerGroups = loadBalancers.map(lb => lb.serverGroups).reduce((acc, sg) => acc.concat(sg), []);
const hasInstance = (obj: IServerGroup | ILoadBalancer) => {
return obj.cloudProvider === cloudProvider && (obj.instances || []).some(instance => instance.id === instanceId);
};
const all: (IServerGroup | ILoadBalancer)[] = [].concat(serverGroups).concat(loadBalancers).concat(loadBalancerServerGroups);
const found = all.find(hasInstance);
return found && found.account;
});
示例3:
const loadBalancers = serverGroup.loadBalancers.map((lbName: string) => {
const match = application.getDataSource('loadBalancers')
.data
.find((lb: ILoadBalancer): boolean => {
return lb.name === lbName
&& lb.account === serverGroup.account
&& (lb.region === serverGroup.region || lb.region === 'global');
});
return this.buildLoadBalancer(match, serverGroup);
});
示例4: populateLoadBalancers
public static populateLoadBalancers(application: Application, serverGroup: IServerGroup): IPromise<ILoadBalancer[]> {
return application.getDataSource('loadBalancers').ready().then(() => {
const loadBalancers = serverGroup.loadBalancers.map((lbName: string) => {
const match = application.getDataSource('loadBalancers')
.data
.find((lb: ILoadBalancer): boolean => {
return lb.name === lbName
&& lb.account === serverGroup.account
&& (lb.region === serverGroup.region || lb.region === 'global');
});
return this.buildLoadBalancer(match, serverGroup);
});
return loadBalancers.filter(x => !!x);
});
}
示例5: it
it('creates separate template options for each account and region of a cluster', () => {
application = ApplicationModelBuilder.createApplicationForTests('app', { key: 'serverGroups', lazy: true });
application.getDataSource('serverGroups').data = [
{
name: 'sg1',
cluster: 'cluster1',
account: 'test',
region: 'us-east-1',
cloudProvider: 'aws',
category: 'serverGroup',
},
{
name: 'sg2',
cluster: 'cluster1',
account: 'prod',
region: 'us-east-1',
cloudProvider: 'aws',
category: 'serverGroup',
},
{
name: 'sg2',
cluster: 'cluster1',
account: 'prod',
region: 'us-east-1',
cloudProvider: 'aws',
category: 'serverGroup',
},
];
initialize();
const templates = ctrl.templates;
expect(templates.length).toBe(3);
// first template is always "None"
expect(templates[0].label).toBe('None');
expect(templates[1].cluster).toBe('cluster1');
expect(templates[1].cluster).toBe('cluster1');
expect(templates[2].cluster).toBe('cluster1');
});