11import fs from 'fs'
22
3- const modelFiles = await fs . promises . readdir ( './lib/model' )
4-
53let code = `import { Tree, Tensor, Matrix } from './util/math.js'
64import EnsembleBinaryModel from './util/ensemble.js'
75
86`
97
10- const wholename = [ ]
11-
12- for ( const modelName of modelFiles ) {
13- const mod = await import ( `./lib/model/${ modelName } ` )
8+ const createImportStatement = async name => {
9+ const mod = await import ( `./lib/${ name } ` )
1410 let d = null
1511 const named = [ ]
1612 for ( const name of Object . keys ( mod ) ) {
@@ -21,16 +17,32 @@ for (const modelName of modelFiles) {
2117 }
2218 }
2319 if ( d ) {
24- wholename . push ( d . name )
2520 if ( named . length === 0 ) {
26- code += `import ${ d . name } from './model/ ${ modelName } '\n`
21+ code += `import ${ d . name } from './${ name } '\n`
2722 } else {
28- code += `import ${ d . name } , { ${ named . join ( ', ' ) } } from './model/ ${ modelName } '\n`
23+ code += `import ${ d . name } , { ${ named . join ( ', ' ) } } from './${ name } '\n`
2924 }
25+ named . push ( d . name )
3026 } else if ( named . length > 0 ) {
31- code += `import { ${ named . join ( ', ' ) } } from './model/ ${ modelName } '\n`
27+ code += `import { ${ named . join ( ', ' ) } } from './${ name } '\n`
3228 }
33- wholename . push ( ...named )
29+ return named
30+ }
31+
32+ const modelFiles = await fs . promises . readdir ( './lib/model' )
33+ const modelNames = [ ]
34+
35+ for ( const modelName of modelFiles ) {
36+ const named = await createImportStatement ( `model/${ modelName } ` )
37+ modelNames . push ( ...named )
38+ }
39+
40+ const rlFiles = await fs . promises . readdir ( './lib/rl' )
41+ const rlNames = [ ]
42+
43+ for ( const rlName of rlFiles ) {
44+ const named = await createImportStatement ( `rl/${ rlName } ` )
45+ rlNames . push ( ...named )
3446}
3547
3648code += `
@@ -41,12 +53,19 @@ export default {
4153 models: {
4254`
4355
44- for ( const name of wholename ) {
56+ for ( const name of modelNames ) {
4557 code += ` ${ name } ,\n`
4658}
4759code += `
4860 },
4961 EnsembleBinaryModel,
62+ rl: {
63+ `
64+ for ( const name of rlNames ) {
65+ code += ` ${ name } ,\n`
66+ }
67+ code += `
68+ }
5069}
5170`
5271
0 commit comments