@@ -43,8 +43,11 @@ let compatible (dep : module_system)
43
43
(* As a dependency Leaf Node, it is the same either [global] or [not] *)
44
44
45
45
46
- type package_info =
47
- { module_system : module_system ; path : string }
46
+ type package_info = {
47
+ module_system : module_system ;
48
+ path : string ;
49
+ suffix : Ext_js_suffix .t
50
+ }
48
51
49
52
type package_name =
50
53
| Pkg_empty
@@ -79,8 +82,8 @@ type t =
79
82
let runtime_package_specs : t = {
80
83
name = Pkg_runtime ;
81
84
module_systems = [
82
- {module_system = Es6 ; path = " lib/es6" };
83
- {module_system = NodeJS ; path = " lib/js" };
85
+ {module_system = Es6 ; path = " lib/es6" ; suffix = Js };
86
+ {module_system = NodeJS ; path = " lib/js" ; suffix = Js };
84
87
]
85
88
}
86
89
let same_package_by_name (x : t ) (y : t ) = x.name = y.name
@@ -140,13 +143,14 @@ let module_system_of_string package_name : module_system option =
140
143
141
144
let dump_package_info
142
145
(fmt : Format.formatter )
143
- ({module_system = ms ; path = name } : package_info )
146
+ ({module_system = ms ; path = name ; suffix } : package_info )
144
147
=
145
148
Format. fprintf
146
149
fmt
147
- " @[%s: @ %s@]"
150
+ " @[%s@ %s @ %s@]"
148
151
(string_of_module_system ms)
149
152
name
153
+ (Ext_js_suffix. to_string suffix)
150
154
151
155
let dump_package_name fmt (x : package_name ) =
152
156
match x with
@@ -169,7 +173,8 @@ type package_found_info =
169
173
{
170
174
171
175
rel_path : string ;
172
- pkg_rel_path : string
176
+ pkg_rel_path : string ;
177
+ suffix : Ext_js_suffix .t
173
178
}
174
179
type info_query =
175
180
| Package_script
@@ -193,10 +198,12 @@ let query_package_infos
193
198
Package_found
194
199
{
195
200
rel_path ;
196
- pkg_rel_path
201
+ pkg_rel_path ;
202
+ suffix = k.suffix
197
203
}
198
204
| None -> Package_not_found )
199
205
| Pkg_runtime ->
206
+ (* FIXME: [compatible] seems not correct *)
200
207
match Ext_list. find_first module_systems (fun k ->
201
208
compatible k.module_system module_system) with
202
209
| Some k ->
@@ -205,7 +212,8 @@ let query_package_infos
205
212
Package_found
206
213
{
207
214
rel_path ;
208
- pkg_rel_path
215
+ pkg_rel_path ;
216
+ suffix = k.suffix
209
217
}
210
218
| None -> Package_not_found
211
219
@@ -253,7 +261,10 @@ let add_npm_package_path (packages_info : t) (s : string) : t =
253
261
| _ ->
254
262
Bsc_args. bad_arg @@ " invalid npm package path: " ^ s
255
263
in
256
- { packages_info with module_systems = {module_system; path}::packages_info.module_systems}
264
+ { packages_info with
265
+ module_systems =
266
+ {module_system; path; suffix = ! Js_config. bs_suffix}::packages_info.module_systems
267
+ }
257
268
258
269
(* support es6 modules instead
259
270
TODO: enrich ast to support import export
0 commit comments