@teambit/docs 1.0.107 → 1.0.108
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/default-doc-reader.ts +29 -0
- package/dist/default-doc-reader.js +3 -4
- package/dist/default-doc-reader.js.map +1 -1
- package/dist/doc-module.js +1 -2
- package/dist/doc-module.js.map +1 -1
- package/dist/docs.composition.d.ts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.graphql.js +1 -1
- package/dist/docs.graphql.js.map +1 -1
- package/dist/docs.main.runtime.d.ts +9 -12
- package/dist/docs.main.runtime.js +5 -7
- package/dist/docs.main.runtime.js.map +1 -1
- package/dist/docs.preview.runtime.d.ts +2 -2
- package/dist/docs.ui.runtime.d.ts +3 -3
- package/dist/overview/overview.d.ts +7 -7
- package/dist/overview/overview.js +9 -10
- package/dist/overview/overview.js.map +1 -1
- package/dist/overview/readme-skeleton.d.ts +1 -1
- package/dist/overview.section.d.ts +2 -2
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/doc-module.ts +17 -0
- package/doc-reader.ts +15 -0
- package/docs.aspect.ts +9 -0
- package/docs.graphql.ts +26 -0
- package/docs.main.runtime.ts +234 -0
- package/docs.preview-definition.ts +38 -0
- package/docs.service.ts +9 -0
- package/docs.ts +38 -0
- package/index.ts +21 -0
- package/package.json +32 -37
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import type { PkgMain } from '@teambit/pkg';
|
|
3
|
+
import type { Component } from '@teambit/component';
|
|
4
|
+
import type { CompilerMain } from '@teambit/compiler';
|
|
5
|
+
import type { Workspace } from '@teambit/workspace';
|
|
6
|
+
import { Doc } from '@teambit/docs.entities.doc';
|
|
7
|
+
import { DocReader } from './doc-reader';
|
|
8
|
+
|
|
9
|
+
export class DefaultDocReader implements DocReader {
|
|
10
|
+
constructor(private pkg: PkgMain, private compiler: CompilerMain, private workspace: Workspace) {}
|
|
11
|
+
|
|
12
|
+
async read(path: string, contents: Buffer, component: Component) {
|
|
13
|
+
const packageName = this.pkg.getPackageName(component);
|
|
14
|
+
const distPath = this.compiler.getDistPathBySrcPath(component, path);
|
|
15
|
+
// eslint-disable-next-line
|
|
16
|
+
const docsModule = require(resolve(`${this.workspace.path}/node_modules/${packageName}/${distPath}`));
|
|
17
|
+
return Doc.from(path, {
|
|
18
|
+
labels: docsModule.labels || docsModule.default?.labels,
|
|
19
|
+
description: docsModule.abstract || docsModule.default?.abstract || docsModule.description,
|
|
20
|
+
displayName: docsModule.displayName || docsModule.default?.componentDisplayName,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
readonly supportedExtensions = ['.ts', '.js', '.jsx', '.tsx'];
|
|
25
|
+
|
|
26
|
+
isFormatSupported(format: string) {
|
|
27
|
+
return this.supportedExtensions.includes(format);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -29,15 +29,14 @@ class DefaultDocReader {
|
|
|
29
29
|
_defineProperty(this, "supportedExtensions", ['.ts', '.js', '.jsx', '.tsx']);
|
|
30
30
|
}
|
|
31
31
|
async read(path, contents, component) {
|
|
32
|
-
var _docsModule$default, _docsModule$default2, _docsModule$default3;
|
|
33
32
|
const packageName = this.pkg.getPackageName(component);
|
|
34
33
|
const distPath = this.compiler.getDistPathBySrcPath(component, path);
|
|
35
34
|
// eslint-disable-next-line
|
|
36
35
|
const docsModule = require((0, _path().resolve)(`${this.workspace.path}/node_modules/${packageName}/${distPath}`));
|
|
37
36
|
return _docsEntities().Doc.from(path, {
|
|
38
|
-
labels: docsModule.labels ||
|
|
39
|
-
description: docsModule.abstract ||
|
|
40
|
-
displayName: docsModule.displayName ||
|
|
37
|
+
labels: docsModule.labels || docsModule.default?.labels,
|
|
38
|
+
description: docsModule.abstract || docsModule.default?.abstract || docsModule.description,
|
|
39
|
+
displayName: docsModule.displayName || docsModule.default?.componentDisplayName
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
isFormatSupported(format) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","require","_docsEntities","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DefaultDocReader","constructor","pkg","compiler","workspace","read","path","contents","component","
|
|
1
|
+
{"version":3,"names":["_path","data","require","_docsEntities","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DefaultDocReader","constructor","pkg","compiler","workspace","read","path","contents","component","packageName","getPackageName","distPath","getDistPathBySrcPath","docsModule","resolve","Doc","from","labels","default","description","abstract","displayName","componentDisplayName","isFormatSupported","format","supportedExtensions","includes","exports"],"sources":["default-doc-reader.ts"],"sourcesContent":["import { resolve } from 'path';\nimport type { PkgMain } from '@teambit/pkg';\nimport type { Component } from '@teambit/component';\nimport type { CompilerMain } from '@teambit/compiler';\nimport type { Workspace } from '@teambit/workspace';\nimport { Doc } from '@teambit/docs.entities.doc';\nimport { DocReader } from './doc-reader';\n\nexport class DefaultDocReader implements DocReader {\n constructor(private pkg: PkgMain, private compiler: CompilerMain, private workspace: Workspace) {}\n\n async read(path: string, contents: Buffer, component: Component) {\n const packageName = this.pkg.getPackageName(component);\n const distPath = this.compiler.getDistPathBySrcPath(component, path);\n // eslint-disable-next-line\n const docsModule = require(resolve(`${this.workspace.path}/node_modules/${packageName}/${distPath}`));\n return Doc.from(path, {\n labels: docsModule.labels || docsModule.default?.labels,\n description: docsModule.abstract || docsModule.default?.abstract || docsModule.description,\n displayName: docsModule.displayName || docsModule.default?.componentDisplayName,\n });\n }\n\n readonly supportedExtensions = ['.ts', '.js', '.jsx', '.tsx'];\n\n isFormatSupported(format: string) {\n return this.supportedExtensions.includes(format);\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA,SAAAE,cAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,aAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAiD,SAAAG,gBAAAC,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAI,MAAA,CAAAC,cAAA,CAAAL,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAR,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAG1C,MAAMW,gBAAgB,CAAsB;EACjDC,WAAWA,CAASC,GAAY,EAAUC,QAAsB,EAAUC,SAAoB,EAAE;IAAA,KAA5EF,GAAY,GAAZA,GAAY;IAAA,KAAUC,QAAsB,GAAtBA,QAAsB;IAAA,KAAUC,SAAoB,GAApBA,SAAoB;IAAAzB,eAAA,8BAc/D,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;EAdoC;EAEjG,MAAM0B,IAAIA,CAACC,IAAY,EAAEC,QAAgB,EAAEC,SAAoB,EAAE;IAC/D,MAAMC,WAAW,GAAG,IAAI,CAACP,GAAG,CAACQ,cAAc,CAACF,SAAS,CAAC;IACtD,MAAMG,QAAQ,GAAG,IAAI,CAACR,QAAQ,CAACS,oBAAoB,CAACJ,SAAS,EAAEF,IAAI,CAAC;IACpE;IACA,MAAMO,UAAU,GAAGpC,OAAO,CAAC,IAAAqC,eAAO,EAAE,GAAE,IAAI,CAACV,SAAS,CAACE,IAAK,iBAAgBG,WAAY,IAAGE,QAAS,EAAC,CAAC,CAAC;IACrG,OAAOI,mBAAG,CAACC,IAAI,CAACV,IAAI,EAAE;MACpBW,MAAM,EAAEJ,UAAU,CAACI,MAAM,IAAIJ,UAAU,CAACK,OAAO,EAAED,MAAM;MACvDE,WAAW,EAAEN,UAAU,CAACO,QAAQ,IAAIP,UAAU,CAACK,OAAO,EAAEE,QAAQ,IAAIP,UAAU,CAACM,WAAW;MAC1FE,WAAW,EAAER,UAAU,CAACQ,WAAW,IAAIR,UAAU,CAACK,OAAO,EAAEI;IAC7D,CAAC,CAAC;EACJ;EAIAC,iBAAiBA,CAACC,MAAc,EAAE;IAChC,OAAO,IAAI,CAACC,mBAAmB,CAACC,QAAQ,CAACF,MAAM,CAAC;EAClD;AACF;AAACG,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA"}
|
package/dist/doc-module.js
CHANGED
|
@@ -18,8 +18,7 @@ class DocModule {
|
|
|
18
18
|
* get the abstract.
|
|
19
19
|
*/
|
|
20
20
|
get abstract() {
|
|
21
|
-
|
|
22
|
-
return this.module.abstract || ((_this$module$default = this.module.default) === null || _this$module$default === void 0 ? void 0 : _this$module$default.abstract);
|
|
21
|
+
return this.module.abstract || this.module.default?.abstract;
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
exports.DocModule = DocModule;
|
package/dist/doc-module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DocModule","constructor","path","module","abstract","
|
|
1
|
+
{"version":3,"names":["DocModule","constructor","path","module","abstract","default","exports"],"sources":["doc-module.ts"],"sourcesContent":["export class DocModule {\n constructor(\n readonly path: string,\n\n /**\n * original doc module.\n */\n readonly module: any\n ) {}\n\n /**\n * get the abstract.\n */\n get abstract() {\n return this.module.abstract || this.module.default?.abstract;\n }\n}\n"],"mappings":";;;;;;AAAO,MAAMA,SAAS,CAAC;EACrBC,WAAWA,CACAC,IAAY;EAErB;AACJ;AACA;EACaC,MAAW,EACpB;IAAA,KANSD,IAAY,GAAZA,IAAY;IAAA,KAKZC,MAAW,GAAXA,MAAW;EACnB;;EAEH;AACF;AACA;EACE,IAAIC,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACD,MAAM,CAACC,QAAQ,IAAI,IAAI,CAACD,MAAM,CAACE,OAAO,EAAED,QAAQ;EAC9D;AACF;AAACE,OAAA,CAAAN,SAAA,GAAAA,SAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const Logo: () =>
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Logo: () => JSX.Element;
|
package/dist/docs.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { ReactElement } from 'react';
|
|
2
|
-
export
|
|
2
|
+
export type Example = {
|
|
3
3
|
title?: string;
|
|
4
4
|
description?: ReactElement;
|
|
5
5
|
scope?: {
|
|
@@ -8,7 +8,7 @@ export declare type Example = {
|
|
|
8
8
|
jsx?: JSX.Element;
|
|
9
9
|
code: string;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export type Docs = {
|
|
12
12
|
/**
|
|
13
13
|
* default is the docs content.
|
|
14
14
|
*/
|
package/dist/docs.graphql.js
CHANGED
package/dist/docs.graphql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","docsSchema","docs","typeDefs","gql","resolvers","Component","description","component","getDescription","labels","doc","getDoc"],"sources":["docs.graphql.ts"],"sourcesContent":["import gql from 'graphql-tag';\nimport { Component } from '@teambit/component';\nimport { DocsMain } from './docs.main.runtime';\n\nexport function docsSchema(docs: DocsMain) {\n return {\n typeDefs: gql`\n extend type Component {\n description: String\n labels: [String]\n }\n `,\n resolvers: {\n Component: {\n description: (component: Component) => {\n return docs.getDescription(component);\n },\n\n labels: (component: Component) => {\n const doc = docs.getDoc(component);\n return doc?.labels || [];\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIvB,SAASG,UAAUA,CAACC,IAAc,EAAE;EACzC,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTC,WAAW,EAAGC,SAAoB,IAAK;UACrC,OAAON,IAAI,CAACO,cAAc,CAACD,SAAS,CAAC;QACvC,CAAC;QAEDE,MAAM,EAAGF,SAAoB,IAAK;UAChC,MAAMG,GAAG,GAAGT,IAAI,CAACU,MAAM,CAACJ,SAAS,CAAC;UAClC,
|
|
1
|
+
{"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","obj","__esModule","default","docsSchema","docs","typeDefs","gql","resolvers","Component","description","component","getDescription","labels","doc","getDoc"],"sources":["docs.graphql.ts"],"sourcesContent":["import gql from 'graphql-tag';\nimport { Component } from '@teambit/component';\nimport { DocsMain } from './docs.main.runtime';\n\nexport function docsSchema(docs: DocsMain) {\n return {\n typeDefs: gql`\n extend type Component {\n description: String\n labels: [String]\n }\n `,\n resolvers: {\n Component: {\n description: (component: Component) => {\n return docs.getDescription(component);\n },\n\n labels: (component: Component) => {\n const doc = docs.getDoc(component);\n return doc?.labels || [];\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;AAAA,SAAAA,YAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,WAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA8B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIvB,SAASG,UAAUA,CAACC,IAAc,EAAE;EACzC,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,SAAS,EAAE;QACTC,WAAW,EAAGC,SAAoB,IAAK;UACrC,OAAON,IAAI,CAACO,cAAc,CAACD,SAAS,CAAC;QACvC,CAAC;QAEDE,MAAM,EAAGF,SAAoB,IAAK;UAChC,MAAMG,GAAG,GAAGT,IAAI,CAACU,MAAM,CAACJ,SAAS,CAAC;UAClC,OAAOG,GAAG,EAAED,MAAM,IAAI,EAAE;QAC1B;MACF;IACF;EACF,CAAC;AACH"}
|
|
@@ -13,14 +13,14 @@ import { Workspace } from '@teambit/workspace';
|
|
|
13
13
|
import { Doc } from '@teambit/docs.entities.doc';
|
|
14
14
|
import { EnvsMain } from '@teambit/envs';
|
|
15
15
|
import { DocReader } from './doc-reader';
|
|
16
|
-
export
|
|
16
|
+
export type ComponentDocs = {
|
|
17
17
|
files: string[];
|
|
18
18
|
component: Component;
|
|
19
19
|
};
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
20
|
+
export type DocProp = {};
|
|
21
|
+
export type DocPropSlot = SlotRegistry<DocProp>;
|
|
22
|
+
export type DocReaderSlot = SlotRegistry<DocReader>;
|
|
23
|
+
export type DocsConfig = {
|
|
24
24
|
/**
|
|
25
25
|
* glob patterns to identify doc files.
|
|
26
26
|
*/
|
|
@@ -58,21 +58,18 @@ export declare class DocsMain {
|
|
|
58
58
|
*/
|
|
59
59
|
getDescription(component: Component): Promise<string>;
|
|
60
60
|
getTemplate(env: Environment): Promise<string | undefined>;
|
|
61
|
-
getDocReader(extension: string): DocReader
|
|
61
|
+
getDocReader(extension: string): DocReader;
|
|
62
62
|
/**
|
|
63
63
|
* compute a doc for a component.
|
|
64
64
|
*/
|
|
65
|
-
computeDoc(component: Component): Promise<Doc
|
|
66
|
-
getDoc(component: IComponent): Doc
|
|
65
|
+
computeDoc(component: Component): Promise<Doc>;
|
|
66
|
+
getDoc(component: IComponent): Doc;
|
|
67
67
|
getPatterns(): string[];
|
|
68
68
|
getComponentDevPatterns(component: Component): {
|
|
69
69
|
name: string;
|
|
70
70
|
pattern: string[];
|
|
71
71
|
};
|
|
72
|
-
getDevPatternToRegister():
|
|
73
|
-
name: string;
|
|
74
|
-
pattern: string[];
|
|
75
|
-
};
|
|
72
|
+
getDevPatternToRegister(): any;
|
|
76
73
|
/**
|
|
77
74
|
* register a new doc reader. this allows to support further
|
|
78
75
|
* documentation file formats.
|
|
@@ -181,7 +181,7 @@ class DocsMain {
|
|
|
181
181
|
*/
|
|
182
182
|
async getDescription(component) {
|
|
183
183
|
const componentDoc = this.getDoc(component);
|
|
184
|
-
const desc = componentDoc
|
|
184
|
+
const desc = componentDoc?.description;
|
|
185
185
|
return desc || '';
|
|
186
186
|
}
|
|
187
187
|
async getTemplate(env) {
|
|
@@ -216,8 +216,7 @@ class DocsMain {
|
|
|
216
216
|
return null;
|
|
217
217
|
}
|
|
218
218
|
getDoc(component) {
|
|
219
|
-
|
|
220
|
-
const docData = (_component$get = component.get(_docs().DocsAspect.id)) === null || _component$get === void 0 || (_component$get = _component$get.data) === null || _component$get === void 0 ? void 0 : _component$get.doc;
|
|
219
|
+
const docData = component.get(_docs().DocsAspect.id)?.data?.doc;
|
|
221
220
|
if (!docData) return null;
|
|
222
221
|
return new (_docsEntities().Doc)(docData.filePath, new (_docsEntities().DocPropList)(docData.props));
|
|
223
222
|
}
|
|
@@ -225,9 +224,8 @@ class DocsMain {
|
|
|
225
224
|
return this.patterns;
|
|
226
225
|
}
|
|
227
226
|
getComponentDevPatterns(component) {
|
|
228
|
-
var _this$workspace;
|
|
229
227
|
const env = this.envs.calculateEnv(component, {
|
|
230
|
-
skipWarnings: !!
|
|
228
|
+
skipWarnings: !!this.workspace?.inInstallContext
|
|
231
229
|
}).env;
|
|
232
230
|
const componentEnvDocsDevPatterns = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];
|
|
233
231
|
const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());
|
|
@@ -253,11 +251,11 @@ class DocsMain {
|
|
|
253
251
|
docs.registerDocReader(new (_defaultDocReader().DefaultDocReader)(pkg, compiler, workspace));
|
|
254
252
|
devFiles.registerDevPattern(docs.getDevPatternToRegister());
|
|
255
253
|
const computeDocsOnLoad = async (component, opts) => {
|
|
256
|
-
if (
|
|
254
|
+
if (opts?.loadDocs === false) return undefined;
|
|
257
255
|
// const docFiles = await docs.computeDocs(component);
|
|
258
256
|
const doc = await docs.computeDoc(component);
|
|
259
257
|
return {
|
|
260
|
-
doc: doc
|
|
258
|
+
doc: doc?.toObject()
|
|
261
259
|
// docFiles
|
|
262
260
|
};
|
|
263
261
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_harmony","data","require","_cli","_logger","_compiler","_component","_scope","_interopRequireDefault","_pkg","_graphql","_preview","_devFiles","_workspace","_docsEntities","_lodash","_envs","_docs","_docs2","_docs3","_defaultDocReader","_exceptions","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","getDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","getTemplate","env","getDocsTemplate","isFunction","undefined","getDocReader","extension","values","find","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","doc","read","contents","err","debug","message","_component$get","docData","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","_this$workspace","calculateEnv","skipWarnings","inInstallContext","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","name","pattern","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","scope","config","createLogger","docs","DefaultDocReader","registerDevPattern","computeDocsOnLoad","opts","loadDocs","toObject","registerOnComponentLoad","registerOnCompAspectReCalc","docsSchema","registerDefinition","DocsPreviewDefinition","exports","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","ScopeAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { isFunction } from 'lodash';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.getDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n return desc || '';\n }\n\n async getTemplate(env: Environment): Promise<string | undefined> {\n if (env.getDocsTemplate && isFunction(env.getDocsTemplate)) {\n return env.getDocsTemplate();\n }\n return undefined;\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: IComponent) {\n const docData = component.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component, { skipWarnings: !!this.workspace?.inInstallContext }).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return { name: 'docs', pattern: componentPatterns };\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ScopeAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs, scope]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain,\n ScopeMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n preview,\n pkg,\n compiler,\n workspace,\n logger,\n devFiles,\n envs,\n docPropSlot,\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n const computeDocsOnLoad = async (component: Component, opts?: ComponentLoadOptions) => {\n if (opts?.loadDocs === false) return undefined;\n // const docFiles = await docs.computeDocs(component);\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n // docFiles\n };\n };\n\n if (workspace) {\n workspace.registerOnComponentLoad(computeDocsOnLoad);\n }\n if (scope) {\n scope.registerOnCompAspectReCalc(computeDocsOnLoad);\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_harmony","data","require","_cli","_logger","_compiler","_component","_scope","_interopRequireDefault","_pkg","_graphql","_preview","_devFiles","_workspace","_docsEntities","_lodash","_envs","_docs","_docs2","_docs3","_defaultDocReader","_exceptions","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","getDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","getTemplate","env","getDocsTemplate","isFunction","undefined","getDocReader","extension","values","find","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","doc","read","contents","err","debug","message","docData","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","skipWarnings","inInstallContext","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","name","pattern","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","scope","config","createLogger","docs","DefaultDocReader","registerDevPattern","computeDocsOnLoad","opts","loadDocs","toObject","registerOnComponentLoad","registerOnCompAspectReCalc","docsSchema","registerDefinition","DocsPreviewDefinition","exports","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","ScopeAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport ScopeAspect, { ScopeMain } from '@teambit/scope';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { isFunction } from 'lodash';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.getDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n return desc || '';\n }\n\n async getTemplate(env: Environment): Promise<string | undefined> {\n if (env.getDocsTemplate && isFunction(env.getDocsTemplate)) {\n return env.getDocsTemplate();\n }\n return undefined;\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: IComponent) {\n const docData = component.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component, { skipWarnings: !!this.workspace?.inInstallContext }).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return { name: 'docs', pattern: componentPatterns };\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ScopeAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs, scope]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain,\n ScopeMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n preview,\n pkg,\n compiler,\n workspace,\n logger,\n devFiles,\n envs,\n docPropSlot,\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n const computeDocsOnLoad = async (component: Component, opts?: ComponentLoadOptions) => {\n if (opts?.loadDocs === false) return undefined;\n // const docFiles = await docs.computeDocs(component);\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n // docFiles\n };\n };\n\n if (workspace) {\n workspace.registerOnComponentLoad(computeDocsOnLoad);\n }\n if (scope) {\n scope.registerOnCompAspectReCalc(computeDocsOnLoad);\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { RenderingContext, PreviewPreview, PreviewModule } from '@teambit/preview';
|
|
3
3
|
import { ComponentID } from '@teambit/component-id';
|
|
4
4
|
import type { Docs } from './docs';
|
|
5
|
-
export
|
|
5
|
+
export type DocsRootProps = {
|
|
6
6
|
Provider: React.ComponentType | undefined;
|
|
7
7
|
componentId: string;
|
|
8
8
|
docs: Docs | undefined;
|
|
@@ -20,7 +20,7 @@ export declare class DocsPreview {
|
|
|
20
20
|
*/
|
|
21
21
|
preview: PreviewPreview);
|
|
22
22
|
render: (componentId: ComponentID, envId: string, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => void;
|
|
23
|
-
selectPreviewModel(componentId: string, modules: PreviewModule): import("@teambit/preview").ModuleFile<any
|
|
23
|
+
selectPreviewModel(componentId: string, modules: PreviewModule): import("@teambit/preview").ModuleFile<any>;
|
|
24
24
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
25
25
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
26
26
|
static provider([preview]: [PreviewPreview]): Promise<DocsPreview>;
|
|
@@ -15,9 +15,9 @@ export declare class DocsUI {
|
|
|
15
15
|
*/
|
|
16
16
|
listTitleBadges(): TitleBadge[];
|
|
17
17
|
private _emptyState?;
|
|
18
|
-
registerEmptyState(emptyState: ComponentType): React.ComponentType
|
|
19
|
-
getEmptyState(): React.ComponentType
|
|
20
|
-
getDocsCompare():
|
|
18
|
+
registerEmptyState(emptyState: ComponentType): React.ComponentType;
|
|
19
|
+
getEmptyState(): React.ComponentType;
|
|
20
|
+
getDocsCompare(): JSX.Element;
|
|
21
21
|
registerOverviewOptions(options: OverviewOptions): void;
|
|
22
22
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
23
23
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
2
|
import type { SlotRegistry } from '@teambit/harmony';
|
|
3
3
|
import { ComponentPreviewProps } from '@teambit/preview.ui.component-preview';
|
|
4
4
|
export declare enum BadgePosition {
|
|
@@ -7,20 +7,20 @@ export declare enum BadgePosition {
|
|
|
7
7
|
Labels = 2,
|
|
8
8
|
Package = 3
|
|
9
9
|
}
|
|
10
|
-
export
|
|
10
|
+
export type TitleBadge = {
|
|
11
11
|
component: ComponentType<any>;
|
|
12
12
|
weight?: number;
|
|
13
13
|
position?: BadgePosition;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
16
|
-
export
|
|
15
|
+
export type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;
|
|
16
|
+
export type OverviewOptions = () => {
|
|
17
17
|
queryParams?: string;
|
|
18
18
|
};
|
|
19
|
-
export
|
|
20
|
-
export
|
|
19
|
+
export type OverviewOptionsSlot = SlotRegistry<OverviewOptions>;
|
|
20
|
+
export type OverviewProps = {
|
|
21
21
|
titleBadges: TitleBadgeSlot;
|
|
22
22
|
overviewOptions: OverviewOptionsSlot;
|
|
23
23
|
previewProps?: Partial<ComponentPreviewProps>;
|
|
24
24
|
getEmptyState?: () => ComponentType | undefined;
|
|
25
25
|
};
|
|
26
|
-
export declare function Overview({ titleBadges, overviewOptions, previewProps, getEmptyState }: OverviewProps):
|
|
26
|
+
export declare function Overview({ titleBadges, overviewOptions, previewProps, getEmptyState }: OverviewProps): JSX.Element;
|
|
@@ -97,20 +97,19 @@ function Overview({
|
|
|
97
97
|
previewProps,
|
|
98
98
|
getEmptyState
|
|
99
99
|
}) {
|
|
100
|
-
var _component$preview, _component$buildStatu, _component$preview2, _component$preview3, _component$preview4, _component$preview5, _component$preview6;
|
|
101
100
|
const component = (0, _react().useContext)(_component().ComponentContext);
|
|
102
101
|
const componentDescriptor = (0, _component().useComponentDescriptor)();
|
|
103
102
|
const overviewProps = (0, _lodash().flatten)(overviewOptions.values())[0];
|
|
104
|
-
const showHeader = !
|
|
103
|
+
const showHeader = !component.preview?.legacyHeader;
|
|
105
104
|
const EmptyState = getEmptyState && getEmptyState();
|
|
106
|
-
const buildFailed =
|
|
107
|
-
const isScaling = Boolean(
|
|
108
|
-
const includesEnvTemplate = Boolean(
|
|
105
|
+
const buildFailed = component.buildStatus?.toLowerCase() !== 'succeed' && component?.host === 'teambit.scope/scope';
|
|
106
|
+
const isScaling = Boolean(component.preview?.isScaling);
|
|
107
|
+
const includesEnvTemplate = Boolean(component.preview?.includesEnvTemplate);
|
|
109
108
|
const defaultLoadingState = _react().default.useMemo(() => {
|
|
110
109
|
return isScaling && !includesEnvTemplate;
|
|
111
110
|
}, [isScaling, includesEnvTemplate]);
|
|
112
111
|
const [isLoading, setLoading] = (0, _react().useState)(defaultLoadingState);
|
|
113
|
-
const iframeQueryParams = `skipIncludes=${
|
|
112
|
+
const iframeQueryParams = `skipIncludes=${component.preview?.skipIncludes || 'false'}`;
|
|
114
113
|
const overviewPropsValues = overviewProps && overviewProps();
|
|
115
114
|
|
|
116
115
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -122,7 +121,7 @@ function Overview({
|
|
|
122
121
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
123
122
|
const onPreviewLoad = _react().default.useCallback((e, props) => {
|
|
124
123
|
setLoading(false);
|
|
125
|
-
onLoad
|
|
124
|
+
onLoad?.(e, props);
|
|
126
125
|
}, [onLoad]);
|
|
127
126
|
_react().default.useEffect(() => {
|
|
128
127
|
if (!isLoading && defaultLoadingState) setLoading(true);
|
|
@@ -149,7 +148,7 @@ function Overview({
|
|
|
149
148
|
onLoad: onPreviewLoad,
|
|
150
149
|
previewName: "overview",
|
|
151
150
|
pubsub: true,
|
|
152
|
-
queryParams: [iframeQueryParams,
|
|
151
|
+
queryParams: [iframeQueryParams, overviewPropsValues?.queryParams || ''],
|
|
153
152
|
viewport: null,
|
|
154
153
|
fullContentHeight: true,
|
|
155
154
|
disableScroll: true
|
|
@@ -160,10 +159,10 @@ function Overview({
|
|
|
160
159
|
height: '100%',
|
|
161
160
|
minHeight: !isScaling ? 500 : undefined
|
|
162
161
|
}
|
|
163
|
-
})),
|
|
162
|
+
})), component.preview?.skipIncludes && /*#__PURE__*/_react().default.createElement(_compositionsPanels().CompositionGallery, {
|
|
164
163
|
isLoading: isLoading,
|
|
165
164
|
component: component
|
|
166
|
-
}),
|
|
165
|
+
}), component.preview?.skipIncludes && /*#__PURE__*/_react().default.createElement(_reactUiDocs().PropertiesTable, {
|
|
167
166
|
className: _overviewModule().default.overviewPropsTable,
|
|
168
167
|
componentId: component.id.toString()
|
|
169
168
|
})), buildFailed && EmptyState && /*#__PURE__*/_react().default.createElement(EmptyState, null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_lodash","_reactUiDocs","_component","_previewUi","_componentUi","_compositionsPanels","_readmeSkeleton","_overviewModule","_excluded","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","BadgePosition","exports","Overview","titleBadges","overviewOptions","previewProps","getEmptyState","_component$preview","_component$buildStatu","_component$preview2","_component$preview3","_component$preview4","_component$preview5","_component$preview6","component","useContext","ComponentContext","componentDescriptor","useComponentDescriptor","overviewProps","flatten","values","showHeader","preview","legacyHeader","EmptyState","buildFailed","buildStatus","toLowerCase","host","isScaling","Boolean","includesEnvTemplate","defaultLoadingState","React","useMemo","isLoading","setLoading","useState","iframeQueryParams","skipIncludes","overviewPropsValues","_ref","onLoad","style","rest","onPreviewLoad","useCallback","props","useEffect","id","toString","createElement","className","styles","overviewWrapper","ComponentOverview","classNames","componentOverviewBlock","legacyPreview","displayName","version","abstract","description","labels","packageName","readme","ReadmeSkeleton","CompositionGallerySkeleton","compositionsLength","Math","min","compositions","ComponentPreview","previewName","pubsub","queryParams","viewport","fullContentHeight","disableScroll","width","height","minHeight","undefined","CompositionGallery","PropertiesTable","overviewPropsTable","componentId"],"sources":["overview.tsx"],"sourcesContent":["import React, { useContext, ComponentType, useState } from 'react';\nimport classNames from 'classnames';\nimport { flatten } from 'lodash';\n// import { Icon } from '@teambit/design.elements.icon';\nimport { PropertiesTable } from '@teambit/react.ui.docs.properties-table';\n// import { LinkedHeading } from '@teambit/documenter.ui.linked-heading';\nimport { ComponentContext, useComponentDescriptor } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { ComponentPreview, ComponentPreviewProps } from '@teambit/preview.ui.component-preview';\n// import { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { ComponentOverview } from '@teambit/component.ui.component-meta';\nimport { CompositionGallery, CompositionGallerySkeleton } from '@teambit/compositions.panels.composition-gallery';\nimport { ReadmeSkeleton } from './readme-skeleton';\nimport styles from './overview.module.scss';\n\nexport enum BadgePosition {\n Title,\n SubTitle,\n Labels,\n Package,\n}\n\nexport type TitleBadge = {\n component: ComponentType<any>;\n weight?: number;\n position?: BadgePosition;\n};\n\nexport type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;\n\nexport type OverviewOptions = () => { queryParams?: string };\n\nexport type OverviewOptionsSlot = SlotRegistry<OverviewOptions>;\n\nexport type OverviewProps = {\n titleBadges: TitleBadgeSlot;\n overviewOptions: OverviewOptionsSlot;\n previewProps?: Partial<ComponentPreviewProps>;\n getEmptyState?: () => ComponentType | undefined;\n};\n\nexport function Overview({ titleBadges, overviewOptions, previewProps, getEmptyState }: OverviewProps) {\n const component = useContext(ComponentContext);\n const componentDescriptor = useComponentDescriptor();\n const overviewProps = flatten(overviewOptions.values())[0];\n const showHeader = !component.preview?.legacyHeader;\n const EmptyState = getEmptyState && getEmptyState();\n const buildFailed = component.buildStatus?.toLowerCase() !== 'succeed' && component?.host === 'teambit.scope/scope';\n const isScaling = Boolean(component.preview?.isScaling);\n const includesEnvTemplate = Boolean(component.preview?.includesEnvTemplate);\n const defaultLoadingState = React.useMemo(() => {\n return isScaling && !includesEnvTemplate;\n }, [isScaling, includesEnvTemplate]);\n\n const [isLoading, setLoading] = useState(defaultLoadingState);\n\n const iframeQueryParams = `skipIncludes=${component.preview?.skipIncludes || 'false'}`;\n\n const overviewPropsValues = overviewProps && overviewProps();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onLoad, style, ...rest } = previewProps || {};\n\n const onPreviewLoad = React.useCallback(\n (e, props) => {\n setLoading(false);\n onLoad?.(e, props);\n },\n [onLoad]\n );\n\n React.useEffect(() => {\n if (!isLoading && defaultLoadingState) setLoading(true);\n if (isLoading && !defaultLoadingState) setLoading(false);\n }, [component.id.toString(), defaultLoadingState]);\n\n return (\n <div className={styles.overviewWrapper} key={`${component.id.toString()}`}>\n {showHeader && (\n <ComponentOverview\n className={classNames(styles.componentOverviewBlock, !isScaling && styles.legacyPreview)}\n displayName={component.displayName}\n version={component.version}\n abstract={component.description}\n labels={component.labels}\n packageName={component.packageName}\n titleBadges={flatten(titleBadges.values())}\n componentDescriptor={componentDescriptor}\n component={component}\n />\n )}\n {!buildFailed && (\n <div className={styles.readme}>\n {isLoading && (\n <ReadmeSkeleton>\n <CompositionGallerySkeleton compositionsLength={Math.min(component.compositions.length, 3)} />\n </ReadmeSkeleton>\n )}\n <ComponentPreview\n onLoad={onPreviewLoad}\n previewName=\"overview\"\n pubsub={true}\n queryParams={[iframeQueryParams, overviewPropsValues?.queryParams || '']}\n viewport={null}\n fullContentHeight\n disableScroll={true}\n {...rest}\n component={component}\n style={{ width: '100%', height: '100%', minHeight: !isScaling ? 500 : undefined }}\n />\n {component.preview?.skipIncludes && <CompositionGallery isLoading={isLoading} component={component} />}\n {component.preview?.skipIncludes && (\n <PropertiesTable className={styles.overviewPropsTable} componentId={component.id.toString()} />\n )}\n </div>\n )}\n {buildFailed && EmptyState && <EmptyState />}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_lodash","_reactUiDocs","_component","_previewUi","_componentUi","_compositionsPanels","_readmeSkeleton","_overviewModule","_excluded","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","BadgePosition","exports","Overview","titleBadges","overviewOptions","previewProps","getEmptyState","component","useContext","ComponentContext","componentDescriptor","useComponentDescriptor","overviewProps","flatten","values","showHeader","preview","legacyHeader","EmptyState","buildFailed","buildStatus","toLowerCase","host","isScaling","Boolean","includesEnvTemplate","defaultLoadingState","React","useMemo","isLoading","setLoading","useState","iframeQueryParams","skipIncludes","overviewPropsValues","_ref","onLoad","style","rest","onPreviewLoad","useCallback","props","useEffect","id","toString","createElement","className","styles","overviewWrapper","ComponentOverview","classNames","componentOverviewBlock","legacyPreview","displayName","version","abstract","description","labels","packageName","readme","ReadmeSkeleton","CompositionGallerySkeleton","compositionsLength","Math","min","compositions","ComponentPreview","previewName","pubsub","queryParams","viewport","fullContentHeight","disableScroll","width","height","minHeight","undefined","CompositionGallery","PropertiesTable","overviewPropsTable","componentId"],"sources":["overview.tsx"],"sourcesContent":["import React, { useContext, ComponentType, useState } from 'react';\nimport classNames from 'classnames';\nimport { flatten } from 'lodash';\n// import { Icon } from '@teambit/design.elements.icon';\nimport { PropertiesTable } from '@teambit/react.ui.docs.properties-table';\n// import { LinkedHeading } from '@teambit/documenter.ui.linked-heading';\nimport { ComponentContext, useComponentDescriptor } from '@teambit/component';\nimport type { SlotRegistry } from '@teambit/harmony';\nimport { ComponentPreview, ComponentPreviewProps } from '@teambit/preview.ui.component-preview';\n// import { StatusMessageCard } from '@teambit/design.ui.surfaces.status-message-card';\nimport { ComponentOverview } from '@teambit/component.ui.component-meta';\nimport { CompositionGallery, CompositionGallerySkeleton } from '@teambit/compositions.panels.composition-gallery';\nimport { ReadmeSkeleton } from './readme-skeleton';\nimport styles from './overview.module.scss';\n\nexport enum BadgePosition {\n Title,\n SubTitle,\n Labels,\n Package,\n}\n\nexport type TitleBadge = {\n component: ComponentType<any>;\n weight?: number;\n position?: BadgePosition;\n};\n\nexport type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;\n\nexport type OverviewOptions = () => { queryParams?: string };\n\nexport type OverviewOptionsSlot = SlotRegistry<OverviewOptions>;\n\nexport type OverviewProps = {\n titleBadges: TitleBadgeSlot;\n overviewOptions: OverviewOptionsSlot;\n previewProps?: Partial<ComponentPreviewProps>;\n getEmptyState?: () => ComponentType | undefined;\n};\n\nexport function Overview({ titleBadges, overviewOptions, previewProps, getEmptyState }: OverviewProps) {\n const component = useContext(ComponentContext);\n const componentDescriptor = useComponentDescriptor();\n const overviewProps = flatten(overviewOptions.values())[0];\n const showHeader = !component.preview?.legacyHeader;\n const EmptyState = getEmptyState && getEmptyState();\n const buildFailed = component.buildStatus?.toLowerCase() !== 'succeed' && component?.host === 'teambit.scope/scope';\n const isScaling = Boolean(component.preview?.isScaling);\n const includesEnvTemplate = Boolean(component.preview?.includesEnvTemplate);\n const defaultLoadingState = React.useMemo(() => {\n return isScaling && !includesEnvTemplate;\n }, [isScaling, includesEnvTemplate]);\n\n const [isLoading, setLoading] = useState(defaultLoadingState);\n\n const iframeQueryParams = `skipIncludes=${component.preview?.skipIncludes || 'false'}`;\n\n const overviewPropsValues = overviewProps && overviewProps();\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onLoad, style, ...rest } = previewProps || {};\n\n const onPreviewLoad = React.useCallback(\n (e, props) => {\n setLoading(false);\n onLoad?.(e, props);\n },\n [onLoad]\n );\n\n React.useEffect(() => {\n if (!isLoading && defaultLoadingState) setLoading(true);\n if (isLoading && !defaultLoadingState) setLoading(false);\n }, [component.id.toString(), defaultLoadingState]);\n\n return (\n <div className={styles.overviewWrapper} key={`${component.id.toString()}`}>\n {showHeader && (\n <ComponentOverview\n className={classNames(styles.componentOverviewBlock, !isScaling && styles.legacyPreview)}\n displayName={component.displayName}\n version={component.version}\n abstract={component.description}\n labels={component.labels}\n packageName={component.packageName}\n titleBadges={flatten(titleBadges.values())}\n componentDescriptor={componentDescriptor}\n component={component}\n />\n )}\n {!buildFailed && (\n <div className={styles.readme}>\n {isLoading && (\n <ReadmeSkeleton>\n <CompositionGallerySkeleton compositionsLength={Math.min(component.compositions.length, 3)} />\n </ReadmeSkeleton>\n )}\n <ComponentPreview\n onLoad={onPreviewLoad}\n previewName=\"overview\"\n pubsub={true}\n queryParams={[iframeQueryParams, overviewPropsValues?.queryParams || '']}\n viewport={null}\n fullContentHeight\n disableScroll={true}\n {...rest}\n component={component}\n style={{ width: '100%', height: '100%', minHeight: !isScaling ? 500 : undefined }}\n />\n {component.preview?.skipIncludes && <CompositionGallery isLoading={isLoading} component={component} />}\n {component.preview?.skipIncludes && (\n <PropertiesTable className={styles.overviewPropsTable} componentId={component.id.toString()} />\n )}\n </div>\n )}\n {buildFailed && EmptyState && <EmptyState />}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { Section } from '@teambit/component';
|
|
3
3
|
import { TitleBadgeSlot, OverviewOptionsSlot } from './overview';
|
|
4
4
|
import { DocsUI } from './docs.ui.runtime';
|
|
@@ -21,7 +21,7 @@ export declare class OverviewSection implements Section {
|
|
|
21
21
|
};
|
|
22
22
|
route: {
|
|
23
23
|
index: boolean;
|
|
24
|
-
element:
|
|
24
|
+
element: JSX.Element;
|
|
25
25
|
};
|
|
26
26
|
order: number;
|
|
27
27
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@1.0.108/dist/docs.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@1.0.108/dist/docs.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/doc-module.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class DocModule {
|
|
2
|
+
constructor(
|
|
3
|
+
readonly path: string,
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* original doc module.
|
|
7
|
+
*/
|
|
8
|
+
readonly module: any
|
|
9
|
+
) {}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* get the abstract.
|
|
13
|
+
*/
|
|
14
|
+
get abstract() {
|
|
15
|
+
return this.module.abstract || this.module.default?.abstract;
|
|
16
|
+
}
|
|
17
|
+
}
|
package/doc-reader.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Component } from '@teambit/component';
|
|
2
|
+
import { Doc } from '@teambit/docs.entities.doc';
|
|
3
|
+
|
|
4
|
+
export interface DocReader {
|
|
5
|
+
/**
|
|
6
|
+
* read a component doc.
|
|
7
|
+
* @TODO refactor to virtual-file component after @david completes.
|
|
8
|
+
*/
|
|
9
|
+
read(path: string, contents: Buffer, component: Component): Promise<Doc>;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* determine which file formats are supported by the doc reader.
|
|
13
|
+
*/
|
|
14
|
+
isFormatSupported(ext: string): boolean;
|
|
15
|
+
}
|
package/docs.aspect.ts
ADDED
package/docs.graphql.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import gql from 'graphql-tag';
|
|
2
|
+
import { Component } from '@teambit/component';
|
|
3
|
+
import { DocsMain } from './docs.main.runtime';
|
|
4
|
+
|
|
5
|
+
export function docsSchema(docs: DocsMain) {
|
|
6
|
+
return {
|
|
7
|
+
typeDefs: gql`
|
|
8
|
+
extend type Component {
|
|
9
|
+
description: String
|
|
10
|
+
labels: [String]
|
|
11
|
+
}
|
|
12
|
+
`,
|
|
13
|
+
resolvers: {
|
|
14
|
+
Component: {
|
|
15
|
+
description: (component: Component) => {
|
|
16
|
+
return docs.getDescription(component);
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
labels: (component: Component) => {
|
|
20
|
+
const doc = docs.getDoc(component);
|
|
21
|
+
return doc?.labels || [];
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import { Slot, SlotRegistry } from '@teambit/harmony';
|
|
2
|
+
import { MainRuntime } from '@teambit/cli';
|
|
3
|
+
import { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';
|
|
4
|
+
import { CompilerAspect, CompilerMain } from '@teambit/compiler';
|
|
5
|
+
import { Component, ComponentMap, IComponent } from '@teambit/component';
|
|
6
|
+
import ScopeAspect, { ScopeMain } from '@teambit/scope';
|
|
7
|
+
import { PkgAspect, PkgMain } from '@teambit/pkg';
|
|
8
|
+
import type { Environment } from '@teambit/envs';
|
|
9
|
+
import { GraphqlAspect, GraphqlMain } from '@teambit/graphql';
|
|
10
|
+
import { PreviewAspect, PreviewMain } from '@teambit/preview';
|
|
11
|
+
import DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';
|
|
12
|
+
import { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';
|
|
13
|
+
import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
|
|
14
|
+
import { Workspace, WorkspaceAspect } from '@teambit/workspace';
|
|
15
|
+
import { Doc, DocPropList } from '@teambit/docs.entities.doc';
|
|
16
|
+
import { isFunction } from 'lodash';
|
|
17
|
+
import { EnvsAspect, EnvsMain } from '@teambit/envs';
|
|
18
|
+
import { DocsAspect } from './docs.aspect';
|
|
19
|
+
import { DocsPreviewDefinition } from './docs.preview-definition';
|
|
20
|
+
import { docsSchema } from './docs.graphql';
|
|
21
|
+
import { DocReader } from './doc-reader';
|
|
22
|
+
import { DefaultDocReader } from './default-doc-reader';
|
|
23
|
+
import { FileExtensionNotSupported } from './exceptions';
|
|
24
|
+
|
|
25
|
+
export type ComponentDocs = {
|
|
26
|
+
files: string[];
|
|
27
|
+
component: Component;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type DocProp = {};
|
|
31
|
+
|
|
32
|
+
export type DocPropSlot = SlotRegistry<DocProp>;
|
|
33
|
+
|
|
34
|
+
export type DocReaderSlot = SlotRegistry<DocReader>;
|
|
35
|
+
|
|
36
|
+
export type DocsConfig = {
|
|
37
|
+
/**
|
|
38
|
+
* glob patterns to identify doc files.
|
|
39
|
+
*/
|
|
40
|
+
patterns: string[];
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* the component documentation extension.
|
|
45
|
+
*/
|
|
46
|
+
export class DocsMain {
|
|
47
|
+
constructor(
|
|
48
|
+
private patterns: string[],
|
|
49
|
+
/**
|
|
50
|
+
* envs extension.
|
|
51
|
+
*/
|
|
52
|
+
private preview: PreviewMain,
|
|
53
|
+
|
|
54
|
+
private pkg: PkgMain,
|
|
55
|
+
|
|
56
|
+
private compiler: CompilerMain,
|
|
57
|
+
|
|
58
|
+
private workspace: Workspace,
|
|
59
|
+
|
|
60
|
+
private logger: Logger,
|
|
61
|
+
|
|
62
|
+
private devFiles: DevFilesMain,
|
|
63
|
+
|
|
64
|
+
private envs: EnvsMain,
|
|
65
|
+
|
|
66
|
+
private docPropSlot: DocPropSlot,
|
|
67
|
+
|
|
68
|
+
private docReaderSlot: DocReaderSlot
|
|
69
|
+
) {}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* returns an array of doc file paths for a set of components.
|
|
73
|
+
*/
|
|
74
|
+
getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {
|
|
75
|
+
return ComponentMap.as<AbstractVinyl[]>(components, (component) => {
|
|
76
|
+
return this.getDocsFiles(component);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
getDocsFiles(component: Component): AbstractVinyl[] {
|
|
81
|
+
const devFiles = this.devFiles.getDevFiles(component);
|
|
82
|
+
const docFiles = devFiles.get(DocsAspect.id);
|
|
83
|
+
return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* compute the description of the component from its source code and docs file.
|
|
88
|
+
*/
|
|
89
|
+
async getDescription(component: Component): Promise<string> {
|
|
90
|
+
const componentDoc = this.getDoc(component);
|
|
91
|
+
const desc = componentDoc?.description;
|
|
92
|
+
return desc || '';
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async getTemplate(env: Environment): Promise<string | undefined> {
|
|
96
|
+
if (env.getDocsTemplate && isFunction(env.getDocsTemplate)) {
|
|
97
|
+
return env.getDocsTemplate();
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
getDocReader(extension: string) {
|
|
103
|
+
return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* compute a doc for a component.
|
|
108
|
+
*/
|
|
109
|
+
async computeDoc(component: Component) {
|
|
110
|
+
const docFiles = this.getDocsFiles(component);
|
|
111
|
+
if (docFiles.length) {
|
|
112
|
+
// currently taking the the first docs file found with an abstract. (we support only one)
|
|
113
|
+
const docFile = docFiles[0];
|
|
114
|
+
|
|
115
|
+
try {
|
|
116
|
+
const docReader = this.getDocReader(docFile.extname);
|
|
117
|
+
if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);
|
|
118
|
+
const doc = await docReader.read(docFile.relative, docFile.contents, component);
|
|
119
|
+
return doc;
|
|
120
|
+
} catch (err: any) {
|
|
121
|
+
// it's ok to fail here.
|
|
122
|
+
this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
getDoc(component: IComponent) {
|
|
131
|
+
const docData = component.get(DocsAspect.id)?.data?.doc;
|
|
132
|
+
if (!docData) return null;
|
|
133
|
+
return new Doc(docData.filePath, new DocPropList(docData.props));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
getPatterns() {
|
|
137
|
+
return this.patterns;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
getComponentDevPatterns(component: Component) {
|
|
141
|
+
const env = this.envs.calculateEnv(component, { skipWarnings: !!this.workspace?.inInstallContext }).env;
|
|
142
|
+
const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];
|
|
143
|
+
const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());
|
|
144
|
+
return { name: 'docs', pattern: componentPatterns };
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getDevPatternToRegister() {
|
|
148
|
+
return this.getComponentDevPatterns.bind(this);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* register a new doc reader. this allows to support further
|
|
152
|
+
* documentation file formats.
|
|
153
|
+
*/
|
|
154
|
+
registerDocReader(docReader: DocReader) {
|
|
155
|
+
this.docReaderSlot.register(docReader);
|
|
156
|
+
return this;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];
|
|
160
|
+
|
|
161
|
+
static runtime = MainRuntime;
|
|
162
|
+
static dependencies = [
|
|
163
|
+
PreviewAspect,
|
|
164
|
+
GraphqlAspect,
|
|
165
|
+
WorkspaceAspect,
|
|
166
|
+
PkgAspect,
|
|
167
|
+
CompilerAspect,
|
|
168
|
+
LoggerAspect,
|
|
169
|
+
DevFilesAspect,
|
|
170
|
+
EnvsAspect,
|
|
171
|
+
ScopeAspect,
|
|
172
|
+
];
|
|
173
|
+
|
|
174
|
+
static defaultConfig = {
|
|
175
|
+
patterns: ['**/*.docs.*'],
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
static async provider(
|
|
179
|
+
[preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs, scope]: [
|
|
180
|
+
PreviewMain,
|
|
181
|
+
GraphqlMain,
|
|
182
|
+
Workspace,
|
|
183
|
+
PkgMain,
|
|
184
|
+
CompilerMain,
|
|
185
|
+
LoggerMain,
|
|
186
|
+
DevFilesMain,
|
|
187
|
+
EnvsMain,
|
|
188
|
+
ScopeMain
|
|
189
|
+
],
|
|
190
|
+
config: DocsConfig,
|
|
191
|
+
[docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]
|
|
192
|
+
) {
|
|
193
|
+
const logger = loggerAspect.createLogger(DocsAspect.id);
|
|
194
|
+
const docs = new DocsMain(
|
|
195
|
+
config.patterns,
|
|
196
|
+
preview,
|
|
197
|
+
pkg,
|
|
198
|
+
compiler,
|
|
199
|
+
workspace,
|
|
200
|
+
logger,
|
|
201
|
+
devFiles,
|
|
202
|
+
envs,
|
|
203
|
+
docPropSlot,
|
|
204
|
+
docReaderSlot
|
|
205
|
+
);
|
|
206
|
+
docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));
|
|
207
|
+
devFiles.registerDevPattern(docs.getDevPatternToRegister());
|
|
208
|
+
|
|
209
|
+
const computeDocsOnLoad = async (component: Component, opts?: ComponentLoadOptions) => {
|
|
210
|
+
if (opts?.loadDocs === false) return undefined;
|
|
211
|
+
// const docFiles = await docs.computeDocs(component);
|
|
212
|
+
const doc = await docs.computeDoc(component);
|
|
213
|
+
|
|
214
|
+
return {
|
|
215
|
+
doc: doc?.toObject(),
|
|
216
|
+
// docFiles
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
if (workspace) {
|
|
221
|
+
workspace.registerOnComponentLoad(computeDocsOnLoad);
|
|
222
|
+
}
|
|
223
|
+
if (scope) {
|
|
224
|
+
scope.registerOnCompAspectReCalc(computeDocsOnLoad);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
graphql.register(docsSchema(docs));
|
|
228
|
+
|
|
229
|
+
preview.registerDefinition(new DocsPreviewDefinition(docs));
|
|
230
|
+
return docs;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
DocsAspect.addRuntime(DocsMain);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Component, ComponentMap } from '@teambit/component';
|
|
2
|
+
import type { Environment, ExecutionContext } from '@teambit/envs';
|
|
3
|
+
import { PreviewDefinition } from '@teambit/preview';
|
|
4
|
+
import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
|
|
5
|
+
|
|
6
|
+
import { DocsMain } from './docs.main.runtime';
|
|
7
|
+
|
|
8
|
+
export class DocsPreviewDefinition implements PreviewDefinition {
|
|
9
|
+
readonly prefix = 'overview';
|
|
10
|
+
readonly include = ['compositions'];
|
|
11
|
+
readonly includePeers = true;
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
/**
|
|
15
|
+
* docs extension.
|
|
16
|
+
*/
|
|
17
|
+
private docs: DocsMain
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* application root
|
|
22
|
+
*/
|
|
23
|
+
async renderTemplatePath(context: ExecutionContext): Promise<string | undefined> {
|
|
24
|
+
return this.renderTemplatePathByEnv(context.env);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async renderTemplatePathByEnv(env: Environment): Promise<string | undefined> {
|
|
28
|
+
return this.docs.getTemplate(env);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* files to load.
|
|
33
|
+
*/
|
|
34
|
+
async getModuleMap(components: Component[]): Promise<ComponentMap<AbstractVinyl[]>> {
|
|
35
|
+
const map = this.docs.getDocsMap(components);
|
|
36
|
+
return map;
|
|
37
|
+
}
|
|
38
|
+
}
|
package/docs.service.ts
ADDED
package/docs.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { ReactElement } from 'react';
|
|
2
|
+
|
|
3
|
+
export type Example = {
|
|
4
|
+
title?: string;
|
|
5
|
+
description?: ReactElement;
|
|
6
|
+
scope?: { [key: string]: any };
|
|
7
|
+
jsx?: JSX.Element;
|
|
8
|
+
code: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type Docs = {
|
|
12
|
+
/**
|
|
13
|
+
* default is the docs content.
|
|
14
|
+
*/
|
|
15
|
+
default: React.ComponentType;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* component abstract.
|
|
19
|
+
*/
|
|
20
|
+
abstract: string;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* array of labels.
|
|
24
|
+
*/
|
|
25
|
+
labels: string[];
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated
|
|
29
|
+
*/
|
|
30
|
+
examples: Example[];
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const defaultDocs: Docs = {
|
|
34
|
+
default: () => null,
|
|
35
|
+
labels: [],
|
|
36
|
+
abstract: '',
|
|
37
|
+
examples: [],
|
|
38
|
+
};
|
package/index.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DocsAspect } from './docs.aspect';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Doc entity.
|
|
5
|
+
* @deprecated - please dont use this. use directly from @teambit/docs.entities.doc.
|
|
6
|
+
*/
|
|
7
|
+
export { Doc, DocProp, DocPropList } from '@teambit/docs.entities.doc';
|
|
8
|
+
|
|
9
|
+
export type { DocsMain } from './docs.main.runtime';
|
|
10
|
+
export type { DocsUI } from './docs.ui.runtime';
|
|
11
|
+
export type { DocsPreview, DocsRootProps } from './docs.preview.runtime';
|
|
12
|
+
export type { DocReader } from './doc-reader';
|
|
13
|
+
export type { Docs, Example } from './docs';
|
|
14
|
+
export { defaultDocs } from './docs';
|
|
15
|
+
|
|
16
|
+
export type { TitleBadgeSlot, TitleBadge, OverviewOptionsSlot, OverviewOptions } from './overview';
|
|
17
|
+
export { BadgePosition } from './overview';
|
|
18
|
+
export { Overview } from './overview';
|
|
19
|
+
|
|
20
|
+
export { DocsAspect };
|
|
21
|
+
export default DocsAspect;
|
package/package.json
CHANGED
|
@@ -1,59 +1,57 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/docs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.108",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/docs/docs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.docs",
|
|
8
8
|
"name": "docs",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.108"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"graphql-tag": "2.12.1",
|
|
13
13
|
"lodash": "4.17.21",
|
|
14
14
|
"classnames": "2.2.6",
|
|
15
|
-
"core-js": "^3.0.0",
|
|
16
|
-
"@babel/runtime": "7.20.0",
|
|
17
15
|
"@teambit/docs.entities.doc": "0.0.12",
|
|
18
16
|
"@teambit/harmony": "0.4.6",
|
|
19
|
-
"@teambit/component-id": "1.2.0",
|
|
20
17
|
"@teambit/docs.ui.overview-compare-section": "0.0.100",
|
|
21
18
|
"@teambit/docs.ui.overview-compare": "1.0.10",
|
|
22
19
|
"@teambit/component.ui.component-meta": "0.0.358",
|
|
23
20
|
"@teambit/base-ui.loaders.skeleton": "1.0.1",
|
|
24
|
-
"@teambit/compiler": "1.0.
|
|
25
|
-
"@teambit/component": "1.0.
|
|
26
|
-
"@teambit/pkg": "1.0.
|
|
27
|
-
"@teambit/workspace": "1.0.
|
|
28
|
-
"@teambit/cli": "0.0.
|
|
29
|
-
"@teambit/dev-files": "1.0.
|
|
30
|
-
"@teambit/envs": "1.0.
|
|
31
|
-
"@teambit/graphql": "1.0.
|
|
32
|
-
"@teambit/logger": "0.0.
|
|
33
|
-
"@teambit/preview": "1.0.
|
|
34
|
-
"@teambit/scope": "1.0.
|
|
35
|
-
"@teambit/component-compare": "1.0.
|
|
36
|
-
"@teambit/ui": "1.0.
|
|
37
|
-
"@teambit/pubsub": "1.0.
|
|
38
|
-
"@teambit/compositions.panels.composition-gallery": "0.0.
|
|
39
|
-
"@teambit/
|
|
40
|
-
"@teambit/
|
|
21
|
+
"@teambit/compiler": "1.0.108",
|
|
22
|
+
"@teambit/component": "1.0.108",
|
|
23
|
+
"@teambit/pkg": "1.0.108",
|
|
24
|
+
"@teambit/workspace": "1.0.108",
|
|
25
|
+
"@teambit/cli": "0.0.840",
|
|
26
|
+
"@teambit/dev-files": "1.0.108",
|
|
27
|
+
"@teambit/envs": "1.0.108",
|
|
28
|
+
"@teambit/graphql": "1.0.108",
|
|
29
|
+
"@teambit/logger": "0.0.933",
|
|
30
|
+
"@teambit/preview": "1.0.108",
|
|
31
|
+
"@teambit/scope": "1.0.108",
|
|
32
|
+
"@teambit/component-compare": "1.0.108",
|
|
33
|
+
"@teambit/ui": "1.0.108",
|
|
34
|
+
"@teambit/pubsub": "1.0.108",
|
|
35
|
+
"@teambit/compositions.panels.composition-gallery": "0.0.202",
|
|
36
|
+
"@teambit/react.ui.docs.properties-table": "0.0.22",
|
|
37
|
+
"@teambit/preview.ui.component-preview": "1.0.3"
|
|
41
38
|
},
|
|
42
39
|
"devDependencies": {
|
|
43
|
-
"@types/react-dom": "^17.0.5",
|
|
44
|
-
"@types/react": "^17.0.8",
|
|
45
40
|
"@types/lodash": "4.14.165",
|
|
46
41
|
"@types/classnames": "2.2.11",
|
|
47
42
|
"@types/mocha": "9.1.0",
|
|
48
|
-
"@types/
|
|
49
|
-
"@types/
|
|
50
|
-
"@
|
|
51
|
-
"@teambit/
|
|
43
|
+
"@types/jest": "^29.2.2",
|
|
44
|
+
"@types/testing-library__jest-dom": "^5.9.5",
|
|
45
|
+
"@teambit/docs.content.docs-overview": "1.95.9",
|
|
46
|
+
"@teambit/component-id": "1.2.0",
|
|
47
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.13"
|
|
52
48
|
},
|
|
53
49
|
"peerDependencies": {
|
|
54
|
-
"
|
|
55
|
-
"react": "^
|
|
56
|
-
"react
|
|
50
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
51
|
+
"react-dom": "^17.0.0 || ^18.0.0",
|
|
52
|
+
"@types/react": "^18.2.12",
|
|
53
|
+
"@types/react-dom": "^18.2.5",
|
|
54
|
+
"@teambit/legacy": "1.0.624"
|
|
57
55
|
},
|
|
58
56
|
"license": "Apache-2.0",
|
|
59
57
|
"optionalDependencies": {},
|
|
@@ -67,7 +65,7 @@
|
|
|
67
65
|
},
|
|
68
66
|
"private": false,
|
|
69
67
|
"engines": {
|
|
70
|
-
"node": ">=
|
|
68
|
+
"node": ">=16.0.0"
|
|
71
69
|
},
|
|
72
70
|
"repository": {
|
|
73
71
|
"type": "git",
|
|
@@ -76,12 +74,9 @@
|
|
|
76
74
|
"keywords": [
|
|
77
75
|
"bit",
|
|
78
76
|
"bit-aspect",
|
|
77
|
+
"bit-core-aspect",
|
|
79
78
|
"components",
|
|
80
79
|
"collaboration",
|
|
81
|
-
"web"
|
|
82
|
-
"react",
|
|
83
|
-
"react-components",
|
|
84
|
-
"angular",
|
|
85
|
-
"angular-components"
|
|
80
|
+
"web"
|
|
86
81
|
]
|
|
87
82
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,38 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"lib": [
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"DOM.Iterable",
|
|
8
|
-
"ScriptHost"
|
|
4
|
+
"esnext",
|
|
5
|
+
"dom",
|
|
6
|
+
"dom.Iterable"
|
|
9
7
|
],
|
|
10
|
-
"target": "
|
|
11
|
-
"module": "
|
|
12
|
-
"jsx": "react",
|
|
13
|
-
"allowJs": true,
|
|
14
|
-
"composite": true,
|
|
8
|
+
"target": "es2020",
|
|
9
|
+
"module": "es2020",
|
|
10
|
+
"jsx": "react-jsx",
|
|
15
11
|
"declaration": true,
|
|
16
12
|
"sourceMap": true,
|
|
17
|
-
"skipLibCheck": true,
|
|
18
13
|
"experimentalDecorators": true,
|
|
19
|
-
"
|
|
14
|
+
"skipLibCheck": true,
|
|
20
15
|
"moduleResolution": "node",
|
|
21
16
|
"esModuleInterop": true,
|
|
22
|
-
"rootDir": ".",
|
|
23
17
|
"resolveJsonModule": true,
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"strictPropertyInitialization": false,
|
|
28
|
-
"strict": true,
|
|
29
|
-
"noImplicitAny": false,
|
|
30
|
-
"preserveConstEnums": true
|
|
18
|
+
"allowJs": true,
|
|
19
|
+
"outDir": "dist",
|
|
20
|
+
"emitDeclarationOnly": true
|
|
31
21
|
},
|
|
32
22
|
"exclude": [
|
|
23
|
+
"artifacts",
|
|
24
|
+
"public",
|
|
33
25
|
"dist",
|
|
26
|
+
"node_modules",
|
|
27
|
+
"package.json",
|
|
34
28
|
"esm.mjs",
|
|
35
|
-
"
|
|
29
|
+
"**/*.cjs",
|
|
30
|
+
"./dist"
|
|
36
31
|
],
|
|
37
32
|
"include": [
|
|
38
33
|
"**/*",
|
package/types/asset.d.ts
CHANGED
|
@@ -5,12 +5,12 @@ declare module '*.png' {
|
|
|
5
5
|
declare module '*.svg' {
|
|
6
6
|
import type { FunctionComponent, SVGProps } from 'react';
|
|
7
7
|
|
|
8
|
-
export const ReactComponent: FunctionComponent<
|
|
8
|
+
export const ReactComponent: FunctionComponent<
|
|
9
|
+
SVGProps<SVGSVGElement> & { title?: string }
|
|
10
|
+
>;
|
|
9
11
|
const src: string;
|
|
10
12
|
export default src;
|
|
11
13
|
}
|
|
12
|
-
|
|
13
|
-
// @TODO Gilad
|
|
14
14
|
declare module '*.jpg' {
|
|
15
15
|
const value: any;
|
|
16
16
|
export = value;
|
|
@@ -27,3 +27,15 @@ declare module '*.bmp' {
|
|
|
27
27
|
const value: any;
|
|
28
28
|
export = value;
|
|
29
29
|
}
|
|
30
|
+
declare module '*.otf' {
|
|
31
|
+
const value: any;
|
|
32
|
+
export = value;
|
|
33
|
+
}
|
|
34
|
+
declare module '*.woff' {
|
|
35
|
+
const value: any;
|
|
36
|
+
export = value;
|
|
37
|
+
}
|
|
38
|
+
declare module '*.woff2' {
|
|
39
|
+
const value: any;
|
|
40
|
+
export = value;
|
|
41
|
+
}
|