blob: 35982a882bfb9e0678443ec14e47a60c46d96ce4 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF
* or more contributor license agreements. See th
* distributed with this work for additional infor
* regarding copyright ownership. The ASF license
* to you under the Apache License, Version 2.0 (t
* "License"); you may not use this file except in
* with the License. You may obtain a copy of the
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to
* software distributed under the License is distr
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
* KIND, either express or implied. See the Licen
* specific language governing permissions and lim
* under the License.
*/
var fs = require('fs');
var path = require('path');
var copyProps = require('./copy-props');
var getModuleId = require('./get-module-id');
function collectFiles(dir, id) {
if (!id) id = ''
var result = {}
var entries = fs.readdirSync(dir)
entries = entries.filter(function(entry) {
if (entry.match(/\.js$/))
return true
var stat = fs.statSync(path.join(dir, entry))
if (stat.isDirectory())
return true
})
entries.forEach(function(entry) {
var moduleId = (id ? id + '/' : '') + entry;
var fileName = path.join(dir, entry)
var stat = fs.statSync(fileName)
if (stat.isDirectory()) {
copyProps(result, collectFiles(fileName, moduleId))
}
else {
moduleId = getModuleId(moduleId)
result[moduleId] = fileName
}
})
return copyProps({}, result)
}
module.exports = collectFiles;