Skip to content

Commit 32325de

Browse files
authored
account for public setting in bsconfig (#824)
1 parent b467c64 commit 32325de

File tree

2 files changed

+30
-10
lines changed

2 files changed

+30
-10
lines changed

analysis/src/FindFiles.ml

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,18 @@ let getNamespace config =
105105
either fromString fromName |> Option.map nameSpaceToName
106106
else None
107107

108+
module StringSet = Set.Make (String)
109+
110+
let getPublic config =
111+
let public = config |> Json.get "public" in
112+
match public with
113+
| None -> None
114+
| Some public -> (
115+
match public |> Json.array with
116+
| None -> None
117+
| Some public ->
118+
Some (public |> List.filter_map Json.string |> StringSet.of_list))
119+
108120
let collectFiles directory =
109121
let allFiles = Files.readDirectory directory in
110122
let compileds = allFiles |> List.filter isCompiledFile |> filterDuplicates in
@@ -124,8 +136,7 @@ let collectFiles directory =
124136
| Some res -> Some (modName, SharedTypes.Impl {cmt; res}))
125137

126138
(* returns a list of (absolute path to cmt(i), relative path from base to source file) *)
127-
let findProjectFiles ~namespace ~path ~sourceDirectories ~libBs =
128-
let module StringSet = Set.Make (String) in
139+
let findProjectFiles ~public ~namespace ~path ~sourceDirectories ~libBs =
129140
let dirs =
130141
sourceDirectories |> List.map (Filename.concat path) |> StringSet.of_list
131142
in
@@ -179,10 +190,18 @@ let findProjectFiles ~namespace ~path ~sourceDirectories ~libBs =
179190
in
180191
let result =
181192
normals
182-
|> List.map (fun (name, paths) ->
183-
match namespace with
184-
| None -> (name, paths)
185-
| Some namespace -> (name ^ "-" ^ namespace, paths))
193+
|> List.filter_map (fun (name, paths) ->
194+
let originalName = name in
195+
let name =
196+
match namespace with
197+
| None -> name
198+
| Some namespace -> name ^ "-" ^ namespace
199+
in
200+
match public with
201+
| Some public ->
202+
if public |> StringSet.mem originalName then Some (name, paths)
203+
else None
204+
| None -> Some (name, paths))
186205
in
187206
match namespace with
188207
| None -> result
@@ -236,8 +255,8 @@ let findDependencyFiles base config =
236255
| Some _ -> libBs :: compiledDirectories
237256
in
238257
let projectFiles =
239-
findProjectFiles ~namespace ~path ~sourceDirectories
240-
~libBs
258+
findProjectFiles ~public:(getPublic inner) ~namespace
259+
~path ~sourceDirectories ~libBs
241260
in
242261
Some (compiledDirectories, projectFiles))
243262
| None -> None)

analysis/src/Packages.ml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ let newBsPackage ~rootPath =
3939
config
4040
in
4141
let projectFilesAndPaths =
42-
FindFiles.findProjectFiles ~namespace ~path:rootPath
43-
~sourceDirectories ~libBs
42+
FindFiles.findProjectFiles
43+
~public:(FindFiles.getPublic config)
44+
~namespace ~path:rootPath ~sourceDirectories ~libBs
4445
in
4546
projectFilesAndPaths
4647
|> List.iter (fun (_name, paths) -> Log.log (showPaths paths));

0 commit comments

Comments
 (0)