1
- console . log ( "Here: " + __dirname ) ;
2
-
3
1
const parse = require ( "tns-core-modules/css" ) . parse ;
4
-
5
2
const nl = "\n" ;
6
3
7
- function escape ( string ) {
8
- return JSON . stringify ( string ) ;
4
+ module . exports = function ( content ) {
5
+ const ast = parse ( content ) ;
6
+ const dependencies = getImportsFrom ( ast )
7
+ . map ( mapURI )
8
+ . reduce ( ( dependencies , { uri, requireURI} ) =>
9
+ dependencies + `global.registerModule(${ uri } , () => require(${ requireURI } ));${ nl } ` , "" ) ;
10
+
11
+ const str = JSON . stringify ( ast , ( k , v ) => k === "position" ? undefined : v ) ;
12
+ return `${ dependencies } module.exports = ${ str } ;` ;
9
13
}
10
14
11
- function importsFrom ( ast ) {
15
+ function getImportsFrom ( ast ) {
12
16
if ( ! ast || ast . type !== "stylesheet" || ! ast . stylesheet ) {
13
17
return [ ] ;
14
18
}
@@ -17,25 +21,9 @@ function importsFrom(ast) {
17
21
. map ( importRule => importRule . import . replace ( / [ \' \" ] / gm, "" ) ) ;
18
22
}
19
23
20
- // Identity loader
21
- module . exports = function ( content ) {
22
- this . cacheable && this . cacheable ( ) ;
23
- this . value = content ;
24
- const ast = parse ( content ) ;
25
-
26
- let dependencies = "" ;
27
-
28
- importsFrom ( ast ) . forEach ( uri => {
29
- if ( uri [ 0 ] === "~" && uri [ 1 ] !== "/" ) {
30
- // Require form node modules from `~nativescript-theme` like imports.
31
- dependencies += `global.registerModule(${ escape ( uri ) } , () => require(${ escape ( uri . substr ( 1 ) ) } ));${ nl } ` ;
32
- } else {
33
- dependencies += `global.registerModule(${ escape ( uri ) } , () => require(${ escape ( uri ) } );${ nl } ` ;
34
- }
35
- } ) ;
36
-
37
- const str = JSON . stringify ( ast , ( k , v ) => k === "position" ? undefined : v ) ;
38
- return `${ dependencies } module.exports = ${ str } ;` ;
24
+ function mapURI ( uri ) {
25
+ return {
26
+ uri : JSON . stringify ( uri ) ,
27
+ requireURI : JSON . stringify ( uri [ 0 ] === "~" && uri [ 1 ] !== "/" ? uri . substr ( 1 ) : uri )
28
+ } ;
39
29
}
40
- module . exports . seperable = true ;
41
-
0 commit comments