@teambit/docs 0.0.959 → 0.0.961

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.
@@ -56,7 +56,7 @@ export declare class DocsMain {
56
56
  * compute the description of the component from its source code and docs file.
57
57
  */
58
58
  getDescription(component: Component): Promise<string>;
59
- getTemplate(env: Environment): Promise<any>;
59
+ getTemplate(env: Environment): Promise<string | undefined>;
60
60
  getDocReader(extension: string): DocReader | undefined;
61
61
  /**
62
62
  * compute a doc for a component.
@@ -92,6 +92,13 @@ function _docsEntities() {
92
92
  };
93
93
  return data;
94
94
  }
95
+ function _lodash() {
96
+ const data = require("lodash");
97
+ _lodash = function () {
98
+ return data;
99
+ };
100
+ return data;
101
+ }
95
102
  function _envs() {
96
103
  const data = require("@teambit/envs");
97
104
  _envs = function () {
@@ -182,7 +189,10 @@ class DocsMain {
182
189
  return (fromJsDocs === null || fromJsDocs === void 0 ? void 0 : fromJsDocs.description) || '';
183
190
  }
184
191
  async getTemplate(env) {
185
- return env.getDocsTemplate();
192
+ if (env.getDocsTemplate && (0, _lodash().isFunction)(env.getDocsTemplate)) {
193
+ return env.getDocsTemplate();
194
+ }
195
+ return undefined;
186
196
  }
187
197
  getDocReader(extension) {
188
198
  return this.docReaderSlot.values().find(docReader => docReader.isFormatSupported(extension));
@@ -1 +1 @@
1
- {"version":3,"names":["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","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","name","pattern","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","opts","loadDocs","undefined","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","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 { 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 { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\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 if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\n }\n\n async getTemplate(env: Environment) {\n return env.getDocsTemplate();\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).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 ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\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\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component, opts) => {\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\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":["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","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","isFunction","undefined","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","name","pattern","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","opts","loadDocs","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","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 { 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 { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\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 if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\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).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 ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\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\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component, opts) => {\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\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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"}
@@ -19,8 +19,8 @@ export declare class DocsPreviewDefinition implements PreviewDefinition {
19
19
  /**
20
20
  * application root
21
21
  */
22
- renderTemplatePath(context: ExecutionContext): Promise<string>;
23
- renderTemplatePathByEnv(env: Environment): Promise<any>;
22
+ renderTemplatePath(context: ExecutionContext): Promise<string | undefined>;
23
+ renderTemplatePathByEnv(env: Environment): Promise<string | undefined>;
24
24
  /**
25
25
  * files to load.
26
26
  */
@@ -1 +1 @@
1
- {"version":3,"names":["DocsPreviewDefinition","constructor","docs","renderTemplatePath","context","renderTemplatePathByEnv","env","getTemplate","getModuleMap","components","map","getDocsMap"],"sources":["docs.preview-definition.ts"],"sourcesContent":["import { Component, ComponentMap } from '@teambit/component';\nimport type { Environment, ExecutionContext } from '@teambit/envs';\nimport { PreviewDefinition } from '@teambit/preview';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\n\nimport { DocsMain } from './docs.main.runtime';\n\nexport class DocsPreviewDefinition implements PreviewDefinition {\n readonly prefix = 'overview';\n readonly include = ['compositions'];\n readonly includePeers = true;\n\n constructor(\n /**\n * docs extension.\n */\n private docs: DocsMain\n ) {}\n\n /**\n * application root\n */\n async renderTemplatePath(context: ExecutionContext): Promise<string> {\n return this.renderTemplatePathByEnv(context.env);\n }\n\n async renderTemplatePathByEnv(env: Environment) {\n return this.docs.getTemplate(env);\n }\n\n /**\n * files to load.\n */\n async getModuleMap(components: Component[]): Promise<ComponentMap<AbstractVinyl[]>> {\n const map = this.docs.getDocsMap(components);\n return map;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAOO,MAAMA,qBAAqB,CAA8B;EAK9DC,WAAW;EACT;AACJ;AACA;EACYC,IAAc,EACtB;IAAA,KADQA,IAAc,GAAdA,IAAc;IAAA,gDARN,UAAU;IAAA,iDACT,CAAC,cAAc,CAAC;IAAA,sDACX,IAAI;EAOzB;;EAEH;AACF;AACA;EACE,MAAMC,kBAAkB,CAACC,OAAyB,EAAmB;IACnE,OAAO,IAAI,CAACC,uBAAuB,CAACD,OAAO,CAACE,GAAG,CAAC;EAClD;EAEA,MAAMD,uBAAuB,CAACC,GAAgB,EAAE;IAC9C,OAAO,IAAI,CAACJ,IAAI,CAACK,WAAW,CAACD,GAAG,CAAC;EACnC;;EAEA;AACF;AACA;EACE,MAAME,YAAY,CAACC,UAAuB,EAA0C;IAClF,MAAMC,GAAG,GAAG,IAAI,CAACR,IAAI,CAACS,UAAU,CAACF,UAAU,CAAC;IAC5C,OAAOC,GAAG;EACZ;AACF;AAAC"}
1
+ {"version":3,"names":["DocsPreviewDefinition","constructor","docs","renderTemplatePath","context","renderTemplatePathByEnv","env","getTemplate","getModuleMap","components","map","getDocsMap"],"sources":["docs.preview-definition.ts"],"sourcesContent":["import { Component, ComponentMap } from '@teambit/component';\nimport type { Environment, ExecutionContext } from '@teambit/envs';\nimport { PreviewDefinition } from '@teambit/preview';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\n\nimport { DocsMain } from './docs.main.runtime';\n\nexport class DocsPreviewDefinition implements PreviewDefinition {\n readonly prefix = 'overview';\n readonly include = ['compositions'];\n readonly includePeers = true;\n\n constructor(\n /**\n * docs extension.\n */\n private docs: DocsMain\n ) {}\n\n /**\n * application root\n */\n async renderTemplatePath(context: ExecutionContext): Promise<string | undefined> {\n return this.renderTemplatePathByEnv(context.env);\n }\n\n async renderTemplatePathByEnv(env: Environment): Promise<string | undefined> {\n return this.docs.getTemplate(env);\n }\n\n /**\n * files to load.\n */\n async getModuleMap(components: Component[]): Promise<ComponentMap<AbstractVinyl[]>> {\n const map = this.docs.getDocsMap(components);\n return map;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAOO,MAAMA,qBAAqB,CAA8B;EAK9DC,WAAW;EACT;AACJ;AACA;EACYC,IAAc,EACtB;IAAA,KADQA,IAAc,GAAdA,IAAc;IAAA,gDARN,UAAU;IAAA,iDACT,CAAC,cAAc,CAAC;IAAA,sDACX,IAAI;EAOzB;;EAEH;AACF;AACA;EACE,MAAMC,kBAAkB,CAACC,OAAyB,EAA+B;IAC/E,OAAO,IAAI,CAACC,uBAAuB,CAACD,OAAO,CAACE,GAAG,CAAC;EAClD;EAEA,MAAMD,uBAAuB,CAACC,GAAgB,EAAgC;IAC5E,OAAO,IAAI,CAACJ,IAAI,CAACK,WAAW,CAACD,GAAG,CAAC;EACnC;;EAEA;AACF;AACA;EACE,MAAME,YAAY,CAACC,UAAuB,EAA0C;IAClF,MAAMC,GAAG,GAAG,IAAI,CAACR,IAAI,CAACS,UAAU,CAACF,UAAU,CAAC;IAC5C,OAAOC,GAAG;EACZ;AACF;AAAC"}
@@ -19,7 +19,7 @@ export declare class DocsPreview {
19
19
  * preview extension.
20
20
  */
21
21
  preview: PreviewPreview);
22
- render: (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => void;
22
+ render: (componentId: ComponentID, envId: string, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => void;
23
23
  selectPreviewModel(componentId: string, modules: PreviewModule): import("@teambit/preview").ModuleFile<any> | undefined;
24
24
  static runtime: import("@teambit/harmony").RuntimeDefinition;
25
25
  static dependencies: import("@teambit/harmony").Aspect[];
@@ -42,16 +42,18 @@ class DocsPreview {
42
42
  */
43
43
  preview) {
44
44
  this.preview = preview;
45
- (0, _defineProperty2().default)(this, "render", (componentId, modules, [compositions], context) => {
45
+ (0, _defineProperty2().default)(this, "render", (componentId, envId, modules, [compositions], context) => {
46
46
  const docsModule = this.selectPreviewModel(componentId.fullName, modules);
47
- const isObject = !!modules.mainModule.default.apiObject;
47
+ const mainModule = modules.modulesMap[envId] || modules.modulesMap.default;
48
+ const defaultExports = mainModule.default;
49
+ const isObject = !!defaultExports.apiObject;
48
50
 
49
51
  /**
50
52
  * for backwards compatibility - can be removed end of 2022
51
53
  */
52
54
  if (!isObject) {
53
55
  const docsPropsArray = [NoopProvider, componentId.toString(), docsModule, compositions, context];
54
- modules.mainModule.default(...docsPropsArray);
56
+ defaultExports(...docsPropsArray);
55
57
  return;
56
58
  }
57
59
  const docsProps = {
@@ -61,7 +63,7 @@ class DocsPreview {
61
63
  compositions,
62
64
  context
63
65
  };
64
- modules.mainModule.default(docsProps);
66
+ defaultExports(docsProps);
65
67
  });
66
68
  }
67
69
  selectPreviewModel(componentId, modules) {
@@ -1 +1 @@
1
- {"version":3,"names":["DocsPreview","constructor","preview","componentId","modules","compositions","context","docsModule","selectPreviewModel","fullName","isObject","mainModule","default","apiObject","docsPropsArray","NoopProvider","toString","docsProps","Provider","docs","relevant","componentMap","undefined","provider","docsPreview","registerPreview","name","render","bind","include","PreviewRuntime","PreviewAspect","DocsAspect","addRuntime","children"],"sources":["docs.preview.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { PreviewAspect, RenderingContext, PreviewPreview, PreviewRuntime, PreviewModule } from '@teambit/preview';\nimport { ComponentID } from '@teambit/component-id';\n\nimport { DocsAspect } from './docs.aspect';\nimport type { Docs } from './docs';\n\nexport type DocsRootProps = {\n Provider: React.ComponentType | undefined;\n componentId: string;\n docs: Docs | undefined;\n compositions: any;\n context: RenderingContext;\n};\n\nexport class DocsPreview {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewPreview\n ) {}\n\n render = (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => {\n const docsModule = this.selectPreviewModel(componentId.fullName, modules);\n\n const isObject = !!modules.mainModule.default.apiObject;\n\n /**\n * for backwards compatibility - can be removed end of 2022\n */\n if (!isObject) {\n const docsPropsArray = [\n NoopProvider as React.ComponentType,\n componentId.toString(),\n docsModule as Docs,\n compositions,\n context,\n ];\n modules.mainModule.default(...docsPropsArray);\n return;\n }\n\n const docsProps: DocsRootProps = {\n Provider: NoopProvider as React.ComponentType,\n componentId: componentId.toString(),\n docs: docsModule as Docs,\n compositions,\n context,\n };\n\n modules.mainModule.default(docsProps);\n };\n\n selectPreviewModel(componentId: string, modules: PreviewModule) {\n const relevant = modules.componentMap[componentId];\n if (!relevant) return undefined;\n\n // only one doc file is supported.\n return relevant[0];\n }\n\n static runtime = PreviewRuntime;\n static dependencies = [PreviewAspect];\n\n static async provider([preview]: [PreviewPreview]) {\n const docsPreview = new DocsPreview(preview);\n preview.registerPreview({\n name: 'overview',\n render: docsPreview.render.bind(docsPreview),\n selectPreviewModel: docsPreview.selectPreviewModel.bind(docsPreview),\n include: ['compositions'],\n });\n\n return docsPreview;\n }\n}\n\nDocsAspect.addRuntime(DocsPreview);\n\nfunction NoopProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAWO,MAAMA,WAAW,CAAC;EACvBC,WAAW;EACT;AACJ;AACA;EACYC,OAAuB,EAC/B;IAAA,KADQA,OAAuB,GAAvBA,OAAuB;IAAA,gDAGxB,CAACC,WAAwB,EAAEC,OAAsB,EAAE,CAACC,YAAY,CAAQ,EAAEC,OAAyB,KAAK;MAC/G,MAAMC,UAAU,GAAG,IAAI,CAACC,kBAAkB,CAACL,WAAW,CAACM,QAAQ,EAAEL,OAAO,CAAC;MAEzE,MAAMM,QAAQ,GAAG,CAAC,CAACN,OAAO,CAACO,UAAU,CAACC,OAAO,CAACC,SAAS;;MAEvD;AACJ;AACA;MACI,IAAI,CAACH,QAAQ,EAAE;QACb,MAAMI,cAAc,GAAG,CACrBC,YAAY,EACZZ,WAAW,CAACa,QAAQ,EAAE,EACtBT,UAAU,EACVF,YAAY,EACZC,OAAO,CACR;QACDF,OAAO,CAACO,UAAU,CAACC,OAAO,CAAC,GAAGE,cAAc,CAAC;QAC7C;MACF;MAEA,MAAMG,SAAwB,GAAG;QAC/BC,QAAQ,EAAEH,YAAmC;QAC7CZ,WAAW,EAAEA,WAAW,CAACa,QAAQ,EAAE;QACnCG,IAAI,EAAEZ,UAAkB;QACxBF,YAAY;QACZC;MACF,CAAC;MAEDF,OAAO,CAACO,UAAU,CAACC,OAAO,CAACK,SAAS,CAAC;IACvC,CAAC;EA/BE;EAiCHT,kBAAkB,CAACL,WAAmB,EAAEC,OAAsB,EAAE;IAC9D,MAAMgB,QAAQ,GAAGhB,OAAO,CAACiB,YAAY,CAAClB,WAAW,CAAC;IAClD,IAAI,CAACiB,QAAQ,EAAE,OAAOE,SAAS;;IAE/B;IACA,OAAOF,QAAQ,CAAC,CAAC,CAAC;EACpB;EAKA,aAAaG,QAAQ,CAAC,CAACrB,OAAO,CAAmB,EAAE;IACjD,MAAMsB,WAAW,GAAG,IAAIxB,WAAW,CAACE,OAAO,CAAC;IAC5CA,OAAO,CAACuB,eAAe,CAAC;MACtBC,IAAI,EAAE,UAAU;MAChBC,MAAM,EAAEH,WAAW,CAACG,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC;MAC5ChB,kBAAkB,EAAEgB,WAAW,CAAChB,kBAAkB,CAACoB,IAAI,CAACJ,WAAW,CAAC;MACpEK,OAAO,EAAE,CAAC,cAAc;IAC1B,CAAC,CAAC;IAEF,OAAOL,WAAW;EACpB;AACF;AAAC;AAAA,gCA7DYxB,WAAW,aA+CL8B,yBAAc;AAAA,gCA/CpB9B,WAAW,kBAgDA,CAAC+B,wBAAa,CAAC;AAevCC,kBAAU,CAACC,UAAU,CAACjC,WAAW,CAAC;AAElC,SAASe,YAAY,CAAC;EAAEmB;AAAkC,CAAC,EAAE;EAC3D,oBAAO,gEAAGA,QAAQ,CAAI;AACxB"}
1
+ {"version":3,"names":["DocsPreview","constructor","preview","componentId","envId","modules","compositions","context","docsModule","selectPreviewModel","fullName","mainModule","modulesMap","default","defaultExports","isObject","apiObject","docsPropsArray","NoopProvider","toString","docsProps","Provider","docs","relevant","componentMap","undefined","provider","docsPreview","registerPreview","name","render","bind","include","PreviewRuntime","PreviewAspect","DocsAspect","addRuntime","children"],"sources":["docs.preview.runtime.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { PreviewAspect, RenderingContext, PreviewPreview, PreviewRuntime, PreviewModule } from '@teambit/preview';\nimport { ComponentID } from '@teambit/component-id';\n\nimport { DocsAspect } from './docs.aspect';\nimport type { Docs } from './docs';\n\nexport type DocsRootProps = {\n Provider: React.ComponentType | undefined;\n componentId: string;\n docs: Docs | undefined;\n compositions: any;\n context: RenderingContext;\n};\n\nexport class DocsPreview {\n constructor(\n /**\n * preview extension.\n */\n private preview: PreviewPreview\n ) {}\n\n render = (\n componentId: ComponentID,\n envId: string,\n modules: PreviewModule,\n [compositions]: [any],\n context: RenderingContext\n ) => {\n const docsModule = this.selectPreviewModel(componentId.fullName, modules);\n\n const mainModule = modules.modulesMap[envId] || modules.modulesMap.default;\n const defaultExports = mainModule.default;\n const isObject = !!defaultExports.apiObject;\n\n /**\n * for backwards compatibility - can be removed end of 2022\n */\n if (!isObject) {\n const docsPropsArray = [\n NoopProvider as React.ComponentType,\n componentId.toString(),\n docsModule as Docs,\n compositions,\n context,\n ];\n defaultExports(...docsPropsArray);\n return;\n }\n\n const docsProps: DocsRootProps = {\n Provider: NoopProvider as React.ComponentType,\n componentId: componentId.toString(),\n docs: docsModule as Docs,\n compositions,\n context,\n };\n\n defaultExports(docsProps);\n };\n\n selectPreviewModel(componentId: string, modules: PreviewModule) {\n const relevant = modules.componentMap[componentId];\n if (!relevant) return undefined;\n\n // only one doc file is supported.\n return relevant[0];\n }\n\n static runtime = PreviewRuntime;\n static dependencies = [PreviewAspect];\n\n static async provider([preview]: [PreviewPreview]) {\n const docsPreview = new DocsPreview(preview);\n preview.registerPreview({\n name: 'overview',\n render: docsPreview.render.bind(docsPreview),\n selectPreviewModel: docsPreview.selectPreviewModel.bind(docsPreview),\n include: ['compositions'],\n });\n\n return docsPreview;\n }\n}\n\nDocsAspect.addRuntime(DocsPreview);\n\nfunction NoopProvider({ children }: { children: ReactNode }) {\n return <>{children}</>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAWO,MAAMA,WAAW,CAAC;EACvBC,WAAW;EACT;AACJ;AACA;EACYC,OAAuB,EAC/B;IAAA,KADQA,OAAuB,GAAvBA,OAAuB;IAAA,gDAGxB,CACPC,WAAwB,EACxBC,KAAa,EACbC,OAAsB,EACtB,CAACC,YAAY,CAAQ,EACrBC,OAAyB,KACtB;MACH,MAAMC,UAAU,GAAG,IAAI,CAACC,kBAAkB,CAACN,WAAW,CAACO,QAAQ,EAAEL,OAAO,CAAC;MAEzE,MAAMM,UAAU,GAAGN,OAAO,CAACO,UAAU,CAACR,KAAK,CAAC,IAAIC,OAAO,CAACO,UAAU,CAACC,OAAO;MAC1E,MAAMC,cAAc,GAAGH,UAAU,CAACE,OAAO;MACzC,MAAME,QAAQ,GAAG,CAAC,CAACD,cAAc,CAACE,SAAS;;MAE3C;AACJ;AACA;MACI,IAAI,CAACD,QAAQ,EAAE;QACb,MAAME,cAAc,GAAG,CACrBC,YAAY,EACZf,WAAW,CAACgB,QAAQ,EAAE,EACtBX,UAAU,EACVF,YAAY,EACZC,OAAO,CACR;QACDO,cAAc,CAAC,GAAGG,cAAc,CAAC;QACjC;MACF;MAEA,MAAMG,SAAwB,GAAG;QAC/BC,QAAQ,EAAEH,YAAmC;QAC7Cf,WAAW,EAAEA,WAAW,CAACgB,QAAQ,EAAE;QACnCG,IAAI,EAAEd,UAAkB;QACxBF,YAAY;QACZC;MACF,CAAC;MAEDO,cAAc,CAACM,SAAS,CAAC;IAC3B,CAAC;EAvCE;EAyCHX,kBAAkB,CAACN,WAAmB,EAAEE,OAAsB,EAAE;IAC9D,MAAMkB,QAAQ,GAAGlB,OAAO,CAACmB,YAAY,CAACrB,WAAW,CAAC;IAClD,IAAI,CAACoB,QAAQ,EAAE,OAAOE,SAAS;;IAE/B;IACA,OAAOF,QAAQ,CAAC,CAAC,CAAC;EACpB;EAKA,aAAaG,QAAQ,CAAC,CAACxB,OAAO,CAAmB,EAAE;IACjD,MAAMyB,WAAW,GAAG,IAAI3B,WAAW,CAACE,OAAO,CAAC;IAC5CA,OAAO,CAAC0B,eAAe,CAAC;MACtBC,IAAI,EAAE,UAAU;MAChBC,MAAM,EAAEH,WAAW,CAACG,MAAM,CAACC,IAAI,CAACJ,WAAW,CAAC;MAC5ClB,kBAAkB,EAAEkB,WAAW,CAAClB,kBAAkB,CAACsB,IAAI,CAACJ,WAAW,CAAC;MACpEK,OAAO,EAAE,CAAC,cAAc;IAC1B,CAAC,CAAC;IAEF,OAAOL,WAAW;EACpB;AACF;AAAC;AAAA,gCArEY3B,WAAW,aAuDLiC,yBAAc;AAAA,gCAvDpBjC,WAAW,kBAwDA,CAACkC,wBAAa,CAAC;AAevCC,kBAAU,CAACC,UAAU,CAACpC,WAAW,CAAC;AAElC,SAASkB,YAAY,CAAC;EAAEmB;AAAkC,CAAC,EAAE;EAC3D,oBAAO,gEAAGA,QAAQ,CAAI;AACxB"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.959/dist/docs.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.959/dist/docs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.961/dist/docs.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.961/dist/docs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -21,10 +21,18 @@ export class DocsPreview {
21
21
  private preview: PreviewPreview
22
22
  ) {}
23
23
 
24
- render = (componentId: ComponentID, modules: PreviewModule, [compositions]: [any], context: RenderingContext) => {
24
+ render = (
25
+ componentId: ComponentID,
26
+ envId: string,
27
+ modules: PreviewModule,
28
+ [compositions]: [any],
29
+ context: RenderingContext
30
+ ) => {
25
31
  const docsModule = this.selectPreviewModel(componentId.fullName, modules);
26
32
 
27
- const isObject = !!modules.mainModule.default.apiObject;
33
+ const mainModule = modules.modulesMap[envId] || modules.modulesMap.default;
34
+ const defaultExports = mainModule.default;
35
+ const isObject = !!defaultExports.apiObject;
28
36
 
29
37
  /**
30
38
  * for backwards compatibility - can be removed end of 2022
@@ -37,7 +45,7 @@ export class DocsPreview {
37
45
  compositions,
38
46
  context,
39
47
  ];
40
- modules.mainModule.default(...docsPropsArray);
48
+ defaultExports(...docsPropsArray);
41
49
  return;
42
50
  }
43
51
 
@@ -49,7 +57,7 @@ export class DocsPreview {
49
57
  context,
50
58
  };
51
59
 
52
- modules.mainModule.default(docsProps);
60
+ defaultExports(docsProps);
53
61
  };
54
62
 
55
63
  selectPreviewModel(componentId: string, modules: PreviewModule) {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/docs",
3
- "version": "0.0.959",
3
+ "version": "0.0.961",
4
4
  "homepage": "https://bit.dev/teambit/docs/docs",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.docs",
8
8
  "name": "docs",
9
- "version": "0.0.959"
9
+ "version": "0.0.961"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -16,27 +16,27 @@
16
16
  "@babel/runtime": "7.20.0",
17
17
  "@teambit/harmony": "0.4.6",
18
18
  "@teambit/base-ui.loaders.skeleton": "1.0.1",
19
- "@teambit/compiler": "0.0.959",
20
- "@teambit/component": "0.0.959",
19
+ "@teambit/compiler": "0.0.961",
20
+ "@teambit/component": "0.0.961",
21
21
  "@teambit/docs.entities.doc": "0.0.12",
22
- "@teambit/pkg": "0.0.959",
23
- "@teambit/workspace": "0.0.959",
24
- "@teambit/cli": "0.0.643",
25
- "@teambit/dev-files": "0.0.959",
26
- "@teambit/envs": "0.0.959",
27
- "@teambit/graphql": "0.0.959",
28
- "@teambit/logger": "0.0.736",
29
- "@teambit/preview": "0.0.959",
22
+ "@teambit/pkg": "0.0.961",
23
+ "@teambit/workspace": "0.0.961",
24
+ "@teambit/cli": "0.0.644",
25
+ "@teambit/dev-files": "0.0.961",
26
+ "@teambit/envs": "0.0.961",
27
+ "@teambit/graphql": "0.0.961",
28
+ "@teambit/logger": "0.0.737",
29
+ "@teambit/preview": "0.0.961",
30
30
  "@teambit/component-id": "0.0.425",
31
- "@teambit/component-compare": "0.0.207",
31
+ "@teambit/component-compare": "0.0.209",
32
32
  "@teambit/docs.ui.overview-compare-section": "0.0.2",
33
- "@teambit/docs.ui.overview-compare": "0.0.161",
34
- "@teambit/ui": "0.0.959",
35
- "@teambit/pubsub": "0.0.959",
36
- "@teambit/component.ui.component-meta": "0.0.210",
37
- "@teambit/compositions.panels.composition-gallery": "0.0.5",
33
+ "@teambit/docs.ui.overview-compare": "0.0.162",
34
+ "@teambit/ui": "0.0.961",
35
+ "@teambit/pubsub": "0.0.961",
36
+ "@teambit/component.ui.component-meta": "0.0.211",
37
+ "@teambit/compositions.panels.composition-gallery": "0.0.6",
38
38
  "@teambit/design.ui.surfaces.status-message-card": "0.0.18",
39
- "@teambit/preview.ui.component-preview": "0.0.510",
39
+ "@teambit/preview.ui.component-preview": "0.0.511",
40
40
  "@teambit/react.ui.docs.properties-table": "0.0.12"
41
41
  },
42
42
  "devDependencies": {
@@ -51,7 +51,7 @@
51
51
  "@teambit/docs.content.docs-overview": "1.95.9"
52
52
  },
53
53
  "peerDependencies": {
54
- "@teambit/legacy": "1.0.424",
54
+ "@teambit/legacy": "1.0.425",
55
55
  "react": "^16.8.0 || ^17.0.0",
56
56
  "react-dom": "^16.8.0 || ^17.0.0"
57
57
  },