diff --git a/types/koa-views/index.d.ts b/types/koa-views/index.d.ts new file mode 100644 index 0000000000..5d9d88b647 --- /dev/null +++ b/types/koa-views/index.d.ts @@ -0,0 +1,60 @@ +// Type definitions for koa-views 2.x +// Project: https://github.com/queckezz/koa-views +// Definitions by: Alex Friedman +// Definitions: https://github.com/brooklyndev/DefinitelyTyped + +/* =================== USAGE =================== + + import * as Koa from 'koa'; + import * as views from 'koa-views'; + + const app = new Koa(); + app.use(views(__dirname + '/views', { + map: { + html: 'underscore' + } + })); + + app.use(async function (ctx, next) { + await ctx.render('user', { + user: 'John' + }); + }); + + =============================================== */ + + +import * as Koa from "koa"; + +declare function views(dir: string, opts?: { + + /* + * default extension for your views + */ + extension?: string, + /* + * these options will get passed to the view engine + */ + options?: any, + /* + * map a file extension to an engine + */ + map?: any, + /* + * replace consolidate as default engine source + */ + engineSource?: any, + +}): Koa.Middleware; +declare namespace views { } + +export = views; + + +import * as koa from "koa"; + +declare module 'koa' { + interface Context { + render(viewPath: string, locals?: any): Promise; + } +} diff --git a/types/koa-views/koa-views-tests.ts b/types/koa-views/koa-views-tests.ts new file mode 100644 index 0000000000..f025f55d93 --- /dev/null +++ b/types/koa-views/koa-views-tests.ts @@ -0,0 +1,19 @@ +import * as Koa from "koa"; +import * as views from "koa-views"; + +const app = new Koa(); + +app.use(views('/views', { + map: { + html: 'underscore' + }, + extension: '.html', + engineSource: {}, + options: {} +})); + +app.use((ctx: Koa.Context) => { + ctx.render('user', { + user: 'John' + }).then(() => console.log('done render call')); +}); \ No newline at end of file diff --git a/types/koa-views/tsconfig.json b/types/koa-views/tsconfig.json new file mode 100644 index 0000000000..69d0c62b8c --- /dev/null +++ b/types/koa-views/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-views-tests.ts" + ] +} \ No newline at end of file diff --git a/types/koa-views/tslint.json b/types/koa-views/tslint.json new file mode 100644 index 0000000000..0f47deabb4 --- /dev/null +++ b/types/koa-views/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": "../tslint.json", + "rules": { + "forbidden-types": false + } +} \ No newline at end of file