mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-08-20 12:00:53 +08:00
Merge pull request #7474 from tkrotoff/serve-index
Definitions for serve-index (https://github.com/expressjs/serve-index)
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
/// <reference path="serve-index.d.ts" />
|
||||
/// <reference path="../express/express.d.ts" />
|
||||
|
||||
import * as express from 'express';
|
||||
import * as serveIndex from 'serve-index';
|
||||
import * as fs from 'fs';
|
||||
|
||||
const app = express();
|
||||
|
||||
// Serve URLs like /ftp/thing as public/ftp/thing
|
||||
app.use('/ftp', serveIndex('public/ftp', {'icons': true}));
|
||||
app.listen(8080);
|
||||
|
||||
|
||||
// Taken from https://github.com/expressjs/serve-index/blob/v1.7.2/test/test.js
|
||||
|
||||
import * as path from 'path';
|
||||
var fixtures = path.join(__dirname, '/fixtures');
|
||||
const createServer = serveIndex;
|
||||
|
||||
var server = createServer('test/fixtures', {'hidden': false});
|
||||
|
||||
var server = createServer('test/fixtures', {'hidden': true});
|
||||
|
||||
var server = createServer(fixtures, {'filter': filter});
|
||||
function filter(name: string): boolean {
|
||||
if (name.indexOf('foo') === -1) return true
|
||||
return false
|
||||
}
|
||||
|
||||
var server = createServer(fixtures, {'filter': filter, 'hidden': false});
|
||||
|
||||
var server = createServer(fixtures, {'icons': true});
|
||||
|
||||
var server = createServer(fixtures, {'template': __dirname + '/shared/template.html'});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, 'This is a template.');
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(new Error('boom!'));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.directory));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.displayIcons));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.fileList.map(function (file) {
|
||||
//file.stat = file.stat instanceof fs.Stats;
|
||||
return file;
|
||||
})));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.path));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.style));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'template': function (locals, callback) {
|
||||
callback(null, JSON.stringify(locals.viewName));
|
||||
}});
|
||||
|
||||
var server = createServer(fixtures, {'stylesheet': __dirname + '/shared/styles.css'});
|
||||
Vendored
+44
@@ -0,0 +1,44 @@
|
||||
// Type definitions for serve-index v1.7.2
|
||||
// Project: https://github.com/expressjs/serve-index
|
||||
// Definitions by: Tanguy Krotoff <https://github.com/tkrotoff>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../express/express.d.ts" />
|
||||
|
||||
declare module 'serve-index' {
|
||||
import * as express from 'express';
|
||||
import * as fs from 'fs';
|
||||
|
||||
namespace serveIndex {
|
||||
interface File {
|
||||
name: string;
|
||||
stat: fs.Stats;
|
||||
}
|
||||
|
||||
interface Locals {
|
||||
directory: string;
|
||||
displayIcons: boolean;
|
||||
fileList: Array<File>;
|
||||
name: string;
|
||||
stat: fs.Stats;
|
||||
path: string;
|
||||
style: string;
|
||||
viewName: string;
|
||||
}
|
||||
|
||||
type templateCallback = (error: Error, htmlString?: string) => void;
|
||||
|
||||
interface Options {
|
||||
filter?: (filename: string, index: number, files: Array<File>, dir: string) => boolean;
|
||||
hidden?: boolean;
|
||||
icons?: boolean;
|
||||
stylesheet?: string;
|
||||
template?: string | ((locals: Locals, callback: templateCallback) => void);
|
||||
view?: string;
|
||||
}
|
||||
}
|
||||
|
||||
function serveIndex(path: string, options?: serveIndex.Options): express.Handler;
|
||||
|
||||
export = serveIndex;
|
||||
}
|
||||
Vendored
+11
-11
@@ -15,22 +15,22 @@
|
||||
|
||||
declare module "serve-static" {
|
||||
import * as express from "express";
|
||||
|
||||
|
||||
/**
|
||||
* Create a new middleware function to serve files from within a given root directory.
|
||||
* The file to serve will be determined by combining req.url with the provided root directory.
|
||||
* Create a new middleware function to serve files from within a given root directory.
|
||||
* The file to serve will be determined by combining req.url with the provided root directory.
|
||||
* When a file is not found, instead of sending a 404 response, this module will instead call next() to move on to the next middleware, allowing for stacking and fall-backs.
|
||||
*/
|
||||
function serveStatic(root: string, options?: {
|
||||
/**
|
||||
* Set how "dotfiles" are treated when encountered. A dotfile is a file or directory that begins with a dot (".").
|
||||
* Note this check is done on the path itself without checking if the path actually exists on the disk.
|
||||
* If root is specified, only the dotfiles above the root are checked (i.e. the root itself can be within a dotfile when when set to "deny").
|
||||
* The default value is 'ignore'.
|
||||
* 'allow' No special treatment for dotfiles
|
||||
* 'deny' Send a 403 for any request for a dotfile
|
||||
* 'ignore' Pretend like the dotfile does not exist and call next()
|
||||
*/
|
||||
* Set how "dotfiles" are treated when encountered. A dotfile is a file or directory that begins with a dot (".").
|
||||
* Note this check is done on the path itself without checking if the path actually exists on the disk.
|
||||
* If root is specified, only the dotfiles above the root are checked (i.e. the root itself can be within a dotfile when when set to "deny").
|
||||
* The default value is 'ignore'.
|
||||
* 'allow' No special treatment for dotfiles
|
||||
* 'deny' Send a 403 for any request for a dotfile
|
||||
* 'ignore' Pretend like the dotfile does not exist and call next()
|
||||
*/
|
||||
dotfiles?: string;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user