Small refactoring

master
Paul Loyd 2017-11-09 14:56:26 +03:00
parent cbb64206d2
commit 16632df5ed
6 changed files with 9 additions and 15 deletions

View File

@ -134,11 +134,11 @@ class Collector {
if (value instanceof Command) {
switch (value.name) {
case 'declare':
scope.addDeclaration(value.data[0], value.data[1]);
scope.addDeclaration(...value.data);
break;
case 'define':
scope.addDefinition(value.data[0], value.data[1]);
scope.addDefinition(...value.data);
this.schemas.push(value.data[0]);
break;
@ -147,7 +147,7 @@ class Collector {
break;
case 'provide':
scope.addExport(value.data[0], value.data[1]);
scope.addExport(...value.data);
break;
case 'query':

View File

@ -13,7 +13,7 @@ class Command {
return new Command('external', external);
}
static provide(name, reference) {
static provide(name, reference = name) {
return new Command('provide', [name, reference]);
}

View File

@ -364,7 +364,7 @@ const declaration = {
const reference = yield node.declaration;
if (reference) {
yield provide(reference, reference);
yield provide(reference);
}
},

View File

@ -48,7 +48,7 @@ class Scope {
});
}
addDefinition(schema, declared = true) {
addDefinition(schema, declared) {
if (declared) {
assert.equal((this.entries.get(schema.name) || {}).type, 'declaration');
} else {

View File

@ -3,19 +3,16 @@ type A = string;
type Type = {
a: A,
b: A[],
c: A<number>,
};
interface Interface {
a: A;
b: A[];
c: A<number>;
}
class Class {
a: A;
b: A[];
c: A<number>;
}
export {Type, Interface, Class};

View File

@ -11,8 +11,7 @@
"namespace": "references",
"fields": [
{"name": "a", "type": "A"},
{"name": "b", "type": {"type": "array", "items": "A"}},
{"name": "c", "type": "A"}
{"name": "b", "type": {"type": "array", "items": "A"}}
]
},
{
@ -21,8 +20,7 @@
"namespace": "references",
"fields": [
{"name": "a", "type": "A"},
{"name": "b", "type": {"type": "array", "items": "A"}},
{"name": "c", "type": "A"}
{"name": "b", "type": {"type": "array", "items": "A"}}
]
},
{
@ -31,8 +29,7 @@
"namespace": "references",
"fields": [
{"name": "a", "type": "A"},
{"name": "b", "type": {"type": "array", "items": "A"}},
{"name": "c", "type": "A"}
{"name": "b", "type": {"type": "array", "items": "A"}}
]
}
],