feat(cli/doc): use type definitions "deno doc" if available (#8459)

This commit adds support for type definitions in "deno doc";
with this change "deno doc" is able to leverage the same directives
as TS compiler.

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
This commit is contained in:
Liam Murphy 2021-02-26 02:24:05 +11:00 committed by GitHub
parent 687ff2ab14
commit cdae4423c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 232 additions and 132 deletions

View file

@ -0,0 +1,6 @@
Download http://127.0.0.1:4545/xTypeScriptTypes.js
Download http://127.0.0.1:4545/xTypeScriptTypes.d.ts
Defined in http://127.0.0.1:4545/xTypeScriptTypes.d.ts:1:0
const foo: "foo"

View file

@ -0,0 +1 @@
export * from "http://127.0.0.1:4545/xTypeScriptTypes.js";

View file

@ -0,0 +1,5 @@
Defined in [WILDCARD]/type_definitions/foo.d.ts:2:0
const foo: string
An exported value.

View file

@ -0,0 +1,2 @@
// @deno-types="../type_definitions/foo.d.ts"
export * from "../type_definitions/foo.js";

View file

@ -0,0 +1,2 @@
/// <reference types="../type_definitions/foo.d.ts" />
export const foo = "foo";

View file

@ -0,0 +1,5 @@
Defined in [WILDCARD]/type_definitions/foo.d.ts:2:0
const foo: string
An exported value.

View file

@ -3669,20 +3669,10 @@ console.log("finish");
exit_code: 0,
});
itest!(deno_doc_builtin {
args: "doc",
output: "deno_doc_builtin.out",
});
itest!(deno_doc {
args: "doc deno_doc.ts",
output: "deno_doc.out",
});
itest!(deno_doc_import_map {
args:
"doc --unstable --import-map=doc/import_map.json doc/use_import_map.js",
output: "doc/use_import_map.out",
itest!(deno_doc_types_header_direct {
args: "doc --reload http://127.0.0.1:4545/xTypeScriptTypes.js",
output: "doc/types_header.out",
http_server: true,
});
itest!(import_data_url_error_stack {
@ -3945,6 +3935,42 @@ console.log("finish");
assert_eq!(output.stderr, b"");
}
mod doc {
use super::*;
itest!(deno_doc_builtin {
args: "doc",
output: "deno_doc_builtin.out",
});
itest!(deno_doc {
args: "doc deno_doc.ts",
output: "deno_doc.out",
});
itest!(deno_doc_import_map {
args:
"doc --unstable --import-map=doc/import_map.json doc/use_import_map.js",
output: "doc/use_import_map.out",
});
itest!(deno_doc_types_hint {
args: "doc doc/types_hint.ts",
output: "doc/types_hint.out",
});
itest!(deno_doc_types_ref {
args: "doc doc/types_ref.js",
output: "doc/types_ref.out",
});
itest!(deno_doc_types_header {
args: "doc --reload doc/types_header.ts",
output: "doc/types_header.out",
http_server: true,
});
}
mod coverage {
use super::*;