@typespec/tspd 0.71.0-dev.0 → 0.71.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli.js +6 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/ref-doc/api-extractor.d.ts +5 -0
- package/dist/src/ref-doc/api-extractor.d.ts.map +1 -0
- package/dist/src/ref-doc/api-extractor.js +69 -0
- package/dist/src/ref-doc/api-extractor.js.map +1 -0
- package/dist/src/ref-doc/components/diagnosable-typekit-function.d.ts +7 -0
- package/dist/src/ref-doc/components/diagnosable-typekit-function.d.ts.map +1 -0
- package/dist/src/ref-doc/components/diagnosable-typekit-function.js +75 -0
- package/dist/src/ref-doc/components/diagnosable-typekit-function.jsx +64 -0
- package/dist/src/ref-doc/components/diagnosable-typekit-function.jsx.map +1 -0
- package/dist/src/ref-doc/components/tsdoc.d.ts +18 -0
- package/dist/src/ref-doc/components/tsdoc.d.ts.map +1 -0
- package/dist/src/ref-doc/components/tsdoc.js +47 -0
- package/dist/src/ref-doc/components/tsdoc.jsx +32 -0
- package/dist/src/ref-doc/components/tsdoc.jsx.map +1 -0
- package/dist/src/ref-doc/components/typekit-function.d.ts +7 -0
- package/dist/src/ref-doc/components/typekit-function.d.ts.map +1 -0
- package/dist/src/ref-doc/components/typekit-function.js +38 -0
- package/dist/src/ref-doc/components/typekit-function.jsx +26 -0
- package/dist/src/ref-doc/components/typekit-function.jsx.map +1 -0
- package/dist/src/ref-doc/components/typekit-section.d.ts +7 -0
- package/dist/src/ref-doc/components/typekit-section.d.ts.map +1 -0
- package/dist/src/ref-doc/components/typekit-section.js +30 -0
- package/dist/src/ref-doc/components/typekit-section.jsx +13 -0
- package/dist/src/ref-doc/components/typekit-section.jsx.map +1 -0
- package/dist/src/ref-doc/components/typekits-file.d.ts +3 -0
- package/dist/src/ref-doc/components/typekits-file.d.ts.map +1 -0
- package/dist/src/ref-doc/components/typekits-file.js +58 -0
- package/dist/src/ref-doc/components/typekits-file.jsx +50 -0
- package/dist/src/ref-doc/components/typekits-file.jsx.map +1 -0
- package/dist/src/ref-doc/experimental.d.ts +1 -0
- package/dist/src/ref-doc/experimental.d.ts.map +1 -1
- package/dist/src/ref-doc/experimental.js +10 -7
- package/dist/src/ref-doc/experimental.js.map +1 -1
- package/dist/src/ref-doc/index.d.ts +1 -0
- package/dist/src/ref-doc/index.d.ts.map +1 -1
- package/dist/src/ref-doc/index.js +2 -1
- package/dist/src/ref-doc/index.js.map +1 -1
- package/dist/src/ref-doc/typekit-docs.d.ts +50 -0
- package/dist/src/ref-doc/typekit-docs.d.ts.map +1 -0
- package/dist/src/ref-doc/typekit-docs.js +99 -0
- package/dist/src/ref-doc/typekit-docs.js.map +1 -0
- package/dist/src/ref-doc/utils/misc.d.ts +3 -0
- package/dist/src/ref-doc/utils/misc.d.ts.map +1 -0
- package/dist/src/ref-doc/utils/misc.js +6 -0
- package/dist/src/ref-doc/utils/misc.js.map +1 -0
- package/package.json +8 -4
package/dist/src/cli.js
CHANGED
|
@@ -52,15 +52,19 @@ async function main() {
|
|
|
52
52
|
demandOption: true
|
|
53
53
|
}).option("output-dir", {
|
|
54
54
|
type: "string"
|
|
55
|
-
}).
|
|
55
|
+
}).option("skip-js", {
|
|
56
56
|
description: "Skip generating JS API docs.",
|
|
57
57
|
type: "boolean"
|
|
58
|
+
}).option("typekits", {
|
|
59
|
+
description: "Generate typekit docs. Currently targeted for use with Astro Starlight.",
|
|
60
|
+
type: "boolean"
|
|
58
61
|
});
|
|
59
62
|
}, async args => {
|
|
60
63
|
const resolvedRoot = resolvePath(process.cwd(), args.entrypoint);
|
|
61
64
|
const host = NodeHost;
|
|
62
65
|
const diagnostics = await generateLibraryDocs(resolvedRoot, args["output-dir"] ?? resolvePath(resolvedRoot, "docs"), {
|
|
63
|
-
skipJSApi: args["skip-js"]
|
|
66
|
+
skipJSApi: args["skip-js"],
|
|
67
|
+
typekits: args["typekits"]
|
|
64
68
|
});
|
|
65
69
|
// const diagnostics = await generateExternSignatures(host, resolvedRoot);
|
|
66
70
|
if (diagnostics.length > 0) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,IAAI,CAAC;IACH,6DAA6D;IAC7D,aAAa;IACb,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;AACjD,CAAC;AAAC,MAAM,CAAC;IACP,+BAA+B;AACjC,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAqB;IACnD,MAAM,GAAG,GACP,IAAI,KAAK,OAAO;QACd,CAAC,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,GAAG,CACD,sEAAsE,EAAE,CAAC,IAAI,CAC3E,UAAU,CACX,oBAAoB,CACtB,CAAC;IACF,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAC5E,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAE1C,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC/B,UAAU,CAAC,MAAM,CAAC;SAClB,IAAI,EAAE;SACN,MAAM,EAAE;SACR,mBAAmB,CAAC;QACnB,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,KAAK;KAC1B,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,0FAA0F;QAC5F,OAAO,EAAE,IAAI;KACd,CAAC;SACD,MAAM,CAAC,qBAAqB,EAAE;QAC7B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE,KAAK;KACf,CAAC;SACD,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAChC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CACN,kBAAkB,EAClB,gDAAgD,EAChD,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,GAAG;aACP,UAAU,CAAC,YAAY,EAAE;YACxB,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,MAAM,CAAC,YAAY,EAAE;YACpB,IAAI,EAAE,QAAQ;SACf,CAAC;aACD,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiModel } from "@microsoft/api-extractor-model";
|
|
2
|
+
import { type PackageJson } from "@typespec/compiler";
|
|
3
|
+
export declare function createApiModel(libraryPath: string, pkgJson: PackageJson): Promise<ApiModel | undefined>;
|
|
4
|
+
export declare function createApiModelFileForExport(libraryPath: string, pkgJson: PackageJson, exportName: string): string;
|
|
5
|
+
//# sourceMappingURL=api-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-extractor.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/api-extractor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjE,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iCAc7E;AA+BD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM,CAgCR"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Extractor, ExtractorConfig } from "@microsoft/api-extractor";
|
|
2
|
+
import { ApiModel } from "@microsoft/api-extractor-model";
|
|
3
|
+
import { TSDocConfigFile } from "@microsoft/tsdoc-config";
|
|
4
|
+
import { joinPaths } from "@typespec/compiler";
|
|
5
|
+
export async function createApiModel(libraryPath, pkgJson) {
|
|
6
|
+
const apiModel = new ApiModel();
|
|
7
|
+
const typekitexports = Object.keys(pkgJson.exports).filter(x => x.includes("typekit"));
|
|
8
|
+
if (typekitexports.length === 0) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
for (const exportName of [typekitexports[0]]) {
|
|
12
|
+
const modelFilePath = createApiModelFileForExport(libraryPath, pkgJson, exportName);
|
|
13
|
+
apiModel.loadPackage(joinPaths(modelFilePath));
|
|
14
|
+
}
|
|
15
|
+
return apiModel;
|
|
16
|
+
}
|
|
17
|
+
const knownConditions = ["import", "default"];
|
|
18
|
+
function resolveDefinitionFilePath(libraryPath, pkgJson, exportName) {
|
|
19
|
+
const obj = pkgJson.exports?.[exportName];
|
|
20
|
+
if (!obj) {
|
|
21
|
+
throw new Error(`Cannot resolve definition file path for export ${exportName}`);
|
|
22
|
+
}
|
|
23
|
+
if (typeof obj === "string") {
|
|
24
|
+
return joinPaths(libraryPath, obj).replace(/\.js$/, ".d.ts");
|
|
25
|
+
}
|
|
26
|
+
if (typeof obj === "object" && "types" in obj) {
|
|
27
|
+
return joinPaths(libraryPath, obj.types);
|
|
28
|
+
}
|
|
29
|
+
for (const condition of knownConditions) {
|
|
30
|
+
if (condition in obj) {
|
|
31
|
+
const conditionObj = obj[condition];
|
|
32
|
+
if (typeof conditionObj === "object" && "types" in conditionObj) {
|
|
33
|
+
return joinPaths(libraryPath, conditionObj.types).replace(/\.js$/, ".d.ts");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`Cannot resolve definition file path for export ${exportName}`);
|
|
38
|
+
}
|
|
39
|
+
export function createApiModelFileForExport(libraryPath, pkgJson, exportName) {
|
|
40
|
+
const entrypoint = resolveDefinitionFilePath(libraryPath, pkgJson, exportName);
|
|
41
|
+
const modelFilePath = joinPaths(libraryPath, "temp", `${exportName.slice(2)}.api.json`);
|
|
42
|
+
const config = ExtractorConfig.prepare({
|
|
43
|
+
configObject: {
|
|
44
|
+
mainEntryPointFilePath: entrypoint,
|
|
45
|
+
compiler: {
|
|
46
|
+
tsconfigFilePath: joinPaths(libraryPath, "tsconfig.json")
|
|
47
|
+
},
|
|
48
|
+
docModel: {
|
|
49
|
+
enabled: true,
|
|
50
|
+
apiJsonFilePath: modelFilePath
|
|
51
|
+
},
|
|
52
|
+
projectFolder: libraryPath
|
|
53
|
+
},
|
|
54
|
+
configObjectFullPath: undefined,
|
|
55
|
+
tsdocConfigFile: TSDocConfigFile.loadFromObject({
|
|
56
|
+
$schema: "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
|
|
57
|
+
tagDefinitions: [{
|
|
58
|
+
tagName: "@typekit",
|
|
59
|
+
syntaxKind: "block"
|
|
60
|
+
}]
|
|
61
|
+
}),
|
|
62
|
+
packageJsonFullPath: joinPaths(libraryPath, "package.json")
|
|
63
|
+
});
|
|
64
|
+
const extractorResult = Extractor.invoke(config);
|
|
65
|
+
if (!extractorResult.succeeded) {
|
|
66
|
+
throw new Error("API Extractor failed to generate the API model");
|
|
67
|
+
}
|
|
68
|
+
return modelFilePath;
|
|
69
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-extractor.js","sourceRoot":"","sources":["../../../src/ref-doc/api-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import { TypekitFunctionDoc } from "../typekit-docs.js";
|
|
3
|
+
export interface DiagnosableTypekitFunctionProps {
|
|
4
|
+
readonly typekit: TypekitFunctionDoc;
|
|
5
|
+
}
|
|
6
|
+
export declare function DiagnosableTypekitFunction(props: DiagnosableTypekitFunctionProps): ay.Children;
|
|
7
|
+
//# sourceMappingURL=diagnosable-typekit-function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosable-typekit-function.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/components/diagnosable-typekit-function.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,eAoChF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import * as ay from "@alloy-js/core";
|
|
3
|
+
import * as md from "@alloy-js/markdown";
|
|
4
|
+
import * as ts from "@alloy-js/typescript";
|
|
5
|
+
import { ExcerptToken } from "@microsoft/api-extractor-model";
|
|
6
|
+
export function DiagnosableTypekitFunction(props) {
|
|
7
|
+
const path = [`$(program)`, ...props.typekit.path];
|
|
8
|
+
const {
|
|
9
|
+
parameters,
|
|
10
|
+
returnType
|
|
11
|
+
} = parseDiagnosableExcerpt(props.typekit.excerpt);
|
|
12
|
+
const accessorParts = path.map(x => _$createComponent(ts.MemberExpression.Part, {
|
|
13
|
+
id: x
|
|
14
|
+
}));
|
|
15
|
+
const fnSig = [_$createComponent(ts.MemberExpression, {
|
|
16
|
+
get children() {
|
|
17
|
+
return [accessorParts, _$createComponent(ts.MemberExpression.Part, {
|
|
18
|
+
get args() {
|
|
19
|
+
return [renderTokens(parameters)];
|
|
20
|
+
}
|
|
21
|
+
})];
|
|
22
|
+
}
|
|
23
|
+
}), _$memo(() => `: ${renderTokens(returnType)};`)];
|
|
24
|
+
const fnDiagSig = [_$createComponent(ts.MemberExpression, {
|
|
25
|
+
get children() {
|
|
26
|
+
return [accessorParts, _$createComponent(ts.MemberExpression.Part, {
|
|
27
|
+
id: "withDiagnostics"
|
|
28
|
+
}), _$createComponent(ts.MemberExpression.Part, {
|
|
29
|
+
get args() {
|
|
30
|
+
return [renderTokens(parameters)];
|
|
31
|
+
}
|
|
32
|
+
})];
|
|
33
|
+
}
|
|
34
|
+
}), _$memo(() => `: [${renderTokens(returnType)}, readonly Diagnostic[]];`)];
|
|
35
|
+
return _$createComponent(md.Section, {
|
|
36
|
+
get heading() {
|
|
37
|
+
return `${props.typekit.name} <Badge variant="note" text="Diagnosable" />`;
|
|
38
|
+
},
|
|
39
|
+
get children() {
|
|
40
|
+
return _$createComponent(ay.List, {
|
|
41
|
+
get children() {
|
|
42
|
+
return ["```ts", _$memo(() => props.typekit.docComment?.emitAsTsdoc().trimEnd()), fnSig, fnDiagSig, "```"];
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function renderTokens(tokens) {
|
|
49
|
+
return tokens.map(x => x.text).join("");
|
|
50
|
+
}
|
|
51
|
+
const ARROW_FN_SEPARATOR = ") => ";
|
|
52
|
+
function parseDiagnosableExcerpt(excerpt) {
|
|
53
|
+
const tokens = excerpt.spannedTokens.slice(1); // remove the function name Diagnosable
|
|
54
|
+
tokens[0] = new ExcerptToken(tokens[0].kind, tokens[0].text.slice(2)); // remove <(
|
|
55
|
+
tokens[tokens.length - 1] = new ExcerptToken(tokens[tokens.length - 1].kind, tokens[tokens.length - 1].text.slice(0, -1)); // remove >
|
|
56
|
+
const splitIndex = tokens.findIndex(x => x.text.includes(ARROW_FN_SEPARATOR));
|
|
57
|
+
if (splitIndex !== -1) {
|
|
58
|
+
if (tokens[splitIndex].text === ARROW_FN_SEPARATOR) {
|
|
59
|
+
const paramsTokens = tokens.slice(0, splitIndex);
|
|
60
|
+
const returnTypeTokens = tokens.slice(splitIndex + 1);
|
|
61
|
+
return {
|
|
62
|
+
parameters: paramsTokens,
|
|
63
|
+
returnType: returnTypeTokens
|
|
64
|
+
};
|
|
65
|
+
} else {
|
|
66
|
+
tokens[splitIndex] = new ExcerptToken(tokens[splitIndex].kind, tokens[splitIndex].text.replace(ARROW_FN_SEPARATOR, ""));
|
|
67
|
+
return {
|
|
68
|
+
parameters: tokens.slice(0, splitIndex),
|
|
69
|
+
returnType: tokens.slice(splitIndex)
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
throw new Error(`Cannot parse Diagnosable function signature: ${excerpt.text}.`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import * as md from "@alloy-js/markdown";
|
|
3
|
+
import * as ts from "@alloy-js/typescript";
|
|
4
|
+
import { ExcerptToken } from "@microsoft/api-extractor-model";
|
|
5
|
+
export function DiagnosableTypekitFunction(props) {
|
|
6
|
+
const path = [`$(program)`, ...props.typekit.path];
|
|
7
|
+
const { parameters, returnType } = parseDiagnosableExcerpt(props.typekit.excerpt);
|
|
8
|
+
const accessorParts = path.map((x) => <ts.MemberExpression.Part id={x}/>);
|
|
9
|
+
const fnSig = (<>
|
|
10
|
+
<ts.MemberExpression>
|
|
11
|
+
{accessorParts}
|
|
12
|
+
<ts.MemberExpression.Part args={[renderTokens(parameters)]}/>
|
|
13
|
+
</ts.MemberExpression>
|
|
14
|
+
{`: ${renderTokens(returnType)};`}
|
|
15
|
+
</>);
|
|
16
|
+
const fnDiagSig = (<>
|
|
17
|
+
<ts.MemberExpression>
|
|
18
|
+
{accessorParts}
|
|
19
|
+
<ts.MemberExpression.Part id="withDiagnostics"/>
|
|
20
|
+
<ts.MemberExpression.Part args={[renderTokens(parameters)]}/>
|
|
21
|
+
</ts.MemberExpression>
|
|
22
|
+
{`: [${renderTokens(returnType)}, readonly Diagnostic[]];`}
|
|
23
|
+
</>);
|
|
24
|
+
return (<md.Section heading={`${props.typekit.name} <Badge variant="note" text="Diagnosable" />`}>
|
|
25
|
+
<ay.List>
|
|
26
|
+
{"```ts"}
|
|
27
|
+
{props.typekit.docComment?.emitAsTsdoc().trimEnd()}
|
|
28
|
+
{fnSig}
|
|
29
|
+
{fnDiagSig}
|
|
30
|
+
{"```"}
|
|
31
|
+
</ay.List>
|
|
32
|
+
</md.Section>);
|
|
33
|
+
}
|
|
34
|
+
function renderTokens(tokens) {
|
|
35
|
+
return tokens.map((x) => x.text).join("");
|
|
36
|
+
}
|
|
37
|
+
const ARROW_FN_SEPARATOR = ") => ";
|
|
38
|
+
function parseDiagnosableExcerpt(excerpt) {
|
|
39
|
+
const tokens = excerpt.spannedTokens.slice(1); // remove the function name Diagnosable
|
|
40
|
+
tokens[0] = new ExcerptToken(tokens[0].kind, tokens[0].text.slice(2)); // remove <(
|
|
41
|
+
tokens[tokens.length - 1] = new ExcerptToken(tokens[tokens.length - 1].kind, tokens[tokens.length - 1].text.slice(0, -1)); // remove >
|
|
42
|
+
const splitIndex = tokens.findIndex((x) => x.text.includes(ARROW_FN_SEPARATOR));
|
|
43
|
+
if (splitIndex !== -1) {
|
|
44
|
+
if (tokens[splitIndex].text === ARROW_FN_SEPARATOR) {
|
|
45
|
+
const paramsTokens = tokens.slice(0, splitIndex);
|
|
46
|
+
const returnTypeTokens = tokens.slice(splitIndex + 1);
|
|
47
|
+
return {
|
|
48
|
+
parameters: paramsTokens,
|
|
49
|
+
returnType: returnTypeTokens,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
tokens[splitIndex] = new ExcerptToken(tokens[splitIndex].kind, tokens[splitIndex].text.replace(ARROW_FN_SEPARATOR, ""));
|
|
54
|
+
return {
|
|
55
|
+
parameters: tokens.slice(0, splitIndex),
|
|
56
|
+
returnType: tokens.slice(splitIndex),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
throw new Error(`Cannot parse Diagnosable function signature: ${excerpt.text}.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=diagnosable-typekit-function.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnosable-typekit-function.jsx","sourceRoot":"","sources":["../../../../src/ref-doc/components/diagnosable-typekit-function.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DocPlainText, DocSection, type DocNode, type DocParagraph } from "@microsoft/tsdoc";
|
|
2
|
+
export interface TSDocProps {
|
|
3
|
+
readonly node: DocNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function TsDoc(props: TSDocProps): import("@alloy-js/core").Children;
|
|
6
|
+
export interface TsDocParagraphProps {
|
|
7
|
+
node: DocParagraph;
|
|
8
|
+
}
|
|
9
|
+
export declare function TsDocParagraph(props: TsDocParagraphProps): import("@alloy-js/core").Children[];
|
|
10
|
+
export interface TsDocPlainTextProps {
|
|
11
|
+
node: DocPlainText;
|
|
12
|
+
}
|
|
13
|
+
export declare function TsDocPlainText(props: TsDocPlainTextProps): string;
|
|
14
|
+
export interface TsDocSectionProps {
|
|
15
|
+
node: DocSection;
|
|
16
|
+
}
|
|
17
|
+
export declare function TsDocSection(props: TsDocSectionProps): () => import("@alloy-js/core").Children[];
|
|
18
|
+
//# sourceMappingURL=tsdoc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsdoc.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/components/tsdoc.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EACZ,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,qCAWtC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;CACpB;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,uCAWxD;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;CACpB;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,UAExD;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;CAClB;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,6CAQpD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { mapJoin } from "@alloy-js/core";
|
|
3
|
+
import { DocNodeKind, DocNodeTransforms } from "@microsoft/tsdoc";
|
|
4
|
+
export function TsDoc(props) {
|
|
5
|
+
switch (props.node.kind) {
|
|
6
|
+
case DocNodeKind.Paragraph:
|
|
7
|
+
return _$createComponent(TsDocParagraph, {
|
|
8
|
+
get node() {
|
|
9
|
+
return props.node;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
case DocNodeKind.Section:
|
|
13
|
+
return _$createComponent(TsDocSection, {
|
|
14
|
+
get node() {
|
|
15
|
+
return props.node;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
case DocNodeKind.PlainText:
|
|
19
|
+
return _$createComponent(TsDocPlainText, {
|
|
20
|
+
get node() {
|
|
21
|
+
return props.node;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
default:
|
|
25
|
+
return props.node.kind;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function TsDocParagraph(props) {
|
|
29
|
+
const trimmed = DocNodeTransforms.trimSpacesInParagraph(props.node);
|
|
30
|
+
let contentStartIndex = 0;
|
|
31
|
+
while (contentStartIndex < trimmed.nodes.length && trimmed.nodes[contentStartIndex].kind === DocNodeKind.SoftBreak) {
|
|
32
|
+
contentStartIndex++;
|
|
33
|
+
}
|
|
34
|
+
return trimmed.nodes.slice(contentStartIndex).map(node => TsDoc({
|
|
35
|
+
node
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
export function TsDocPlainText(props) {
|
|
39
|
+
return props.node.text;
|
|
40
|
+
}
|
|
41
|
+
export function TsDocSection(props) {
|
|
42
|
+
return mapJoin(() => props.node.nodes, node => _$createComponent(TsDoc, {
|
|
43
|
+
node: node
|
|
44
|
+
}), {
|
|
45
|
+
joiner: "\n\n"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { mapJoin } from "@alloy-js/core";
|
|
2
|
+
import { DocNodeKind, DocNodeTransforms, } from "@microsoft/tsdoc";
|
|
3
|
+
export function TsDoc(props) {
|
|
4
|
+
switch (props.node.kind) {
|
|
5
|
+
case DocNodeKind.Paragraph:
|
|
6
|
+
return <TsDocParagraph node={props.node}/>;
|
|
7
|
+
case DocNodeKind.Section:
|
|
8
|
+
return <TsDocSection node={props.node}/>;
|
|
9
|
+
case DocNodeKind.PlainText:
|
|
10
|
+
return <TsDocPlainText node={props.node}/>;
|
|
11
|
+
default:
|
|
12
|
+
return props.node.kind;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function TsDocParagraph(props) {
|
|
16
|
+
const trimmed = DocNodeTransforms.trimSpacesInParagraph(props.node);
|
|
17
|
+
let contentStartIndex = 0;
|
|
18
|
+
while (contentStartIndex < trimmed.nodes.length &&
|
|
19
|
+
trimmed.nodes[contentStartIndex].kind === DocNodeKind.SoftBreak) {
|
|
20
|
+
contentStartIndex++;
|
|
21
|
+
}
|
|
22
|
+
return trimmed.nodes.slice(contentStartIndex).map((node) => TsDoc({ node }));
|
|
23
|
+
}
|
|
24
|
+
export function TsDocPlainText(props) {
|
|
25
|
+
return props.node.text;
|
|
26
|
+
}
|
|
27
|
+
export function TsDocSection(props) {
|
|
28
|
+
return mapJoin(() => props.node.nodes, (node) => <TsDoc node={node}/>, {
|
|
29
|
+
joiner: "\n\n",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=tsdoc.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsdoc.jsx","sourceRoot":"","sources":["../../../../src/ref-doc/components/tsdoc.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EACL,WAAW,EACX,iBAAiB,GAKlB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,WAAW,CAAC,SAAS;YACxB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAoB,CAAC,EAAG,CAAC;QAC9D,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAkB,CAAC,EAAG,CAAC;QAC1D,KAAK,WAAW,CAAC,SAAS;YACxB,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAoB,CAAC,EAAG,CAAC;QAC9D;YACE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpE,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,OACE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM;QACxC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,EAC/D,CAAC;QACD,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAKD,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB,CAAC;AAKD,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAkB,EACnC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,EAC/B;QACE,MAAM,EAAE,MAAM;KACf,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import { TypekitFunctionDoc } from "../typekit-docs.js";
|
|
3
|
+
export interface TypekitFunctionProps {
|
|
4
|
+
readonly typekit: TypekitFunctionDoc;
|
|
5
|
+
}
|
|
6
|
+
export declare function TypekitFunction(props: TypekitFunctionProps): ay.Children;
|
|
7
|
+
//# sourceMappingURL=typekit-function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-function.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekit-function.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,eA+B1D"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import * as ay from "@alloy-js/core";
|
|
3
|
+
import * as md from "@alloy-js/markdown";
|
|
4
|
+
import * as ts from "@alloy-js/typescript";
|
|
5
|
+
import { DiagnosableTypekitFunction } from "./diagnosable-typekit-function.js";
|
|
6
|
+
export function TypekitFunction(props) {
|
|
7
|
+
if (props.typekit.kind === "diagnosable") {
|
|
8
|
+
return _$createComponent(DiagnosableTypekitFunction, {
|
|
9
|
+
get typekit() {
|
|
10
|
+
return props.typekit;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
const path = [`$(program)`, ...props.typekit.path];
|
|
15
|
+
const sig = props.typekit.kind === "getter" ? [] : _$createComponent(ts.MemberExpression.Part, {
|
|
16
|
+
get args() {
|
|
17
|
+
return props.typekit.parameters.map(x => `${x.name}: ${x.typeExcerpt.text}`);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
return _$createComponent(md.Section, {
|
|
21
|
+
get heading() {
|
|
22
|
+
return props.typekit.name;
|
|
23
|
+
},
|
|
24
|
+
get children() {
|
|
25
|
+
return _$createComponent(ay.List, {
|
|
26
|
+
get children() {
|
|
27
|
+
return ["```ts", _$memo(() => props.typekit.docComment?.emitAsTsdoc().trimEnd()), [_$createComponent(ts.MemberExpression, {
|
|
28
|
+
get children() {
|
|
29
|
+
return [_$memo(() => path.map(x => _$createComponent(ts.MemberExpression.Part, {
|
|
30
|
+
id: x
|
|
31
|
+
}))), sig];
|
|
32
|
+
}
|
|
33
|
+
}), [": ", _$memo(() => props.typekit.returnTypeExcerpt.text), ";"]], "```"];
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import * as md from "@alloy-js/markdown";
|
|
3
|
+
import * as ts from "@alloy-js/typescript";
|
|
4
|
+
import { DiagnosableTypekitFunction } from "./diagnosable-typekit-function.jsx";
|
|
5
|
+
export function TypekitFunction(props) {
|
|
6
|
+
if (props.typekit.kind === "diagnosable") {
|
|
7
|
+
return <DiagnosableTypekitFunction typekit={props.typekit}/>;
|
|
8
|
+
}
|
|
9
|
+
const path = [`$(program)`, ...props.typekit.path];
|
|
10
|
+
const sig = props.typekit.kind === "getter" ? (<></>) : (<ts.MemberExpression.Part args={props.typekit.parameters.map((x) => `${x.name}: ${x.typeExcerpt.text}`)}/>);
|
|
11
|
+
return (<md.Section heading={props.typekit.name}>
|
|
12
|
+
<ay.List>
|
|
13
|
+
{"```ts"}
|
|
14
|
+
{props.typekit.docComment?.emitAsTsdoc().trimEnd()}
|
|
15
|
+
<>
|
|
16
|
+
<ts.MemberExpression>
|
|
17
|
+
{path.map((x) => (<ts.MemberExpression.Part id={x}/>))}
|
|
18
|
+
{sig}
|
|
19
|
+
</ts.MemberExpression>
|
|
20
|
+
<>: {props.typekit.returnTypeExcerpt.text};</>
|
|
21
|
+
</>
|
|
22
|
+
{"```"}
|
|
23
|
+
</ay.List>
|
|
24
|
+
</md.Section>);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=typekit-function.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-function.jsx","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekit-function.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAMhF,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACzC,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAG,CAAC;IAChE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,GAAG,GACP,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,EAAE,GAAG,CACN,CAAC,CAAC,CAAC,CACF,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CACvB,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,EAC/E,CACH,CAAC;IACJ,OAAO,CACL,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CACtC;MAAA,CAAC,EAAE,CAAC,IAAI,CACN;QAAA,CAAC,OAAO,CACR;QAAA,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,CAClD;QAAA,EACE;UAAA,CAAC,EAAE,CAAC,gBAAgB,CAClB;YAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACf,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAG,CACpC,CAAC,CACF;YAAA,CAAC,GAAG,CACN;UAAA,EAAE,EAAE,CAAC,gBAAgB,CACrB;UAAA,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAC7C;QAAA,GACA;QAAA,CAAC,KAAK,CACR;MAAA,EAAE,EAAE,CAAC,IAAI,CACX;IAAA,EAAE,EAAE,CAAC,OAAO,CAAC,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import { TypekitNamespace } from "../typekit-docs.js";
|
|
3
|
+
export interface TypekitSectionProps {
|
|
4
|
+
readonly typekit: TypekitNamespace;
|
|
5
|
+
}
|
|
6
|
+
export declare function TypekitSection(props: TypekitSectionProps): ay.Children;
|
|
7
|
+
//# sourceMappingURL=typekit-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-section.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekit-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;CACpC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,eASxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import * as ay from "@alloy-js/core";
|
|
3
|
+
import * as md from "@alloy-js/markdown";
|
|
4
|
+
import { TsDoc } from "./tsdoc.js";
|
|
5
|
+
import { TypekitFunction } from "./typekit-function.js";
|
|
6
|
+
export function TypekitSection(props) {
|
|
7
|
+
return _$createComponent(md.Section, {
|
|
8
|
+
get heading() {
|
|
9
|
+
return props.typekit.name;
|
|
10
|
+
},
|
|
11
|
+
get children() {
|
|
12
|
+
return [_$createComponent(ay.Prose, {
|
|
13
|
+
get children() {
|
|
14
|
+
return _$memo(() => !!props.typekit.doc)() && _$createComponent(TsDoc, {
|
|
15
|
+
get node() {
|
|
16
|
+
return props.typekit.doc;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}), _$createComponent(ay.For, {
|
|
21
|
+
get each() {
|
|
22
|
+
return Object.values(props.typekit.entries);
|
|
23
|
+
},
|
|
24
|
+
children: x => _$createComponent(TypekitFunction, {
|
|
25
|
+
typekit: x
|
|
26
|
+
})
|
|
27
|
+
})];
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import * as md from "@alloy-js/markdown";
|
|
3
|
+
import { TsDoc } from "./tsdoc.jsx";
|
|
4
|
+
import { TypekitFunction } from "./typekit-function.jsx";
|
|
5
|
+
export function TypekitSection(props) {
|
|
6
|
+
return (<md.Section heading={props.typekit.name}>
|
|
7
|
+
<ay.Prose>{props.typekit.doc && <TsDoc node={props.typekit.doc}/>}</ay.Prose>
|
|
8
|
+
<ay.For each={Object.values(props.typekit.entries)}>
|
|
9
|
+
{(x) => <TypekitFunction typekit={x}/>}
|
|
10
|
+
</ay.For>
|
|
11
|
+
</md.Section>);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=typekit-section.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-section.jsx","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekit-section.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAMzD,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,CACL,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CACtC;MAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAC7E;MAAA,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CACjD;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAQ,CAAC,EAAG,CAChD;MAAA,EAAE,EAAE,CAAC,GAAG,CACV;IAAA,EAAE,EAAE,CAAC,OAAO,CAAC,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekits-file.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekits-file.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,mCAsB3D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import * as ay from "@alloy-js/core";
|
|
3
|
+
import * as md from "@alloy-js/markdown";
|
|
4
|
+
import { format as prettierFormat } from "prettier";
|
|
5
|
+
import { TypekitSection } from "./typekit-section.js";
|
|
6
|
+
export function createTypekitDocs(typekit) {
|
|
7
|
+
const jsxContent = _$createComponent(ay.Output, {
|
|
8
|
+
get children() {
|
|
9
|
+
return _$createComponent(md.SourceFile, {
|
|
10
|
+
path: `typekits.mdx`,
|
|
11
|
+
get children() {
|
|
12
|
+
return [[_$memo(() => ay.code`
|
|
13
|
+
---
|
|
14
|
+
title: "[API] Typekits"
|
|
15
|
+
---
|
|
16
|
+
import { Badge } from '@astrojs/starlight/components';
|
|
17
|
+
`)], _$createComponent(md.Section, {
|
|
18
|
+
get children() {
|
|
19
|
+
return _$createComponent(ay.For, {
|
|
20
|
+
get each() {
|
|
21
|
+
return Object.values(typekit.namespaces);
|
|
22
|
+
},
|
|
23
|
+
children: x => _$createComponent(TypekitSection, {
|
|
24
|
+
typekit: x
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
})];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return flattenOutput(ay.render(jsxContent));
|
|
34
|
+
}
|
|
35
|
+
async function flattenOutput(output) {
|
|
36
|
+
const files = {};
|
|
37
|
+
const rawFiles = [];
|
|
38
|
+
ay.traverseOutput(output, {
|
|
39
|
+
visitDirectory: () => {},
|
|
40
|
+
visitFile: file => rawFiles.push(file)
|
|
41
|
+
});
|
|
42
|
+
for (const file of rawFiles) {
|
|
43
|
+
files[file.path] = await format(file.contents);
|
|
44
|
+
}
|
|
45
|
+
return files;
|
|
46
|
+
}
|
|
47
|
+
function format(value) {
|
|
48
|
+
try {
|
|
49
|
+
const formatted = prettierFormat(value, {
|
|
50
|
+
parser: "markdown"
|
|
51
|
+
});
|
|
52
|
+
return formatted;
|
|
53
|
+
} catch (e) {
|
|
54
|
+
// eslint-disable-next-line no-console
|
|
55
|
+
console.error("Error formatting", e);
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as ay from "@alloy-js/core";
|
|
2
|
+
import * as md from "@alloy-js/markdown";
|
|
3
|
+
import { format as prettierFormat } from "prettier";
|
|
4
|
+
import { TypekitSection } from "./typekit-section.js";
|
|
5
|
+
export function createTypekitDocs(typekit) {
|
|
6
|
+
const jsxContent = (<ay.Output>
|
|
7
|
+
<md.SourceFile path={`typekits.mdx`}>
|
|
8
|
+
<>
|
|
9
|
+
{ay.code `
|
|
10
|
+
---
|
|
11
|
+
title: "[API] Typekits"
|
|
12
|
+
---
|
|
13
|
+
import { Badge } from '@astrojs/starlight/components';
|
|
14
|
+
`}
|
|
15
|
+
</>
|
|
16
|
+
<md.Section>
|
|
17
|
+
<ay.For each={Object.values(typekit.namespaces)}>
|
|
18
|
+
{(x) => <TypekitSection typekit={x}/>}
|
|
19
|
+
</ay.For>
|
|
20
|
+
</md.Section>
|
|
21
|
+
</md.SourceFile>
|
|
22
|
+
</ay.Output>);
|
|
23
|
+
return flattenOutput(ay.render(jsxContent));
|
|
24
|
+
}
|
|
25
|
+
async function flattenOutput(output) {
|
|
26
|
+
const files = {};
|
|
27
|
+
const rawFiles = [];
|
|
28
|
+
ay.traverseOutput(output, {
|
|
29
|
+
visitDirectory: () => { },
|
|
30
|
+
visitFile: (file) => rawFiles.push(file),
|
|
31
|
+
});
|
|
32
|
+
for (const file of rawFiles) {
|
|
33
|
+
files[file.path] = await format(file.contents);
|
|
34
|
+
}
|
|
35
|
+
return files;
|
|
36
|
+
}
|
|
37
|
+
function format(value) {
|
|
38
|
+
try {
|
|
39
|
+
const formatted = prettierFormat(value, {
|
|
40
|
+
parser: "markdown",
|
|
41
|
+
});
|
|
42
|
+
return formatted;
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
// eslint-disable-next-line no-console
|
|
46
|
+
console.error("Error formatting", e);
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=typekits-file.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekits-file.jsx","sourceRoot":"","sources":["../../../../src/ref-doc/components/typekits-file.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,UAAU,iBAAiB,CAAC,OAA0B;IAC1D,MAAM,UAAU,GAAG,CACjB,CAAC,EAAE,CAAC,MAAM,CACR;MAAA,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAClC;QAAA,EACE;UAAA,CAAC,EAAE,CAAC,IAAI,CAAA;;;;;SAKT,CACD;QAAA,GACA;QAAA,CAAC,EAAE,CAAC,OAAO,CACT;UAAA,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAC9C;YAAA,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAG,CACxC;UAAA,EAAE,EAAE,CAAC,GAAG,CACV;QAAA,EAAE,EAAE,CAAC,OAAO,CACd;MAAA,EAAE,EAAE,CAAC,UAAU,CACjB;IAAA,EAAE,EAAE,CAAC,MAAM,CAAC,CACb,CAAC;IAEF,OAAO,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAA0B;IACrD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE;QACxB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;QACxB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;KACzC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE;YACtC,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/experimental.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,
|
|
1
|
+
{"version":3,"file":"experimental.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/experimental.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAGX,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAyB,oBAAoB,EAAkB,MAAM,gBAAgB,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AACD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CA0BhC;AAED,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,CAAC,kBAAkB,EAAE,SAAS,UAAU,EAAE,CAAC,GAAG,SAAS,CAAC,CAelE"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { compile, createDiagnosticCollector, joinPaths, NodeHost } from "@typespec/compiler";
|
|
2
|
-
import { mkdir,
|
|
2
|
+
import { mkdir, writeFile } from "fs/promises";
|
|
3
3
|
import prettier from "prettier";
|
|
4
4
|
import { generateJsApiDocs } from "./api-docs.js";
|
|
5
5
|
import { renderReadme } from "./emitters/markdown.js";
|
|
6
6
|
import { renderToAstroStarlightMarkdown } from "./emitters/starlight.js";
|
|
7
7
|
import { extractLibraryRefDocs, extractRefDocs } from "./extractor.js";
|
|
8
|
+
import { writeTypekitDocs } from "./typekit-docs.js";
|
|
9
|
+
import { readPackageJson } from "./utils/misc.js";
|
|
8
10
|
/**
|
|
9
11
|
* @experimental this is for experimental and is for internal use only. Breaking change to this API can happen at anytime.
|
|
10
12
|
*/
|
|
@@ -23,8 +25,13 @@ export async function generateLibraryDocs(libraryPath, outputDir, options = {})
|
|
|
23
25
|
}
|
|
24
26
|
const readme = await formatMarkdown(joinPaths(libraryPath, "README.md"), await renderReadme(refDoc, libraryPath), config ?? {});
|
|
25
27
|
await writeFile(joinPaths(libraryPath, "README.md"), readme);
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
+
if (!options.skipJSApi) {
|
|
29
|
+
if (options.typekits) {
|
|
30
|
+
await writeTypekitDocs(libraryPath, outputDir);
|
|
31
|
+
}
|
|
32
|
+
if (pkgJson.main) {
|
|
33
|
+
await generateJsApiDocs(libraryPath, joinPaths(outputDir, "js-api"));
|
|
34
|
+
}
|
|
28
35
|
}
|
|
29
36
|
return diagnostics.diagnostics;
|
|
30
37
|
}
|
|
@@ -47,10 +54,6 @@ export async function resolveLibraryRefDocsBase(libraryPath, options = {}) {
|
|
|
47
54
|
}
|
|
48
55
|
return undefined;
|
|
49
56
|
}
|
|
50
|
-
async function readPackageJson(libraryPath) {
|
|
51
|
-
const buffer = await readFile(joinPaths(libraryPath, "package.json"));
|
|
52
|
-
return JSON.parse(buffer.toString());
|
|
53
|
-
}
|
|
54
57
|
async function formatMarkdown(filename, content, options) {
|
|
55
58
|
try {
|
|
56
59
|
return await prettier.format(content, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/ref-doc/experimental.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,yBAAyB,EAEzB,SAAS,EACT,QAAQ,
|
|
1
|
+
{"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/ref-doc/experimental.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ref-doc/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Excerpt } from "@microsoft/api-extractor-model";
|
|
2
|
+
import { type DocComment, type DocSection } from "@microsoft/tsdoc";
|
|
3
|
+
export interface TypekitCollection {
|
|
4
|
+
namespaces: Record<string, TypekitNamespace>;
|
|
5
|
+
}
|
|
6
|
+
export interface TypekitNamespace {
|
|
7
|
+
name: string;
|
|
8
|
+
typeName: string;
|
|
9
|
+
doc?: DocSection;
|
|
10
|
+
entries: Record<string, TypekitEntryDoc>;
|
|
11
|
+
}
|
|
12
|
+
type TypekitEntryDoc = TypekitNamespace | TypekitFunctionDoc;
|
|
13
|
+
export interface TypekitFunctionDoc {
|
|
14
|
+
kind: "getter" | "method" | "diagnosable";
|
|
15
|
+
/**
|
|
16
|
+
* Name of the function(Last part of the path)
|
|
17
|
+
* @example For `$(program).foo.bar.baz()` the name is `baz`
|
|
18
|
+
*/
|
|
19
|
+
name: string;
|
|
20
|
+
/**
|
|
21
|
+
* Full typekit path under $
|
|
22
|
+
* @example For `$(program).foo.bar.baz()` the path is `["foo", "bar", "baz"]`
|
|
23
|
+
*/
|
|
24
|
+
path: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Parameters of the function. Undefined for getters.
|
|
27
|
+
*/
|
|
28
|
+
parameters?: TsFunctionParameter[];
|
|
29
|
+
/**
|
|
30
|
+
* Doc comment
|
|
31
|
+
*/
|
|
32
|
+
docComment?: DocComment;
|
|
33
|
+
/**
|
|
34
|
+
* The excerpt of the function
|
|
35
|
+
*/
|
|
36
|
+
excerpt: Excerpt;
|
|
37
|
+
/**
|
|
38
|
+
* The excerpt of the return type
|
|
39
|
+
*/
|
|
40
|
+
returnTypeExcerpt: Excerpt;
|
|
41
|
+
}
|
|
42
|
+
export interface TsFunctionParameter {
|
|
43
|
+
name: string;
|
|
44
|
+
doc: string;
|
|
45
|
+
optional: boolean;
|
|
46
|
+
typeExcerpt: Excerpt;
|
|
47
|
+
}
|
|
48
|
+
export declare function writeTypekitDocs(libraryPath: string, outputDir: string): Promise<void>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=typekit-docs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-docs.d.ts","sourceRoot":"","sources":["../../../src/ref-doc/typekit-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,OAAO,EACR,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAW,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO7E,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC1C;AAED,KAAK,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC1C;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAEnC;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5F"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { ApiInterface, ApiMethodSignature, ApiProperty, ApiPropertySignature } from "@microsoft/api-extractor-model";
|
|
2
|
+
import { joinPaths } from "@typespec/compiler";
|
|
3
|
+
import { writeFile } from "fs/promises";
|
|
4
|
+
import { createApiModel } from "./api-extractor.js";
|
|
5
|
+
import { createTypekitDocs } from "./components/typekits-file.js";
|
|
6
|
+
import { readPackageJson } from "./utils/misc.js";
|
|
7
|
+
export async function writeTypekitDocs(libraryPath, outputDir) {
|
|
8
|
+
const pkgJson = await readPackageJson(libraryPath);
|
|
9
|
+
const typekits = await getTypekitApi(libraryPath, pkgJson);
|
|
10
|
+
if (!typekits) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const output = await createTypekitDocs(typekits);
|
|
14
|
+
for (const [file, content] of Object.entries(output)) {
|
|
15
|
+
await writeFile(joinPaths(outputDir, file), content);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async function getTypekitApi(libraryPath, pkgJson) {
|
|
19
|
+
const api = await createApiModel(libraryPath, pkgJson);
|
|
20
|
+
if (!api) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const namespaces = {};
|
|
24
|
+
for (const pkgMember of api.packages[0].members) {
|
|
25
|
+
for (const member of pkgMember.members) {
|
|
26
|
+
if (member instanceof ApiInterface) {
|
|
27
|
+
const docComment = member.tsdocComment;
|
|
28
|
+
const typekitTag = docComment?.customBlocks.find(x => x.blockTag.tagName === "@typekit");
|
|
29
|
+
if (typekitTag) {
|
|
30
|
+
const name = typekitTag.content.nodes[0].nodes.filter(x => x.kind === "PlainText")[0].text;
|
|
31
|
+
const typekit = resolveTypekit(member, [name]);
|
|
32
|
+
namespaces[name] = typekit;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function resolveTypekit(iface, path) {
|
|
38
|
+
const typekit = {
|
|
39
|
+
name: path[0],
|
|
40
|
+
typeName: iface.displayName,
|
|
41
|
+
doc: iface.tsdocComment?.summarySection,
|
|
42
|
+
entries: {}
|
|
43
|
+
};
|
|
44
|
+
for (const member of iface.members) {
|
|
45
|
+
if (member instanceof ApiPropertySignature) {
|
|
46
|
+
const propertyReference = member.propertyTypeExcerpt.spannedTokens[0].canonicalReference;
|
|
47
|
+
if (propertyReference) {
|
|
48
|
+
const subkit = api.resolveDeclarationReference(propertyReference, member);
|
|
49
|
+
if (subkit.resolvedApiItem instanceof ApiInterface) {
|
|
50
|
+
typekit.entries[member.displayName] = resolveTypekit(subkit.resolvedApiItem, [...path, member.displayName]);
|
|
51
|
+
} else if (propertyReference.toString() === "@typespec/compiler!Diagnosable:type") {
|
|
52
|
+
typekit.entries[member.displayName] = {
|
|
53
|
+
kind: "diagnosable",
|
|
54
|
+
name: member.displayName,
|
|
55
|
+
docComment: member.tsdocComment,
|
|
56
|
+
path: [...path, member.displayName],
|
|
57
|
+
excerpt: member.propertyTypeExcerpt,
|
|
58
|
+
returnTypeExcerpt: member.propertyTypeExcerpt
|
|
59
|
+
};
|
|
60
|
+
} else {
|
|
61
|
+
throw new Error(`All typekits properties should be sub kits but got a ${subkit.resolvedApiItem?.kind} for ${path.join(".")}.${member.displayName}: ${subkit.errorMessage}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
} else if (member instanceof ApiMethodSignature) {
|
|
65
|
+
typekit.entries[member.displayName] = {
|
|
66
|
+
kind: "method",
|
|
67
|
+
name: member.displayName,
|
|
68
|
+
docComment: member.tsdocComment,
|
|
69
|
+
path: [...path, member.displayName],
|
|
70
|
+
parameters: member.parameters.map(param => ({
|
|
71
|
+
doc: "TODO doc",
|
|
72
|
+
name: param.name,
|
|
73
|
+
optional: param.isOptional,
|
|
74
|
+
typeExcerpt: param.parameterTypeExcerpt
|
|
75
|
+
})),
|
|
76
|
+
excerpt: member.excerpt,
|
|
77
|
+
returnTypeExcerpt: member.returnTypeExcerpt
|
|
78
|
+
};
|
|
79
|
+
} else if (member instanceof ApiProperty) {
|
|
80
|
+
typekit.entries[member.displayName] = {
|
|
81
|
+
kind: "getter",
|
|
82
|
+
name: member.displayName,
|
|
83
|
+
docComment: member.tsdocComment,
|
|
84
|
+
path: [...path, member.displayName],
|
|
85
|
+
parameters: [],
|
|
86
|
+
excerpt: member.excerpt,
|
|
87
|
+
returnTypeExcerpt: member.propertyTypeExcerpt
|
|
88
|
+
};
|
|
89
|
+
} else {
|
|
90
|
+
// eslint-disable-next-line no-console
|
|
91
|
+
console.warn(`Unknown member: ${member.displayName} of kind ${member.kind}`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return typekit;
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
namespaces
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typekit-docs.js","sourceRoot":"","sources":["../../../src/ref-doc/typekit-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../../../src/ref-doc/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAa,MAAM,oBAAoB,CAAC;AAGjE,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAG/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../../src/ref-doc/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/tspd",
|
|
3
|
-
"version": "0.71.0-dev.
|
|
3
|
+
"version": "0.71.0-dev.1",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for generating TypeSpec docs",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -45,14 +45,18 @@
|
|
|
45
45
|
],
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@alloy-js/core": "^0.15.0",
|
|
48
|
+
"@alloy-js/markdown": "^0.15.1",
|
|
48
49
|
"@alloy-js/typescript": "^0.15.0",
|
|
50
|
+
"@microsoft/api-extractor-model": "^7.30.6",
|
|
51
|
+
"@microsoft/tsdoc": "^0.15.1",
|
|
52
|
+
"@microsoft/tsdoc-config": "^0.17.1",
|
|
49
53
|
"@typespec/compiler": "^1.0.0",
|
|
50
54
|
"picocolors": "~1.1.1",
|
|
51
55
|
"prettier": "~3.5.3",
|
|
52
|
-
"yaml": "~2.7.0",
|
|
53
|
-
"yargs": "~17.7.2",
|
|
54
56
|
"typedoc": "^0.28.1",
|
|
55
|
-
"typedoc-plugin-markdown": "^4.5.2"
|
|
57
|
+
"typedoc-plugin-markdown": "^4.5.2",
|
|
58
|
+
"yaml": "~2.7.0",
|
|
59
|
+
"yargs": "~17.7.2"
|
|
56
60
|
},
|
|
57
61
|
"devDependencies": {
|
|
58
62
|
"@alloy-js/cli": "^0.15.0",
|