Now schemas is represented as array
parent
b836d2ef8c
commit
8cbfcdcdec
|
@ -11,7 +11,7 @@ const {log} = require('./utils');
|
|||
class Collector {
|
||||
constructor(parser) {
|
||||
this.parser = parser;
|
||||
this.schemas = Object.create(null); // TODO: use `Map`.
|
||||
this.schemas = [];
|
||||
this.scope = null;
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ class Collector {
|
|||
case 'provide':
|
||||
assert(this.scope);
|
||||
this.scope.addSchema(value.data);
|
||||
this.schemas[value.data.name] = value.data;
|
||||
this.schemas.push(value.data);
|
||||
break;
|
||||
case 'query':
|
||||
const schema = this.scope.query(value.data);
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
class Scope {
|
||||
constructor(parent) {
|
||||
this.parent = parent;
|
||||
this.schemas = new Map;
|
||||
this.externals = new Map;
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
addSchema(schema) {
|
||||
|
|
|
@ -11,8 +11,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [{
|
||||
|
@ -20,7 +20,7 @@ class Class {
|
|||
type: {type: 'array', items: 'double'},
|
||||
}],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [{
|
||||
|
@ -28,7 +28,7 @@ class Class {
|
|||
type: {type: 'array', items: 'double'},
|
||||
}],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [{
|
||||
|
@ -36,4 +36,4 @@ class Class {
|
|||
type: {type: 'array', items: 'double'},
|
||||
}],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -11,8 +11,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [{
|
||||
|
@ -20,7 +20,7 @@ class Class {
|
|||
type: {type: 'enum', symbols: ['one', 'two']},
|
||||
}],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [{
|
||||
|
@ -28,7 +28,7 @@ class Class {
|
|||
type: {type: 'enum', symbols: ['one', 'two']},
|
||||
}],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [{
|
||||
|
@ -36,4 +36,4 @@ class Class {
|
|||
type: {type: 'enum', symbols: ['one', 'two']},
|
||||
}],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -7,15 +7,15 @@ interface Interface {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'map',
|
||||
name: 'Type',
|
||||
values: 'double',
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'map',
|
||||
name: 'Interface',
|
||||
values: 'double',
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -38,8 +38,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [
|
||||
|
@ -50,7 +50,7 @@ class Class {
|
|||
{name: 'e', type: {type: 'fixed', size: 10}},
|
||||
],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [
|
||||
|
@ -61,7 +61,7 @@ class Class {
|
|||
{name: 'e', type: {type: 'fixed', size: 10}},
|
||||
],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [
|
||||
|
@ -72,4 +72,4 @@ class Class {
|
|||
{name: 'e', type: {type: 'fixed', size: 10}},
|
||||
],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -23,8 +23,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [
|
||||
|
@ -35,7 +35,7 @@ class Class {
|
|||
{name: 'e', type: 'bytes'},
|
||||
],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [
|
||||
|
@ -46,7 +46,7 @@ class Class {
|
|||
{name: 'e', type: 'bytes'},
|
||||
],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [
|
||||
|
@ -57,4 +57,4 @@ class Class {
|
|||
{name: 'e', type: 'bytes'},
|
||||
],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -19,12 +19,12 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
A: {
|
||||
[
|
||||
{
|
||||
type: 'string',
|
||||
name: 'A',
|
||||
},
|
||||
Type: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [
|
||||
|
@ -33,7 +33,7 @@ class Class {
|
|||
{name: 'c', type: 'A'},
|
||||
],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [
|
||||
|
@ -42,7 +42,7 @@ class Class {
|
|||
{name: 'c', type: 'A'},
|
||||
],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [
|
||||
|
@ -51,4 +51,4 @@ class Class {
|
|||
{name: 'c', type: 'A'},
|
||||
],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -25,8 +25,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [
|
||||
|
@ -34,7 +34,7 @@ class Class {
|
|||
{name: 'b', type: 'double'},
|
||||
],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [
|
||||
|
@ -42,7 +42,7 @@ class Class {
|
|||
{name: 'b', type: 'double'},
|
||||
],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [
|
||||
|
@ -50,4 +50,4 @@ class Class {
|
|||
{name: 'b', type: 'double'},
|
||||
],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -14,8 +14,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [{
|
||||
|
@ -26,7 +26,7 @@ class Class {
|
|||
type: ['null', 'string'],
|
||||
}],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [{
|
||||
|
@ -37,7 +37,7 @@ class Class {
|
|||
type: ['null', 'string'],
|
||||
}],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [{
|
||||
|
@ -48,4 +48,4 @@ class Class {
|
|||
type: ['null', 'string'],
|
||||
}],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -11,8 +11,8 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [{
|
||||
|
@ -23,7 +23,7 @@ class Class {
|
|||
],
|
||||
}],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [{
|
||||
|
@ -34,7 +34,7 @@ class Class {
|
|||
],
|
||||
}],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [{
|
||||
|
@ -45,4 +45,4 @@ class Class {
|
|||
],
|
||||
}],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
|
@ -11,20 +11,20 @@ class Class {
|
|||
}
|
||||
|
||||
// ###
|
||||
({
|
||||
Type: {
|
||||
[
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Type',
|
||||
fields: [{name: 'a', type: {type: 'enum', symbols: ['one']}}],
|
||||
},
|
||||
Interface: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Interface',
|
||||
fields: [{name: 'a', type: {type: 'enum', symbols: ['one']}}],
|
||||
},
|
||||
Class: {
|
||||
{
|
||||
type: 'record',
|
||||
name: 'Class',
|
||||
fields: [{name: 'a', type: {type: 'enum', symbols: ['one']}}],
|
||||
},
|
||||
});
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue