##// END OF EJS Templates
working on multi-platform support
working on multi-platform support

File last commit:

r44:7a410676c874 di-typescript
r48:2ef1241803ee di-typescript
Show More
AggregateDescriptor.ts
37 lines | 967 B | video/mp2t | TypeScriptLexer
/ src / ts / di / AggregateDescriptor.ts
cin
tests
r41 import { Descriptor, isDescriptor } from "./interfaces";
cin
ported IoC container to typescript...
r34 import { ActivationContext } from "./ActivationContext";
cin
fixes, tests...
r44 import { isPrimitive } from "../safe";
cin
ported IoC container to typescript...
r34
cin
ts code cleanup, linting
r39 export class AggregateDescriptor implements Descriptor {
_value: object;
cin
ported IoC container to typescript...
r34
cin
ts code cleanup, linting
r39 constructor(value: object) {
this._value = value;
cin
ported IoC container to typescript...
r34 }
cin
tests
r41 activate(context: ActivationContext) {
return this._parse(this._value, context, "$value");
cin
ported IoC container to typescript...
r34 }
cin
tests
r41 // TODO: make async
_parse(value, context: ActivationContext, path: string) {
if (isPrimitive(value))
return value;
if (isDescriptor(value))
return context.activate(value, path);
if (value instanceof Array)
return value.map((x, i) => this._parse(x, context, `${path}[${i}]`));
const t = {};
for (const p of Object.keys(value))
t[p] = this._parse(value[p], context, `${path}.${p}`);
return t;
cin
ported IoC container to typescript...
r34 }
cin
tests
r41
toString() {
return "@walk";
cin
ported IoC container to typescript...
r34 }
}