1 |
|
2 |
|
3 |
|
4 | 'use strict'
|
5 |
|
6 | const loaderUtils = require('loader-utils')
|
7 | const processCarmi = require('./api')
|
8 |
|
9 | module.exports = function CarmiLoader() {
|
10 | const callback = this.async()
|
11 | const loaderOptions = loaderUtils.getOptions(this) || {}
|
12 |
|
13 | const options = {
|
14 | source: this.getDependencies()[0],
|
15 | format: 'cjs',
|
16 | ...loaderOptions
|
17 | }
|
18 |
|
19 | try {
|
20 | const {code, dependencies} = processCarmi(options)
|
21 |
|
22 | Object.keys(dependencies).forEach((filePath) => {
|
23 |
|
24 |
|
25 | this.addDependency(filePath)
|
26 | })
|
27 |
|
28 | callback(null, code)
|
29 | } catch (error) {
|
30 | callback(error)
|
31 | }
|
32 | }
|