app.get(ASSET_ROUTE, bodyParser.json(), function(req, res, next) { var dirName:string = req.url.replace(/(^\/assets\/)/, ""); if (!dirName) { next(); // 404 if the dirname is not set return; } recursive(ASSET_DIR + dirName, function (err, files) { var fileJson = { assets: [] }; if (files) files.forEach((filePath:string) => { var strippedPath:string = filePath.substr(filePath.indexOf(dirName)); var name:string = strippedPath.substr(strippedPath.lastIndexOf("/") + 1); name = name.substr(0, name.lastIndexOf(".")); fileJson.assets.push( { name: name, path: strippedPath } ); }); res.send(fileJson); res.end(); }); });
function loadFiles(dirpath: string) { recursive(dirpath, (err, files) => { let itemsToShow: string[] = []; files.forEach(file => { let ext = path.extname(file).toLowerCase(); switch (selectionType.toLowerCase()) { case 'sprite': if (['.jpg', '.jpeg', '.png', '.gif'].indexOf(ext) > -1) { itemsToShow.push(file); } break; } }); showFiles(itemsToShow); filter.addEventListener('keyup', event => { if (event.keyCode != 13 && event.keyCode != 38 && event.keyCode != 40) { showFiles(itemsToShow, filter.value); } let items = itemList.querySelectorAll('a.list-item') as NodeListOf<HTMLAnchorElement>; let selected = itemList.querySelector('.list-item.selected') as HTMLAnchorElement; let offset: number = -1; if (selected != null) { offset = parseInt(selected.getAttribute('data-offset')); } let next = offset + 1; let prev = offset - 1; next = next > items.length - 1 ? 0 : next; prev = prev < 0 ? items.length - 1 : prev; // Enter if (event.keyCode == 13) { let selected = itemList.querySelector('.list-item.selected') as HTMLAnchorElement; okay(selected.getAttribute('data-value')); } // Up if (event.keyCode == 38) { event.preventDefault(); if (selected != null) { selected.classList.remove('selected'); } let newItem = itemList.querySelector(`.list-item[data-offset="${prev}"]`) as HTMLAnchorElement; newItem.classList.add('selected'); } // Down if (event.keyCode == 40) { event.preventDefault(); if (selected != null) { selected.classList.remove('selected'); } let newItem = itemList.querySelector(`.list-item[data-offset="${next}"]`) as HTMLAnchorElement; newItem.classList.add('selected'); } }); }); }
var promise = new Promise(function(resolve, reject) { recursive(__dirname ,function (err:any, files:any) { for(var fileIndex = files.length-1 ; fileIndex >= 0 ; fileIndex--){ var file = files[fileIndex]; if( (file.indexOf(".") !== 0) && (file.indexOf("index.js") == -1) && (file !== "index.js") && file.slice(file.indexOf("."), file.length) === ".js"){ //todo replace all recurisivly var newFile = file.replace(__dirname,".").replace("\\","/").replace("\\","/"); var split = newFile.split("/"); split[split.length -1] = capitalizeFirstLetter(split[split.length -1]); newFile = split.join("/"); var model = require(newFile); if("associate" in model){ model.associate(); } } } sequelize.sync({ force: false }).then(function(){ resolve(); }); }) });
app.get('/', function (req, res) { console.log(GET + "/views/index.html"); var scriptList = []; // Get all js files. recursive(SCRIPT_DIR, function (err, files) { files.forEach((filePath:string) => { if (filePath.indexOf(".map") < 0) { var path:string = filePath.substr(filePath.indexOf('js')); scriptList.push( { scriptPath: path } ); } }); res.render("index.html", { scripts: scriptList }); }); });