@@ -32,7 +32,7 @@ def build_dist(package, dist_dir):
32
32
data = extract_package (tarball )
33
33
34
34
# Move the tarball into the dist folder if public
35
- if not data .get ("private" , False ) == True :
35
+ if not data .get ("private" , False ):
36
36
shutil .move (str (tarball ), str (dest ))
37
37
elif osp .isdir (package ):
38
38
os .remove (tarball )
@@ -42,17 +42,13 @@ def build_dist(package, dist_dir):
42
42
43
43
if "workspaces" in data :
44
44
all_data = dict ()
45
- for pattern in _get_workspace_packages (data ):
46
- for path in glob (osp .join (basedir , pattern ), recursive = True ):
47
- path = Path (path )
48
- package_json = path / "package.json"
49
- if not osp .exists (package_json ):
50
- continue
51
- data = json .loads (package_json .read_text (encoding = "utf-8" ))
52
- if data .get ("private" , False ) == True :
53
- continue
54
- data ["__path__" ] = path
55
- all_data [data ["name" ]] = data
45
+ for path in _get_workspace_packages (data ):
46
+ package_json = path / "package.json"
47
+ data = json .loads (package_json .read_text (encoding = "utf-8" ))
48
+ if data .get ("private" , False ):
49
+ continue
50
+ data ["__path__" ] = path
51
+ all_data [data ["name" ]] = data
56
52
57
53
i = 0
58
54
for (name , data ) in sorted (all_data .items ()):
@@ -151,11 +147,10 @@ def get_package_versions(version):
151
147
message += f'\n npm version: { data ["name" ]} : { npm_version } '
152
148
if "workspaces" in data :
153
149
message += "\n npm workspace versions:"
154
- for pattern in _get_workspace_packages (data ):
155
- for path in glob (pattern , recursive = True ):
156
- text = Path (path ).joinpath ("package.json" ).read_text ()
157
- data = json .loads (text )
158
- message += f'\n { data ["name" ]} : { data .get ("version" , "" )} '
150
+ for path in _get_workspace_packages (data ):
151
+ text = path .joinpath ("package.json" ).read_text (encoding = "utf-8" )
152
+ data = json .loads (text )
153
+ message += f'\n { data ["name" ]} : { data .get ("version" , "" )} '
159
154
return message
160
155
161
156
@@ -169,28 +164,34 @@ def tag_workspace_packages():
169
164
if "workspaces" not in data :
170
165
return
171
166
172
- for pattern in _get_workspace_packages (data ):
167
+ for path in _get_workspace_packages (data ):
168
+ sub_package_json = path / "package.json"
169
+ sub_data = json .loads (sub_package_json .read_text (encoding = "utf-8" ))
170
+ tag_name = f"{ sub_data ['name' ]} @{ sub_data ['version' ]} "
171
+ if tag_name in tags :
172
+ util .log (f"Skipping existing tag { tag_name } " )
173
+ else :
174
+ util .run (f"git tag { tag_name } " )
175
+
176
+
177
+ def _get_workspace_packages (data ):
178
+ """Get the workspace package paths for a package given package data"""
179
+ if isinstance (data ["workspaces" ], dict ):
180
+ patterns = []
181
+ for value in data ["workspaces" ].values ():
182
+ patterns .extend (value )
183
+ else :
184
+ patterns = data ["workspaces" ]
185
+
186
+ paths = []
187
+ for pattern in patterns :
173
188
for path in glob (pattern , recursive = True ):
174
189
sub_package = Path (path )
175
190
if not sub_package .is_dir ():
176
191
continue
177
192
sub_package_json = sub_package / "package.json"
178
193
if not sub_package_json .exists ():
179
194
continue
180
- sub_data = json .loads (sub_package_json .read_text (encoding = "utf-8" ))
181
- tag_name = f"{ sub_data ['name' ]} @{ sub_data ['version' ]} "
182
- if tag_name in tags :
183
- util .log (f"Skipping existing tag { tag_name } " )
184
- else :
185
- util .run (f"git tag { tag_name } " )
186
-
195
+ paths .append (sub_package )
187
196
188
- def _get_workspace_packages (data ):
189
- """Get the workspace packages for a package given package data"""
190
- if isinstance (data ["workspaces" ], dict ):
191
- packages = []
192
- for value in data ["workspaces" ].values ():
193
- packages .extend (value )
194
- else :
195
- packages = data ["workspaces" ]
196
- return packages
197
+ return paths
0 commit comments