From e9f4bfa4649c60192d30e337dcfbb4ee390542ab Mon Sep 17 00:00:00 2001 From: Yoonge <7884008@qq.com> Date: Sun, 16 Apr 2023 02:25:04 +0800 Subject: [PATCH] Add types. --- .eslintrc.js | 1 - app.js => app.ts | 11 +- bin/{www.js => www.ts} | 3 +- package.json | 13 +- pnpm-lock.yaml | 215 ++++++++++++++++++++++++++++++++++ routes/{index.js => index.ts} | 3 +- routes/{user.js => user.ts} | 0 tsconfig.json | 9 +- types/index.d.ts | 2 + 9 files changed, 243 insertions(+), 14 deletions(-) rename app.js => app.ts (85%) rename bin/{www.js => www.ts} (97%) rename routes/{index.js => index.ts} (75%) rename routes/{user.js => user.ts} (100%) create mode 100644 types/index.d.ts diff --git a/.eslintrc.js b/.eslintrc.js index 417580c..4bdb0f5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,7 +7,6 @@ export default { 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended' ], - ignorePatterns: ['tsconfig.json'], parser: '@typescript-eslint/parser', plugins: ['@typescript-eslint'], root: true diff --git a/app.js b/app.ts similarity index 85% rename from app.js rename to app.ts index d150113..ba849e2 100644 --- a/app.js +++ b/app.ts @@ -8,14 +8,15 @@ import bodyparser from 'koa-bodyparser' import json from 'koa-json' import koaStatic from 'koa-static' import logger from 'koa-logger' +// @ts-ignore import onerror from 'koa-onerror' +// @ts-ignore import render from 'koa-art-template' import index from './routes/index.js' import user from './routes/user.js' const _dirName = dirname(fileURLToPath(import.meta.url)) -console.log(_dirName) // error handler onerror(app) @@ -46,15 +47,15 @@ render(app, { // logger app.use(async (ctx, next) => { - const start = new Date() + const start = Number(new Date()) await next() - const ms = new Date() - start + const ms = Number(new Date()) - start console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) }) // routes -app.use(index.routes(), index.allowedMethods()) -app.use(user.routes(), user.allowedMethods()) +app.use(index.routes()).use(index.allowedMethods()) +app.use(user.routes()).use(user.allowedMethods()) // error-handling app.on('error', (err, ctx) => { diff --git a/bin/www.js b/bin/www.ts similarity index 97% rename from bin/www.js rename to bin/www.ts index 3a4d3f1..da30701 100644 --- a/bin/www.js +++ b/bin/www.ts @@ -1,10 +1,11 @@ #!/usr/bin/env node +// @ts-nocheck /** * Module dependencies. */ -import app from '../app.js' +import app from '../app.ts' import http from 'http' import debugModule from 'debug' const debug = new debugModule('demo:server') diff --git a/package.json b/package.json index 536bb52..f10b574 100644 --- a/package.json +++ b/package.json @@ -14,11 +14,11 @@ "type": "module", "version": "0.1.0", "scripts": { - "dev": "npx nodemon bin/www", + "dev": "npx nodemon bin/www.ts", "format": "prettier --plugin-search-dir . --write .", "lint": "eslint .", - "prd": "pm2 start bin/www", - "start": "node bin/www", + "prd": "pm2 start bin/www.ts", + "start": "npx ts-node bin/www.ts", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { @@ -35,6 +35,13 @@ "koa-static": "^5.0.0" }, "devDependencies": { + "@types/debug": "^4.1.7", + "@types/koa": "^2.13.6", + "@types/koa-bodyparser": "^4.3.10", + "@types/koa-json": "^2.0.20", + "@types/koa-logger": "^3.1.2", + "@types/koa-router": "^7.4.4", + "@types/koa-static": "^4.0.2", "@typescript-eslint/eslint-plugin": "^5.58.0", "@typescript-eslint/parser": "^5.58.0", "eslint": "^8.38.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d200c7..d9be0a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,6 +36,27 @@ dependencies: version: registry.npmmirror.com/koa-static@5.0.0 devDependencies: + '@types/debug': + specifier: ^4.1.7 + version: registry.npmmirror.com/@types/debug@4.1.7 + '@types/koa': + specifier: ^2.13.6 + version: registry.npmmirror.com/@types/koa@2.13.6 + '@types/koa-bodyparser': + specifier: ^4.3.10 + version: registry.npmmirror.com/@types/koa-bodyparser@4.3.10 + '@types/koa-json': + specifier: ^2.0.20 + version: registry.npmmirror.com/@types/koa-json@2.0.20 + '@types/koa-logger': + specifier: ^3.1.2 + version: registry.npmmirror.com/@types/koa-logger@3.1.2 + '@types/koa-router': + specifier: ^7.4.4 + version: registry.npmmirror.com/@types/koa-router@7.4.4 + '@types/koa-static': + specifier: ^4.0.2 + version: registry.npmmirror.com/@types/koa-static@4.0.2 '@typescript-eslint/eslint-plugin': specifier: ^5.58.0 version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@5.0.4) @@ -217,12 +238,101 @@ packages: version: 1.0.3 dev: true + registry.npmmirror.com/@types/accepts@1.3.5: + resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/accepts/-/accepts-1.3.5.tgz} + name: '@types/accepts' + version: 1.3.5 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + + registry.npmmirror.com/@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz} + name: '@types/body-parser' + version: 1.19.2 + dependencies: + '@types/connect': registry.npmmirror.com/@types/connect@3.4.35 + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + + registry.npmmirror.com/@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz} + name: '@types/connect' + version: 3.4.35 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + + registry.npmmirror.com/@types/content-disposition@0.5.5: + resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/content-disposition/-/content-disposition-0.5.5.tgz} + name: '@types/content-disposition' + version: 0.5.5 + dev: true + + registry.npmmirror.com/@types/cookies@0.7.7: + resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/cookies/-/cookies-0.7.7.tgz} + name: '@types/cookies' + version: 0.7.7 + dependencies: + '@types/connect': registry.npmmirror.com/@types/connect@3.4.35 + '@types/express': registry.npmmirror.com/@types/express@4.17.17 + '@types/keygrip': registry.npmmirror.com/@types/keygrip@1.0.2 + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + + registry.npmmirror.com/@types/debug@4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.7.tgz} + name: '@types/debug' + version: 4.1.7 + dependencies: + '@types/ms': registry.npmmirror.com/@types/ms@0.7.31 + dev: true + + registry.npmmirror.com/@types/express-serve-static-core@4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz} + name: '@types/express-serve-static-core' + version: 4.17.33 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + '@types/qs': registry.npmmirror.com/@types/qs@6.9.7 + '@types/range-parser': registry.npmmirror.com/@types/range-parser@1.2.4 + dev: true + + registry.npmmirror.com/@types/express@4.17.17: + resolution: {integrity: sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/express/-/express-4.17.17.tgz} + name: '@types/express' + version: 4.17.17 + dependencies: + '@types/body-parser': registry.npmmirror.com/@types/body-parser@1.19.2 + '@types/express-serve-static-core': registry.npmmirror.com/@types/express-serve-static-core@4.17.33 + '@types/qs': registry.npmmirror.com/@types/qs@6.9.7 + '@types/serve-static': registry.npmmirror.com/@types/serve-static@1.15.1 + dev: true + + registry.npmmirror.com/@types/http-assert@1.5.3: + resolution: {integrity: sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/http-assert/-/http-assert-1.5.3.tgz} + name: '@types/http-assert' + version: 1.5.3 + dev: true + + registry.npmmirror.com/@types/http-errors@2.0.1: + resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/http-errors/-/http-errors-2.0.1.tgz} + name: '@types/http-errors' + version: 2.0.1 + dev: true + registry.npmmirror.com/@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz} name: '@types/json-schema' version: 7.0.11 dev: true + registry.npmmirror.com/@types/keygrip@1.0.2: + resolution: {integrity: sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keygrip/-/keygrip-1.0.2.tgz} + name: '@types/keygrip' + version: 1.0.2 + dev: true + registry.npmmirror.com/@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} name: '@types/keyv' @@ -231,12 +341,108 @@ packages: '@types/node': registry.npmmirror.com/@types/node@18.15.11 dev: true + registry.npmmirror.com/@types/koa-bodyparser@4.3.10: + resolution: {integrity: sha512-6ae05pjhmrmGhUR8GYD5qr5p9LTEMEGfGXCsK8VaSL+totwigm8+H/7MHW7K4854CMeuwRAubT8qcc/EagaeIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.10.tgz} + name: '@types/koa-bodyparser' + version: 4.3.10 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-compose@3.2.5: + resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-compose/-/koa-compose-3.2.5.tgz} + name: '@types/koa-compose' + version: 3.2.5 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-json@2.0.20: + resolution: {integrity: sha512-RuQ1Vlpsm/EC5wo2oWCgNnwneixnSQ9aHQAE7nwnbSiCibgfUO2wwSQN6rn8SfF97cRdN9hKAtoc9KSIuiGP6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-json/-/koa-json-2.0.20.tgz} + name: '@types/koa-json' + version: 2.0.20 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-logger@3.1.2: + resolution: {integrity: sha512-sioTA1xlKYiIgryANWPRHBkG3XGbWftw9slWADUPC+qvPIY/yRLSrhvX7zkJwMrntub5dPO0GuAoyGGf0yitfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-logger/-/koa-logger-3.1.2.tgz} + name: '@types/koa-logger' + version: 3.1.2 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-router@7.4.4: + resolution: {integrity: sha512-3dHlZ6CkhgcWeF6wafEUvyyqjWYfKmev3vy1PtOmr0mBc3wpXPU5E8fBBd4YQo5bRpHPfmwC5yDaX7s4jhIN6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-router/-/koa-router-7.4.4.tgz} + name: '@types/koa-router' + version: 7.4.4 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-send@4.1.3: + resolution: {integrity: sha512-daaTqPZlgjIJycSTNjKpHYuKhXYP30atFc1pBcy6HHqB9+vcymDgYTguPdx9tO4HMOqNyz6bz/zqpxt5eLR+VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-send/-/koa-send-4.1.3.tgz} + name: '@types/koa-send' + version: 4.1.3 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + dev: true + + registry.npmmirror.com/@types/koa-static@4.0.2: + resolution: {integrity: sha512-ns/zHg+K6XVPMuohjpOlpkR1WLa4VJ9czgUP9bxkCDn0JZBtUWbD/wKDZzPGDclkQK1bpAEScufCHOy8cbfL0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa-static/-/koa-static-4.0.2.tgz} + name: '@types/koa-static' + version: 4.0.2 + dependencies: + '@types/koa': registry.npmmirror.com/@types/koa@2.13.6 + '@types/koa-send': registry.npmmirror.com/@types/koa-send@4.1.3 + dev: true + + registry.npmmirror.com/@types/koa@2.13.6: + resolution: {integrity: sha512-diYUfp/GqfWBAiwxHtYJ/FQYIXhlEhlyaU7lB/bWQrx4Il9lCET5UwpFy3StOAohfsxxvEQ11qIJgT1j2tfBvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/koa/-/koa-2.13.6.tgz} + name: '@types/koa' + version: 2.13.6 + dependencies: + '@types/accepts': registry.npmmirror.com/@types/accepts@1.3.5 + '@types/content-disposition': registry.npmmirror.com/@types/content-disposition@0.5.5 + '@types/cookies': registry.npmmirror.com/@types/cookies@0.7.7 + '@types/http-assert': registry.npmmirror.com/@types/http-assert@1.5.3 + '@types/http-errors': registry.npmmirror.com/@types/http-errors@2.0.1 + '@types/keygrip': registry.npmmirror.com/@types/keygrip@1.0.2 + '@types/koa-compose': registry.npmmirror.com/@types/koa-compose@3.2.5 + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + + registry.npmmirror.com/@types/mime@3.0.1: + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz} + name: '@types/mime' + version: 3.0.1 + dev: true + + registry.npmmirror.com/@types/ms@0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.31.tgz} + name: '@types/ms' + version: 0.7.31 + dev: true + registry.npmmirror.com/@types/node@18.15.11: resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-18.15.11.tgz} name: '@types/node' version: 18.15.11 dev: true + registry.npmmirror.com/@types/qs@6.9.7: + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz} + name: '@types/qs' + version: 6.9.7 + dev: true + + registry.npmmirror.com/@types/range-parser@1.2.4: + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz} + name: '@types/range-parser' + version: 1.2.4 + dev: true + registry.npmmirror.com/@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.0.tgz} name: '@types/responselike' @@ -251,6 +457,15 @@ packages: version: 7.3.13 dev: true + registry.npmmirror.com/@types/serve-static@1.15.1: + resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.1.tgz} + name: '@types/serve-static' + version: 1.15.1 + dependencies: + '@types/mime': registry.npmmirror.com/@types/mime@3.0.1 + '@types/node': registry.npmmirror.com/@types/node@18.15.11 + dev: true + registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.58.0(@typescript-eslint/parser@5.58.0)(eslint@8.38.0)(typescript@5.0.4): resolution: {integrity: sha512-vxHvLhH0qgBd3/tW6/VccptSfc8FxPQIkmNTVLWcCOVqSBvqpnKkBTYrhcGlXfSnd78azwe+PsjYFj0X34/njA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.58.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.58.0 diff --git a/routes/index.js b/routes/index.ts similarity index 75% rename from routes/index.js rename to routes/index.ts index cdc2f06..12c92bb 100644 --- a/routes/index.js +++ b/routes/index.ts @@ -1,7 +1,8 @@ +import { ParameterizedContext } from 'koa' import koaRouter from 'koa-router' const router = new koaRouter() -router.get('/', async (ctx, next) => { +router.get('/', async (ctx: ParameterizedContext, next) => { await ctx.render('index', { title: 'Hello Koa 2!' }) diff --git a/routes/user.js b/routes/user.ts similarity index 100% rename from routes/user.js rename to routes/user.ts diff --git a/tsconfig.json b/tsconfig.json index fc01da7..fb5fa23 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,15 @@ { // "extends": "./config/base", // "files": ['app.ts', 'index.ts'], - "include": ["./src/**/*"], + "include": ["./**/*"], // "exclude": [ "./src/temp/**/*" ], "compilerOptions": { "baseUrl": "./", "module": "ESNext", "target": "ESNext", // "lib": [ "ESNext", "DOM" ], - "typeRoots": ["src/types", "node_modules/@types"], - // "outDir": "./dist", + "typeRoots": ["./types", "node_modules/@types"], + "outDir": "./dist", // "outFile": "./dist/bundle.js", "sourceMap": true, "allowJs": true, @@ -31,5 +31,8 @@ // "strictNullChecks": true, // "forceConsistentCasingInFileNames": true, // "noFallthroughCasesInSwitch": false, + }, + "ts-node": { + "esm": true } } diff --git a/types/index.d.ts b/types/index.d.ts new file mode 100644 index 0000000..9fb2a12 --- /dev/null +++ b/types/index.d.ts @@ -0,0 +1,2 @@ +declare module 'koa-onerror' +declare module 'koa-art-template'