diff --git a/packages/core/strapi/lib/commands/admin-create.js b/packages/core/strapi/lib/commands/admin-create.js index 1a893050e9..bdc529e989 100644 --- a/packages/core/strapi/lib/commands/admin-create.js +++ b/packages/core/strapi/lib/commands/admin-create.js @@ -96,11 +96,12 @@ async function createAdmin({ email, password, firstname, lastname }) { const isTSProject = await tsUtils.isUsingTypeScript(appDir); const outDir = await tsUtils.resolveOutDir(appDir); - if (isTSProject) + if (isTSProject) { await tsUtils.compile(appDir, { watch: false, configOptions: { options: { incremental: true } }, }); + } const distDir = isTSProject ? outDir : appDir; diff --git a/packages/core/strapi/lib/core-api/controller/index.d.ts b/packages/core/strapi/lib/core-api/controller/index.d.ts index 390e3d2d38..62ece69d2d 100644 --- a/packages/core/strapi/lib/core-api/controller/index.d.ts +++ b/packages/core/strapi/lib/core-api/controller/index.d.ts @@ -1,29 +1,27 @@ -import { Context } from 'koa'; +import { Context, Next } from 'koa'; type ControllerResponse = T | Promise | undefined; -interface BaseController { +interface Controller { transformResponse(data: object, meta: object): object; sanitizeOutput(data: object, ctx: Context): Promise; sanitizeInput(data: object, ctx: Context): Promise; } -export interface SingleTypeController extends BaseController { - find(ctx: Context): ControllerResponse; - update(ctx: Context): ControllerResponse; - delete(ctx: Context): ControllerResponse; +export interface SingleTypeController extends Controller { + find?(ctx: Context, next: Next): ControllerResponse; + update?(ctx: Context, next: Next): ControllerResponse; + delete?(ctx: Context, next: Next): ControllerResponse; } -export interface CollectionTypeController extends BaseController { - find(ctx: Context): ControllerResponse; - findOne(ctx: Context): ControllerResponse; - create(ctx: Context): ControllerResponse; - update(ctx: Context): ControllerResponse; - delete(ctx: Context): ControllerResponse; +export interface CollectionTypeController extends Controller { + find?(ctx: Context, next: Next): ControllerResponse; + findOne?(ctx: Context, next: Next): ControllerResponse; + create?(ctx: Context, next: Next): ControllerResponse; + update?(ctx: Context, next: Next): ControllerResponse; + delete?(ctx: Context, next: Next): ControllerResponse; } -export type Controller = SingleTypeController | CollectionTypeController; - export type GenericController = Partial & { [method: string | number | symbol]: (ctx: Context) => unknown; }; diff --git a/packages/generators/generators/lib/templates/ts/middleware.js.hbs b/packages/generators/generators/lib/templates/ts/middleware.js.hbs index 3a36f89619..3be9e9503c 100644 --- a/packages/generators/generators/lib/templates/ts/middleware.js.hbs +++ b/packages/generators/generators/lib/templates/ts/middleware.js.hbs @@ -2,7 +2,9 @@ * `{{ name }}` middleware. */ -export default (config, { strapi }) => { +import '@strapi/strapi'; + +export default (config, { strapi }: { strapi: Strapi }) => { // Add your own logic here. return async (ctx, next) => { strapi.log.info('In {{ name }} middleware.');