@teambit/docs 1.0.106 → 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.
@@ -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 || ((_docsModule$default = docsModule.default) === null || _docsModule$default === void 0 ? void 0 : _docsModule$default.labels),
39
- description: docsModule.abstract || ((_docsModule$default2 = docsModule.default) === null || _docsModule$default2 === void 0 ? void 0 : _docsModule$default2.abstract) || docsModule.description,
40
- displayName: docsModule.displayName || ((_docsModule$default3 = docsModule.default) === null || _docsModule$default3 === void 0 ? void 0 : _docsModule$default3.componentDisplayName)
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","_docsModule$default","_docsModule$default2","_docsModule$default3","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;IAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA;IAC/D,MAAMC,WAAW,GAAG,IAAI,CAACV,GAAG,CAACW,cAAc,CAACL,SAAS,CAAC;IACtD,MAAMM,QAAQ,GAAG,IAAI,CAACX,QAAQ,CAACY,oBAAoB,CAACP,SAAS,EAAEF,IAAI,CAAC;IACpE;IACA,MAAMU,UAAU,GAAGvC,OAAO,CAAC,IAAAwC,eAAO,EAAE,GAAE,IAAI,CAACb,SAAS,CAACE,IAAK,iBAAgBM,WAAY,IAAGE,QAAS,EAAC,CAAC,CAAC;IACrG,OAAOI,mBAAG,CAACC,IAAI,CAACb,IAAI,EAAE;MACpBc,MAAM,EAAEJ,UAAU,CAACI,MAAM,MAAAX,mBAAA,GAAIO,UAAU,CAACK,OAAO,cAAAZ,mBAAA,uBAAlBA,mBAAA,CAAoBW,MAAM;MACvDE,WAAW,EAAEN,UAAU,CAACO,QAAQ,MAAAb,oBAAA,GAAIM,UAAU,CAACK,OAAO,cAAAX,oBAAA,uBAAlBA,oBAAA,CAAoBa,QAAQ,KAAIP,UAAU,CAACM,WAAW;MAC1FE,WAAW,EAAER,UAAU,CAACQ,WAAW,MAAAb,oBAAA,GAAIK,UAAU,CAACK,OAAO,cAAAV,oBAAA,uBAAlBA,oBAAA,CAAoBc,oBAAoB;IACjF,CAAC,CAAC;EACJ;EAIAC,iBAAiBA,CAACC,MAAc,EAAE;IAChC,OAAO,IAAI,CAACC,mBAAmB,CAACC,QAAQ,CAACF,MAAM,CAAC;EAClD;AACF;AAACG,OAAA,CAAA9B,gBAAA,GAAAA,gBAAA"}
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"}
@@ -18,8 +18,7 @@ class DocModule {
18
18
  * get the abstract.
19
19
  */
20
20
  get abstract() {
21
- var _this$module$default;
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;
@@ -1 +1 @@
1
- {"version":3,"names":["DocModule","constructor","path","module","abstract","_this$module$default","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;IAAA,IAAAC,oBAAA;IACb,OAAO,IAAI,CAACF,MAAM,CAACC,QAAQ,MAAAC,oBAAA,GAAI,IAAI,CAACF,MAAM,CAACG,OAAO,cAAAD,oBAAA,uBAAnBA,oBAAA,CAAqBD,QAAQ;EAC9D;AACF;AAACG,OAAA,CAAAP,SAAA,GAAAA,SAAA"}
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
- import React from 'react';
2
- export declare const Logo: () => React.JSX.Element;
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 declare type Example = {
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 declare type Docs = {
11
+ export type Docs = {
12
12
  /**
13
13
  * default is the docs content.
14
14
  */
@@ -27,7 +27,7 @@ function docsSchema(docs) {
27
27
  },
28
28
  labels: component => {
29
29
  const doc = docs.getDoc(component);
30
- return (doc === null || doc === void 0 ? void 0 : doc.labels) || [];
30
+ return doc?.labels || [];
31
31
  }
32
32
  }
33
33
  }
@@ -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,OAAO,CAAAG,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAED,MAAM,KAAI,EAAE;QAC1B;MACF;IACF;EACF,CAAC;AACH"}
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 declare type ComponentDocs = {
16
+ export type ComponentDocs = {
17
17
  files: string[];
18
18
  component: Component;
19
19
  };
20
- export declare type DocProp = {};
21
- export declare type DocPropSlot = SlotRegistry<DocProp>;
22
- export declare type DocReaderSlot = SlotRegistry<DocReader>;
23
- export declare type DocsConfig = {
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 | undefined;
61
+ getDocReader(extension: string): DocReader;
62
62
  /**
63
63
  * compute a doc for a component.
64
64
  */
65
- computeDoc(component: Component): Promise<Doc | null>;
66
- getDoc(component: IComponent): Doc | null;
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(): (component: Component) => {
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 === null || componentDoc === void 0 ? void 0 : componentDoc.description;
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
- var _component$get;
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: !!((_this$workspace = this.workspace) !== null && _this$workspace !== void 0 && _this$workspace.inInstallContext)
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 ((opts === null || opts === void 0 ? void 0 : opts.loadDocs) === false) return undefined;
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 === null || doc === void 0 ? void 0 : doc.toObject()
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":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,KAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,QAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,OAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,UAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,OAAA;EAAA,MAAAN,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAK,MAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,KAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,IAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAS,SAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,QAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,SAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,QAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAW,UAAA;EAAA,MAAAX,IAAA,GAAAO,sBAAA,CAAAN,OAAA;EAAAU,SAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAY,WAAA;EAAA,MAAAZ,IAAA,GAAAC,OAAA;EAAAW,UAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAa,cAAA;EAAA,MAAAb,IAAA,GAAAC,OAAA;EAAAY,aAAA,YAAAA,CAAA;IAAA,OAAAb,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,QAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,OAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,MAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,KAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,MAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,KAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,OAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,MAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,OAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,MAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAmB,kBAAA;EAAA,MAAAnB,IAAA,GAAAC,OAAA;EAAAkB,iBAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAoB,YAAA;EAAA,MAAApB,IAAA,GAAAC,OAAA;EAAAmB,WAAA,YAAAA,CAAA;IAAA,OAAApB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAyD,SAAAO,uBAAAc,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,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;AAoBzD;AACA;AACA;AACO,MAAMW,QAAQ,CAAC;EACpBC,WAAWA,CACDC,QAAkB;EAC1B;AACJ;AACA;EACYC,OAAoB,EAEpBC,GAAY,EAEZC,QAAsB,EAEtBC,SAAoB,EAEpBC,MAAc,EAEdC,QAAsB,EAEtBC,IAAc,EAEdC,WAAwB,EAExBC,aAA4B,EACpC;IAAA,KArBQT,QAAkB,GAAlBA,QAAkB;IAAA,KAIlBC,OAAoB,GAApBA,OAAoB;IAAA,KAEpBC,GAAY,GAAZA,GAAY;IAAA,KAEZC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,SAAoB,GAApBA,SAAoB;IAAA,KAEpBC,MAAc,GAAdA,MAAc;IAAA,KAEdC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,IAAc,GAAdA,IAAc;IAAA,KAEdC,WAAwB,GAAxBA,WAAwB;IAAA,KAExBC,aAA4B,GAA5BA,aAA4B;EACnC;;EAEH;AACF;AACA;EACEC,UAAUA,CAACC,UAAuB,EAAiC;IACjE,OAAOC,yBAAY,CAACC,EAAE,CAAkBF,UAAU,EAAGG,SAAS,IAAK;MACjE,OAAO,IAAI,CAACC,YAAY,CAACD,SAAS,CAAC;IACrC,CAAC,CAAC;EACJ;EAEAC,YAAYA,CAACD,SAAoB,EAAmB;IAClD,MAAMR,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACU,WAAW,CAACF,SAAS,CAAC;IACrD,MAAMG,QAAQ,GAAGX,QAAQ,CAACY,GAAG,CAACC,kBAAU,CAACC,EAAE,CAAC;IAC5C,OAAON,SAAS,CAACO,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,MAAM,CAAEC,IAAI,IAAKR,QAAQ,CAACS,QAAQ,CAACD,IAAI,CAACE,QAAQ,CAAC,CAAC;EAC5F;;EAEA;AACF;AACA;EACE,MAAMC,cAAcA,CAACd,SAAoB,EAAmB;IAC1D,MAAMe,YAAY,GAAG,IAAI,CAACC,MAAM,CAAChB,SAAS,CAAC;IAC3C,MAAMiB,IAAI,GAAGF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,WAAW;IACtC,OAAOD,IAAI,IAAI,EAAE;EACnB;EAEA,MAAME,WAAWA,CAACC,GAAgB,EAA+B;IAC/D,IAAIA,GAAG,CAACC,eAAe,IAAI,IAAAC,oBAAU,EAACF,GAAG,CAACC,eAAe,CAAC,EAAE;MAC1D,OAAOD,GAAG,CAACC,eAAe,CAAC,CAAC;IAC9B;IACA,OAAOE,SAAS;EAClB;EAEAC,YAAYA,CAACC,SAAiB,EAAE;IAC9B,OAAO,IAAI,CAAC9B,aAAa,CAAC+B,MAAM,CAAC,CAAC,CAACC,IAAI,CAAEC,SAAS,IAAKA,SAAS,CAACC,iBAAiB,CAACJ,SAAS,CAAC,CAAC;EAChG;;EAEA;AACF;AACA;EACE,MAAMK,UAAUA,CAAC9B,SAAoB,EAAE;IACrC,MAAMG,QAAQ,GAAG,IAAI,CAACF,YAAY,CAACD,SAAS,CAAC;IAC7C,IAAIG,QAAQ,CAAC4B,MAAM,EAAE;MACnB;MACA,MAAMC,OAAO,GAAG7B,QAAQ,CAAC,CAAC,CAAC;MAE3B,IAAI;QACF,MAAMyB,SAAS,GAAG,IAAI,CAACJ,YAAY,CAACQ,OAAO,CAACC,OAAO,CAAC;QACpD,IAAI,CAACL,SAAS,EAAE,MAAM,KAAIM,uCAAyB,EAACF,OAAO,CAACnB,QAAQ,EAAEmB,OAAO,CAACC,OAAO,CAAC;QACtF,MAAME,GAAG,GAAG,MAAMP,SAAS,CAACQ,IAAI,CAACJ,OAAO,CAACnB,QAAQ,EAAEmB,OAAO,CAACK,QAAQ,EAAErC,SAAS,CAAC;QAC/E,OAAOmC,GAAG;MACZ,CAAC,CAAC,OAAOG,GAAQ,EAAE;QACjB;QACA,IAAI,CAAC/C,MAAM,CAACgD,KAAK,CAAE,iDAAgDD,GAAG,CAACE,OAAQ,EAAC,CAAC;QACjF,OAAO,IAAI;MACb;IACF;IAEA,OAAO,IAAI;EACb;EAEAxB,MAAMA,CAAChB,SAAqB,EAAE;IAAA,IAAAyC,cAAA;IAC5B,MAAMC,OAAO,IAAAD,cAAA,GAAGzC,SAAS,CAACI,GAAG,CAACC,kBAAU,CAACC,EAAE,CAAC,cAAAmC,cAAA,gBAAAA,cAAA,GAA5BA,cAAA,CAA8BrG,IAAI,cAAAqG,cAAA,uBAAlCA,cAAA,CAAoCN,GAAG;IACvD,IAAI,CAACO,OAAO,EAAE,OAAO,IAAI;IACzB,OAAO,KAAIC,mBAAG,EAACD,OAAO,CAACE,QAAQ,EAAE,KAAIC,2BAAW,EAACH,OAAO,CAACI,KAAK,CAAC,CAAC;EAClE;EAEAC,WAAWA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC7D,QAAQ;EACtB;EAEA8D,uBAAuBA,CAAChD,SAAoB,EAAE;IAAA,IAAAiD,eAAA;IAC5C,MAAM7B,GAAG,GAAG,IAAI,CAAC3B,IAAI,CAACyD,YAAY,CAAClD,SAAS,EAAE;MAAEmD,YAAY,EAAE,CAAC,GAAAF,eAAA,GAAC,IAAI,CAAC3D,SAAS,cAAA2D,eAAA,eAAdA,eAAA,CAAgBG,gBAAgB;IAAC,CAAC,CAAC,CAAChC,GAAG;IACvG,MAAMiC,2BAAqC,GAAGjC,GAAG,CAACkC,kBAAkB,GAAGlC,GAAG,CAACkC,kBAAkB,CAACtD,SAAS,CAAC,GAAG,EAAE;IAC7G,MAAMuD,iBAAiB,GAAGF,2BAA2B,CAACG,MAAM,CAAC,IAAI,CAACT,WAAW,CAAC,CAAC,CAAC;IAChF,OAAO;MAAEU,IAAI,EAAE,MAAM;MAAEC,OAAO,EAAEH;IAAkB,CAAC;EACrD;EAEAI,uBAAuBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACX,uBAAuB,CAACY,IAAI,CAAC,IAAI,CAAC;EAChD;EACA;AACF;AACA;AACA;EACEC,iBAAiBA,CAACjC,SAAoB,EAAE;IACtC,IAAI,CAACjC,aAAa,CAACmE,QAAQ,CAAClC,SAAS,CAAC;IACtC,OAAO,IAAI;EACb;EAqBA,aAAamC,QAAQA,CACnB,CAAC5E,OAAO,EAAE6E,OAAO,EAAE1E,SAAS,EAAEF,GAAG,EAAEC,QAAQ,EAAE4E,YAAY,EAAEzE,QAAQ,EAAEC,IAAI,EAAEyE,KAAK,CAU/E,EACDC,MAAkB,EAClB,CAACzE,WAAW,EAAEC,aAAa,CAA+B,EAC1D;IACA,MAAMJ,MAAM,GAAG0E,YAAY,CAACG,YAAY,CAAC/D,kBAAU,CAACC,EAAE,CAAC;IACvD,MAAM+D,IAAI,GAAG,IAAIrF,QAAQ,CACvBmF,MAAM,CAACjF,QAAQ,EACfC,OAAO,EACPC,GAAG,EACHC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,IAAI,EACJC,WAAW,EACXC,aACF,CAAC;IACD0E,IAAI,CAACR,iBAAiB,CAAC,KAAIS,oCAAgB,EAAClF,GAAG,EAAEC,QAAQ,EAAEC,SAAS,CAAC,CAAC;IACtEE,QAAQ,CAAC+E,kBAAkB,CAACF,IAAI,CAACV,uBAAuB,CAAC,CAAC,CAAC;IAE3D,MAAMa,iBAAiB,GAAG,MAAAA,CAAOxE,SAAoB,EAAEyE,IAA2B,KAAK;MACrF,IAAI,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,QAAQ,MAAK,KAAK,EAAE,OAAOnD,SAAS;MAC9C;MACA,MAAMY,GAAG,GAAG,MAAMkC,IAAI,CAACvC,UAAU,CAAC9B,SAAS,CAAC;MAE5C,OAAO;QACLmC,GAAG,EAAEA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEwC,QAAQ,CAAC;QACnB;MACF,CAAC;IACH,CAAC;IAED,IAAIrF,SAAS,EAAE;MACbA,SAAS,CAACsF,uBAAuB,CAACJ,iBAAiB,CAAC;IACtD;IACA,IAAIN,KAAK,EAAE;MACTA,KAAK,CAACW,0BAA0B,CAACL,iBAAiB,CAAC;IACrD;IAEAR,OAAO,CAACF,QAAQ,CAAC,IAAAgB,mBAAU,EAACT,IAAI,CAAC,CAAC;IAElClF,OAAO,CAAC4F,kBAAkB,CAAC,KAAIC,8BAAqB,EAACX,IAAI,CAAC,CAAC;IAC3D,OAAOA,IAAI;EACb;AACF;AAACY,OAAA,CAAAjG,QAAA,GAAAA,QAAA;AAAApB,eAAA,CA1LYoB,QAAQ,WAiHJ,CAACkG,eAAI,CAACC,QAAQ,CAAU,CAAC,EAAED,eAAI,CAACC,QAAQ,CAAY,CAAC,CAAC;AAAAvH,eAAA,CAjH1DoB,QAAQ,aAmHFoG,kBAAW;AAAAxH,eAAA,CAnHjBoB,QAAQ,kBAoHG,CACpBqG,wBAAa,EACbC,wBAAa,EACbC,4BAAe,EACfC,gBAAS,EACTC,0BAAc,EACdC,sBAAY,EACZC,mBAAc,EACdC,kBAAU,EACVC,gBAAW,CACZ;AAAAjI,eAAA,CA9HUoB,QAAQ,mBAgII;EACrBE,QAAQ,EAAE,CAAC,aAAa;AAC1B,CAAC;AA0DHmB,kBAAU,CAACyF,UAAU,CAAC9G,QAAQ,CAAC"}
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 declare type DocsRootProps = {
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> | undefined;
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<{}> | undefined;
20
- getDocsCompare(): React.JSX.Element;
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 React, { ComponentType } from 'react';
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 declare type TitleBadge = {
10
+ export type TitleBadge = {
11
11
  component: ComponentType<any>;
12
12
  weight?: number;
13
13
  position?: BadgePosition;
14
14
  };
15
- export declare type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;
16
- export declare type OverviewOptions = () => {
15
+ export type TitleBadgeSlot = SlotRegistry<TitleBadge[]>;
16
+ export type OverviewOptions = () => {
17
17
  queryParams?: string;
18
18
  };
19
- export declare type OverviewOptionsSlot = SlotRegistry<OverviewOptions>;
20
- export declare type OverviewProps = {
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): React.JSX.Element;
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 = !((_component$preview = component.preview) !== null && _component$preview !== void 0 && _component$preview.legacyHeader);
103
+ const showHeader = !component.preview?.legacyHeader;
105
104
  const EmptyState = getEmptyState && getEmptyState();
106
- const buildFailed = ((_component$buildStatu = component.buildStatus) === null || _component$buildStatu === void 0 ? void 0 : _component$buildStatu.toLowerCase()) !== 'succeed' && (component === null || component === void 0 ? void 0 : component.host) === 'teambit.scope/scope';
107
- const isScaling = Boolean((_component$preview2 = component.preview) === null || _component$preview2 === void 0 ? void 0 : _component$preview2.isScaling);
108
- const includesEnvTemplate = Boolean((_component$preview3 = component.preview) === null || _component$preview3 === void 0 ? void 0 : _component$preview3.includesEnvTemplate);
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=${((_component$preview4 = component.preview) === null || _component$preview4 === void 0 ? void 0 : _component$preview4.skipIncludes) || 'false'}`;
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 === null || onLoad === void 0 || onLoad(e, props);
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, (overviewPropsValues === null || overviewPropsValues === void 0 ? void 0 : overviewPropsValues.queryParams) || ''],
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
- })), ((_component$preview5 = component.preview) === null || _component$preview5 === void 0 ? void 0 : _component$preview5.skipIncludes) && /*#__PURE__*/_react().default.createElement(_compositionsPanels().CompositionGallery, {
162
+ })), component.preview?.skipIncludes && /*#__PURE__*/_react().default.createElement(_compositionsPanels().CompositionGallery, {
164
163
  isLoading: isLoading,
165
164
  component: component
166
- }), ((_component$preview6 = component.preview) === null || _component$preview6 === void 0 ? void 0 : _component$preview6.skipIncludes) && /*#__PURE__*/_react().default.createElement(_reactUiDocs().PropertiesTable, {
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
  import React from 'react';
2
2
  export declare function ReadmeSkeleton({ children }: {
3
3
  children?: React.ReactNode;
4
- }): React.JSX.Element;
4
+ }): JSX.Element;
@@ -1,4 +1,4 @@
1
- import React from 'react';
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: React.JSX.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.106/dist/docs.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@1.0.106/dist/docs.docs.mdx';
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
@@ -0,0 +1,9 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+
3
+ export const DocsAspect = Aspect.create({
4
+ id: 'teambit.docs/docs',
5
+ dependencies: [],
6
+ defaultConfig: {},
7
+ });
8
+
9
+ export default DocsAspect;
@@ -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
+ }
@@ -0,0 +1,9 @@
1
+ import { EnvService, ExecutionContext } from '@teambit/envs';
2
+
3
+ export class DocsService implements EnvService<any> {
4
+ name = 'docs';
5
+
6
+ async run(context: ExecutionContext) {
7
+ return context.env.getDocsTemplate();
8
+ }
9
+ }
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.106",
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.106"
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.106",
25
- "@teambit/component": "1.0.106",
26
- "@teambit/pkg": "1.0.106",
27
- "@teambit/workspace": "1.0.106",
28
- "@teambit/cli": "0.0.839",
29
- "@teambit/dev-files": "1.0.106",
30
- "@teambit/envs": "1.0.106",
31
- "@teambit/graphql": "1.0.106",
32
- "@teambit/logger": "0.0.932",
33
- "@teambit/preview": "1.0.106",
34
- "@teambit/scope": "1.0.106",
35
- "@teambit/component-compare": "1.0.106",
36
- "@teambit/ui": "1.0.106",
37
- "@teambit/pubsub": "1.0.106",
38
- "@teambit/compositions.panels.composition-gallery": "0.0.201",
39
- "@teambit/preview.ui.component-preview": "1.0.3",
40
- "@teambit/react.ui.docs.properties-table": "0.0.22"
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/node": "12.20.4",
49
- "@types/jest": "^26.0.0",
50
- "@types/testing-library__jest-dom": "5.9.5",
51
- "@teambit/docs.content.docs-overview": "1.95.9"
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
- "@teambit/legacy": "1.0.624",
55
- "react": "^16.8.0 || ^17.0.0",
56
- "react-dom": "^16.8.0 || ^17.0.0"
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": ">=12.22.0"
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
- "es2019",
5
- "DOM",
6
- "ES6",
7
- "DOM.Iterable",
8
- "ScriptHost"
4
+ "esnext",
5
+ "dom",
6
+ "dom.Iterable"
9
7
  ],
10
- "target": "es2015",
11
- "module": "CommonJS",
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
- "outDir": "dist",
14
+ "skipLibCheck": true,
20
15
  "moduleResolution": "node",
21
16
  "esModuleInterop": true,
22
- "rootDir": ".",
23
17
  "resolveJsonModule": true,
24
- "emitDeclarationOnly": true,
25
- "emitDecoratorMetadata": true,
26
- "allowSyntheticDefaultImports": true,
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
- "package.json"
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<SVGProps<SVGSVGElement> & { title?: string }>;
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
+ }