mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-10-31 02:44:17 +01:00 
			
		
		
		
	Revert "Merge branch 'release_9.2.0_buggfixes'"
This reverts commit1a0309fb87, reversing changes made to56a8068a7f. This is because the PR https://github.com/mermaid-js/mermaid/pull/3702 worked fine on the `develop` and `release_9.2.0_buggfixes` branches, but had a bunch of git merge conflicts on the `release/9.2.0` branch.
This commit is contained in:
		| @@ -72,7 +72,7 @@ classDiagram | ||||
|         Student "1" --o "1" IdCard : carries | ||||
|         Student "1" --o "1" Bike : rides | ||||
|     </pre> | ||||
|     <pre id="diagram" class="mermaid"> | ||||
|     <pre id="diagram" class="mermaid2"> | ||||
| mindmap | ||||
|   root | ||||
|     child1((Circle)) | ||||
|   | ||||
| @@ -48,32 +48,11 @@ describe('when using mermaid and ', function () { | ||||
|       const node = document.createElement('div'); | ||||
|       node.appendChild(document.createTextNode('graph TD;\na;')); | ||||
|  | ||||
|       await mermaid.initThrowsErrors(undefined, node); | ||||
|       mermaid.initThrowsErrors(undefined, node); | ||||
|       // mermaidAPI.render function has been mocked, since it doesn't yet work | ||||
|       // in Node.JS (only works in browser) | ||||
|       expect(mermaidAPI.render).toHaveBeenCalled(); | ||||
|     }); | ||||
|     it('should throw error (but still render) if lazyLoadedDiagram fails', async () => { | ||||
|       const node = document.createElement('div'); | ||||
|       node.appendChild(document.createTextNode('graph TD;\na;')); | ||||
|  | ||||
|       mermaidAPI.setConfig({ | ||||
|         lazyLoadedDiagrams: ['this-file-does-not-exist.mjs'], | ||||
|       }); | ||||
|       await expect(mermaid.initThrowsErrors(undefined, node)).rejects.toThrowError( | ||||
|         // this error message is probably different on every platform | ||||
|         // this one is just for vite-note (node/jest/browser may be different) | ||||
|         'Failed to load this-file-does-not-exist.mjs' | ||||
|       ); | ||||
|  | ||||
|       // should still render, even if lazyLoadedDiagrams fails | ||||
|       expect(mermaidAPI.render).toHaveBeenCalled(); | ||||
|     }); | ||||
|  | ||||
|     afterEach(() => { | ||||
|       // we modify mermaid config in some tests, so we need to make sure to reset them | ||||
|       mermaidAPI.reset(); | ||||
|     }); | ||||
|   }); | ||||
|  | ||||
|   describe('checking validity of input ', function () { | ||||
|   | ||||
| @@ -47,7 +47,13 @@ const init = async function ( | ||||
|   callback?: Function | ||||
| ) { | ||||
|   try { | ||||
|     await initThrowsErrors(config, nodes, callback); | ||||
|     const conf = mermaidAPI.getConfig(); | ||||
|     if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { | ||||
|       await registerLazyLoadedDiagrams(conf); | ||||
|       await initThrowsErrorsAsync(config, nodes, callback); | ||||
|     } else { | ||||
|       initThrowsErrors(config, nodes, callback); | ||||
|     } | ||||
|   } catch (e) { | ||||
|     log.warn('Syntax Error rendering'); | ||||
|     if (isDetailedError(e)) { | ||||
| @@ -84,19 +90,7 @@ const handleError = (error: unknown, errors: DetailedError[], parseError?: Funct | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| /** | ||||
|  * Equivalent to {@link init()}, except an error will be thrown on error. | ||||
|  * | ||||
|  * @param config - **Deprecated** Mermaid sequenceConfig. | ||||
|  * @param nodes - One of: | ||||
|  * - A DOM Node | ||||
|  * - An array of DOM nodes (as would come from a jQuery selector) | ||||
|  * - A W3C selector, a la `.mermaid` (default) | ||||
|  * @param callback - Function that is called with the id of each generated mermaid diagram. | ||||
|  * | ||||
|  * @returns Resolves on success, otherwise the {@link Promise} will be rejected with an Error. | ||||
|  */ | ||||
| const initThrowsErrors = async function ( | ||||
| const initThrowsErrors = function ( | ||||
|   config?: MermaidConfig, | ||||
|   // eslint-disable-next-line no-undef | ||||
|   nodes?: string | HTMLElement | NodeListOf<HTMLElement>, | ||||
| @@ -110,24 +104,6 @@ const initThrowsErrors = async function ( | ||||
|     mermaid.sequenceConfig = config; | ||||
|   } | ||||
|  | ||||
|   const errors = []; | ||||
|  | ||||
|   if (conf?.lazyLoadedDiagrams && conf.lazyLoadedDiagrams.length > 0) { | ||||
|     // Load all lazy loaded diagrams in parallel | ||||
|     const results = await Promise.allSettled( | ||||
|       conf.lazyLoadedDiagrams.map(async (diagram: string) => { | ||||
|         const { id, detector, loadDiagram } = await import(diagram); | ||||
|         addDetector(id, detector, loadDiagram); | ||||
|       }) | ||||
|     ); | ||||
|     for (const result of results) { | ||||
|       if (result.status == 'rejected') { | ||||
|         log.warn(`Failed to lazyLoadedDiagram due to `, result.reason); | ||||
|         errors.push(result.reason); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // if last argument is a function this is the callback function | ||||
|   log.debug(`${!callback ? 'No ' : ''}Callback function found`); | ||||
|   let nodesToProcess: ArrayLike<HTMLElement>; | ||||
| @@ -153,6 +129,7 @@ const initThrowsErrors = async function ( | ||||
|   const idGenerator = new utils.initIdGenerator(conf.deterministicIds, conf.deterministicIDSeed); | ||||
|  | ||||
|   let txt: string; | ||||
|   const errors: DetailedError[] = []; | ||||
|  | ||||
|   // element is the current div with mermaid class | ||||
|   for (const element of Array.from(nodesToProcess)) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alois Klink
					Alois Klink