1
1
import merge from 'merge-source-map'
2
2
3
3
export interface StylePreprocessor {
4
- render ( source : string , map ?: object , options ?: any ) : StylePreprocessorResults
4
+ render (
5
+ source : string ,
6
+ map ?: object ,
7
+ options ?: any ,
8
+ customRequire ?: ( id : string ) => any
9
+ ) : StylePreprocessorResults
5
10
}
6
11
7
12
export interface StylePreprocessorResults {
@@ -12,8 +17,8 @@ export interface StylePreprocessorResults {
12
17
13
18
// .scss/.sass processor
14
19
const scss : StylePreprocessor = {
15
- render ( source , map , options ) {
16
- const nodeSass = require ( 'sass' )
20
+ render ( source , map , options , load = require ) {
21
+ const nodeSass = load ( 'sass' )
17
22
const finalOptions = {
18
23
...options ,
19
24
data : source ,
@@ -41,18 +46,23 @@ const scss: StylePreprocessor = {
41
46
}
42
47
43
48
const sass : StylePreprocessor = {
44
- render ( source , map , options ) {
45
- return scss . render ( source , map , {
46
- ...options ,
47
- indentedSyntax : true
48
- } )
49
+ render ( source , map , options , load ) {
50
+ return scss . render (
51
+ source ,
52
+ map ,
53
+ {
54
+ ...options ,
55
+ indentedSyntax : true
56
+ } ,
57
+ load
58
+ )
49
59
}
50
60
}
51
61
52
62
// .less
53
63
const less : StylePreprocessor = {
54
- render ( source , map , options ) {
55
- const nodeLess = require ( 'less' )
64
+ render ( source , map , options , load = require ) {
65
+ const nodeLess = load ( 'less' )
56
66
57
67
let result : any
58
68
let error : Error | null = null
@@ -81,8 +91,8 @@ const less: StylePreprocessor = {
81
91
82
92
// .styl
83
93
const styl : StylePreprocessor = {
84
- render ( source , map , options ) {
85
- const nodeStylus = require ( 'stylus' )
94
+ render ( source , map , options , load = require ) {
95
+ const nodeStylus = load ( 'stylus' )
86
96
try {
87
97
const ref = nodeStylus ( source )
88
98
Object . keys ( options ) . forEach ( key => ref . set ( key , options [ key ] ) )
0 commit comments