Extract pragmas from comment blocks too
parent
bdf2cb227e
commit
58243998cb
|
@ -38,7 +38,7 @@ const handlers = {
|
|||
return null;
|
||||
}
|
||||
|
||||
let type = node.leadingComments && getLastPragma(node.leadingComments);
|
||||
let type = node.leadingComments && extractLastPragma(node.leadingComments);
|
||||
|
||||
return {
|
||||
name: extract(node.key),
|
||||
|
@ -74,7 +74,7 @@ const handlers = {
|
|||
let type = null;
|
||||
|
||||
if (node.leadingComments) {
|
||||
type = getLastPragma(node.leadingComments);
|
||||
type = extractLastPragma(node.leadingComments);
|
||||
}
|
||||
|
||||
if (!type) {
|
||||
|
@ -183,19 +183,11 @@ const handlers = {
|
|||
},
|
||||
|
||||
CommentLine(node) {
|
||||
const marker = '$avro ';
|
||||
return extractPragma(node.value);
|
||||
},
|
||||
|
||||
const value = node.value.trimLeft();
|
||||
|
||||
if (value.startsWith(marker)) {
|
||||
const pragma = value.slice(marker.length).trim();
|
||||
|
||||
assert(isValidPragma(pragma));
|
||||
|
||||
return pragma;
|
||||
}
|
||||
|
||||
return null;
|
||||
CommentBlock(node) {
|
||||
return extractPragma(node.value);
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -217,7 +209,7 @@ function isValidPragma(pragma) {
|
|||
}
|
||||
}
|
||||
|
||||
function getLastPragma(comments) {
|
||||
function extractLastPragma(comments) {
|
||||
const pragmas = comments
|
||||
.map(extract)
|
||||
.filter(Boolean);
|
||||
|
@ -225,6 +217,22 @@ function getLastPragma(comments) {
|
|||
return pragmas.length > 0 ? pragmas[pragmas.length - 1] : null;
|
||||
}
|
||||
|
||||
function extractPragma(text) {
|
||||
const marker = '$avro ';
|
||||
|
||||
const value = text.trimLeft();
|
||||
|
||||
if (value.startsWith(marker)) {
|
||||
const pragma = value.slice(marker.length).trim();
|
||||
|
||||
assert(isValidPragma(pragma));
|
||||
|
||||
return pragma;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function isEnumSymbol(node) {
|
||||
return node.type === 'StringLiteralTypeAnnotation';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue