@@ -47,6 +47,54 @@ interface TabPackageRecord extends BasePackageRecord {
4747
4848type PackageRecord = BundlePackageRecord | TabPackageRecord | BasePackageRecord ;
4949
50+ const packageNameRE = / ^ @ s o u r c e a c a d e m y \/ ( .+ ?) - ( .+ ) $ / u;
51+ function rawRecordToFullRecord (
52+ packageName : string ,
53+ {
54+ hasChanges,
55+ directory,
56+ package : { devDependencies }
57+ } : RawPackageRecord < boolean >
58+ ) : PackageRecord {
59+ const needsPlaywright = ! ! devDependencies && 'playwright' in devDependencies ;
60+ if (
61+ packageName !== '@sourceacademy/modules' &&
62+ packageName !== '@sourceacademy/bundles' &&
63+ packageName !== '@sourceacademy/tabs'
64+ ) {
65+ const match = packageNameRE . exec ( packageName ) ;
66+ if ( ! match ) throw new Error ( `Unknown package ${ packageName } ` ) ;
67+
68+ const [ , packageType , baseName ] = match ;
69+
70+ switch ( packageType ) {
71+ case 'bundle' :
72+ return {
73+ changes : hasChanges ,
74+ directory : directory ,
75+ name : packageName ,
76+ needsPlaywright,
77+ bundleName : baseName ,
78+ } ;
79+ case 'tab' :
80+ return {
81+ changes : hasChanges ,
82+ directory : directory ,
83+ name : packageName ,
84+ needsPlaywright,
85+ tabName : baseName ,
86+ } ;
87+ }
88+ }
89+
90+ return {
91+ changes : hasChanges ,
92+ directory : directory ,
93+ name : packageName ,
94+ needsPlaywright
95+ } ;
96+ }
97+
5098/**
5199 * Returns `true` if there are changes present in the given directory relative to
52100 * the master branch\
@@ -158,54 +206,6 @@ export async function getAllPackages(gitRoot: string, maxDepth?: number) {
158206 } ) , { } ) ;
159207}
160208
161- const packageNameRE = / ^ @ s o u r c e a c a d e m y \/ ( .+ ?) - ( .+ ) $ / u;
162- function rawRecordToFullRecord (
163- packageName : string ,
164- {
165- hasChanges,
166- directory,
167- package : { devDependencies }
168- } : RawPackageRecord < boolean >
169- ) : PackageRecord {
170- const needsPlaywright = ! ! devDependencies && 'playwright' in devDependencies ;
171- if (
172- packageName !== '@sourceacademy/modules' &&
173- packageName !== '@sourceacademy/bundles' &&
174- packageName !== '@sourceacademy/tabs'
175- ) {
176- const match = packageNameRE . exec ( packageName ) ;
177- if ( ! match ) throw new Error ( `Unknown package ${ packageName } ` ) ;
178-
179- const [ , packageType , baseName ] = match ;
180-
181- switch ( packageType ) {
182- case 'bundle' :
183- return {
184- changes : hasChanges ,
185- directory : directory ,
186- name : packageName ,
187- needsPlaywright,
188- bundleName : baseName ,
189- } ;
190- case 'tab' :
191- return {
192- changes : hasChanges ,
193- directory : directory ,
194- name : packageName ,
195- needsPlaywright,
196- tabName : baseName ,
197- } ;
198- }
199- }
200-
201- return {
202- changes : hasChanges ,
203- directory : directory ,
204- name : packageName ,
205- needsPlaywright
206- } ;
207- }
208-
209209async function main ( ) {
210210 const gitRoot = await getGitRoot ( ) ;
211211
0 commit comments