forked from codesandbox/codesandbox-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget-modules.ts
More file actions
26 lines (20 loc) · 747 Bytes
/
get-modules.ts
File metadata and controls
26 lines (20 loc) · 747 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import { LoaderContext } from '../../../transpiled-module';
let core = null;
export default async (code: string, loaderContext: LoaderContext) => {
if (!core) {
const Core = await import(
/* webpackChunkName: 'css-modules-loader-core' */ 'css-modules-loader-core'
).then(x => x.default);
core = new Core();
}
return core
.load(code, loaderContext.path, (dependencyPath: string) => {
loaderContext.addDependency(dependencyPath);
const tModule = loaderContext.resolveTranspiledModule(dependencyPath);
return tModule.source ? tModule.source.compiledCode : tModule.module.code;
})
.then(({ injectableSource, exportTokens }) => ({
css: injectableSource,
exportTokens,
}));
};