Skip to content

Commit 06fb082

Browse files
authored
Ensure params, returns, typeParameters, extends, implements are not undefined (#184)
Ensure params, returns, typeParameters, extends, implements are not undefined
1 parent 8b1d835 commit 06fb082

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

language/language-parser/rollup.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {fileURLToPath} from "url";
55
export default await Promise.all([
66
configureRollup({
77
packageDirectory: path.dirname(fileURLToPath(import.meta.url)),
8-
minify: true,
8+
minify: false,
99
}),
1010
configureRollup({
1111
packageDirectory: path.dirname(fileURLToPath(import.meta.url)),

language/language-parser/src/transformer/merge-returns.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ export default function mergeReturns(docReturns: Return[], metaReturns: Return[]
88
return docReturns || metaReturns;
99
}
1010

11-
// ASSUMPTION: docReturns & metaReturns have atleast one Return
12-
13-
docReturns[0].dataType = docReturns[0].dataType || metaReturns[0].dataType;
11+
if (docReturns[0]) {
12+
docReturns[0].dataType = docReturns[0].dataType || metaReturns[0].dataType;
13+
} else {
14+
docReturns[0] = metaReturns[0];
15+
}
1416

1517
return docReturns;
1618
}

language/language-parser/src/transformer/symbol-to-doc.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,9 @@ export default function symbolToDoc(symbol: Symbol): ?Doc {
295295

296296
// Infer everything we can from the metadata
297297
function infer(doc: any, meta: SymbolSignature) {
298-
doc.params = mergeParams(doc.params, meta.params);
299-
doc.returns = mergeReturns(doc.returns, meta.returns);
300-
doc.extends = doc.extends || meta.extends;
301-
doc.implements = doc.implements || meta.implements;
302-
doc.typeParameters = doc.typeParameters || meta.typeParameters;
298+
doc.params = mergeParams(doc.params ?? [], meta.params);
299+
doc.returns = mergeReturns(doc.returns ?? [], meta.returns);
300+
doc.extends = doc.extends || meta.extends || [];
301+
doc.implements = doc.implements || meta.implements || [];
302+
doc.typeParameters = doc.typeParameters || meta.typeParameters || [];
303303
}

language/language-parser/test/parse-ts.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,4 +313,27 @@ describe("@webdoc/parser.parse (Typescript)", function() {
313313
expect(parentClass.members.filter(div).length).to.equal(1);
314314
expect(childClass.members.filter(div)[0].overrides).to.not.equal(undefined);
315315
});
316+
317+
it.only("should cast property to @method properly", async () => {
318+
await parse([{
319+
content: `
320+
/** DO */
321+
class DisplayObject {
322+
public displayObjectUpdateTransform: () => void;
323+
}
324+
325+
/**
326+
* Here
327+
*
328+
* @method DisplayObject#displayObjectUpdateTransform
329+
*/
330+
DisplayObject.prototype.displayObjectUpdateTransform =
331+
DisplayObject.prototype.updateTransform;
332+
333+
/** Container */
334+
class Container extends DisplayObject {}
335+
`,
336+
path: "*.ts",
337+
}]);
338+
});
316339
});

0 commit comments

Comments
 (0)