+
+// ---------------------------------------------------------------------------
+
+function getModelFiles (modelDirectory: string) {
+ return readdirPromise(modelDirectory)
+ .then(files => {
+ const directories: string[] = files.filter(function (directory) {
+ // Find directories
+ if (
+ directory.endsWith('.js.map') ||
+ directory === 'index.js' || directory === 'index.ts' ||
+ directory === 'utils.js' || directory === 'utils.ts'
+ ) return false
+
+ return true
+ })
+
+ return directories
+ })
+ .then(directories => {
+ const tasks = []
+
+ // For each directory we read it and append model in the modelFilePaths array
+ directories.forEach(directory => {
+ const modelDirectoryPath = join(modelDirectory, directory)
+
+ const promise = readdirPromise(modelDirectoryPath).then(files => {
+ const filteredFiles = files.filter(file => {
+ if (
+ file === 'index.js' || file === 'index.ts' ||
+ file === 'utils.js' || file === 'utils.ts' ||
+ file.endsWith('-interface.js') || file.endsWith('-interface.ts') ||
+ file.endsWith('.js.map')
+ ) return false
+
+ return true
+ }).map(file => join(modelDirectoryPath, file))
+
+ return filteredFiles
+ })
+
+ tasks.push(promise)
+ })
+
+ return Promise.all(tasks)
+ })
+ .then((filteredFiles: string[][]) => {
+ return flattenDepth<string>(filteredFiles, 1)
+ })
+}