Skip to content

Commit

Permalink
[docs] Support demos with side effect imports (mui#35177)
Browse files Browse the repository at this point in the history
  • Loading branch information
m4theushw authored and Daniel Rabe committed Nov 29, 2022
1 parent 577cc27 commit d03a6ea
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
3 changes: 2 additions & 1 deletion docs/packages/markdown/extractImports.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const importModuleRegexp = /^import [^'"]* from ['"]([^'"\n ][^'"\n ]*)['"]/gm;
const importModuleRegexp =
/^\s*import (?:["'\s]*(?:[\w*{}\n, ]+)from\s*)?["'\s]*([^"'{}$\s]+)["'\s].*/gm;

function extractImports(code) {
return (code.match(importModuleRegexp) || []).map((x) => x.replace(importModuleRegexp, '$1'));
Expand Down
39 changes: 39 additions & 0 deletions docs/packages/markdown/extractImports.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { expect } from 'chai';
import extractImports from './extractImports';

describe('extractImports', () => {
it('finds all imports', () => {
const imports = extractImports(`
import {
Component
} from '@angular2/core';
import defaultMember from "module-1";
import * as name from "module-2 ";
import { member } from " module-3";
import { member as alias } from "module-4";
import { member1 ,
member2 } from "module-5";
import { member1 , member2 as alias2 , member3 as alias3 } from "module-6";
import defaultMember, { member, member } from "module-7";
import defaultMember, * as name from "module-8";
import "module-9";
import "module-10";
import * from './smdn';
import \${importName} from 'module11/\${importName}';
`);

expect(imports[0]).to.equal('@angular2/core');
expect(imports[1]).to.equal('module-1');
expect(imports[2]).to.equal('module-2');
expect(imports[3]).to.equal('module-3');
expect(imports[4]).to.equal('module-4');
expect(imports[5]).to.equal('module-5');
expect(imports[6]).to.equal('module-6');
expect(imports[7]).to.equal('module-7');
expect(imports[8]).to.equal('module-8');
expect(imports[9]).to.equal('module-9');
expect(imports[10]).to.equal('module-10');
expect(imports[11]).to.equal('./smdn');
expect(imports[12]).to.equal(undefined); // It's not a valid import
});
});

0 comments on commit d03a6ea

Please sign in to comment.