mirror of
https://github.com/strapi/strapi.git
synced 2025-08-26 01:35:56 +00:00
Improve types to mvp
This commit is contained in:
parent
ccd95221c8
commit
d709898a82
@ -1,10 +1,9 @@
|
|||||||
const { createCoreController } = require('@strapi/strapi').factories;
|
const { createCoreController } = require('@strapi/strapi').factories;
|
||||||
|
|
||||||
// NOTE: should the file name be useless ? if we use the uid we should generate the controller with the same uid instead ?
|
|
||||||
|
|
||||||
module.exports = createCoreController('api::address.address', {
|
module.exports = createCoreController('api::address.address', {
|
||||||
async find(ctx) {
|
async find(ctx) {
|
||||||
const { results } = await strapi.service('api::address.address').find();
|
const { results } = await strapi.service('api::address.address').find();
|
||||||
|
|
||||||
ctx.body = await this.sanitizeOutput(results);
|
ctx.body = await this.sanitizeOutput(results);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
25
packages/core/strapi/lib/core-api/controller/index.d.ts
vendored
Normal file
25
packages/core/strapi/lib/core-api/controller/index.d.ts
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { Context } from 'koa';
|
||||||
|
|
||||||
|
type Response = object;
|
||||||
|
|
||||||
|
interface BaseController {
|
||||||
|
transformResponse(data: object, meta: object): object;
|
||||||
|
sanitizeOutput(data: object, ctx: Context): Promise<object>;
|
||||||
|
sanitizeInput(data: object, ctx: Context): Promise<object>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SingleTypeController extends BaseController {
|
||||||
|
find(ctx: Context): Promise<Response>;
|
||||||
|
update(ctx: Context): Promise<Response>;
|
||||||
|
delete(ctx: Context): Promise<Response>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CollectionTypeController extends BaseController {
|
||||||
|
find(ctx: Context): Promise<Response>;
|
||||||
|
findOne(ctx: Context): Promise<Response>;
|
||||||
|
create(ctx: Context): Promise<Response>;
|
||||||
|
update(ctx: Context): Promise<Response>;
|
||||||
|
delete(ctx: Context): Promise<Response>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Controller = SingleTypeController | CollectionTypeController;
|
21
packages/core/strapi/lib/core-api/service/index.d.ts
vendored
Normal file
21
packages/core/strapi/lib/core-api/service/index.d.ts
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
type Entity = object;
|
||||||
|
|
||||||
|
interface BaseService {
|
||||||
|
getFetchParams(params: object): object;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SingleTypeService extends BaseService {
|
||||||
|
find(params: object): Promise<Entity>;
|
||||||
|
createOrUpdate(params: object): Promise<Entity>;
|
||||||
|
delete(params: object): Promise<Entity>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CollectionTypeService extends BaseService {
|
||||||
|
find(params: object): Promise<Entity[]>;
|
||||||
|
findOne(params: object): Promise<Entity>;
|
||||||
|
create(params: object): Promise<Entity>;
|
||||||
|
update(params: object): Promise<Entity>;
|
||||||
|
delete(params: object): Promise<Entity>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type Service = SingleTypeService | CollectionTypeService;
|
@ -8,6 +8,9 @@ const { ValidationError } = require('@strapi/utils').errors;
|
|||||||
const createSingleTypeService = ({ contentType }) => {
|
const createSingleTypeService = ({ contentType }) => {
|
||||||
const { uid } = contentType;
|
const { uid } = contentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {import('./').SingleTypeService}
|
||||||
|
*/
|
||||||
return {
|
return {
|
||||||
/**
|
/**
|
||||||
* Returns singleType content
|
* Returns singleType content
|
||||||
|
52
packages/core/strapi/lib/factories.d.ts
vendored
52
packages/core/strapi/lib/factories.d.ts
vendored
@ -1,48 +1,9 @@
|
|||||||
type SingleTypeControllerConfig = {
|
import { Service } from './core-api/service';
|
||||||
find(): void;
|
import { Controller } from './core-api/controller';
|
||||||
update(): void;
|
|
||||||
delete(): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
type CollectionTypeControllerConfig = {
|
type ControllerConfig = Controller;
|
||||||
find(): void;
|
|
||||||
findOne(): void;
|
|
||||||
create(): void;
|
|
||||||
update(): void;
|
|
||||||
delete(): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
type ControllerConfig = SingleTypeControllerConfig | CollectionTypeControllerConfig;
|
type ServiceConfig = Service;
|
||||||
|
|
||||||
interface SingleTypeController {}
|
|
||||||
|
|
||||||
interface CollectionTypeController {}
|
|
||||||
|
|
||||||
type Controller = SingleTypeController | CollectionTypeController;
|
|
||||||
|
|
||||||
type SingleTypeServiceConfig = {
|
|
||||||
find(): void;
|
|
||||||
update(): void;
|
|
||||||
delete(): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
type CollectionTypeServiceConfig = {
|
|
||||||
find(): void;
|
|
||||||
findOne(): void;
|
|
||||||
create(): void;
|
|
||||||
update(): void;
|
|
||||||
delete(): void;
|
|
||||||
};
|
|
||||||
|
|
||||||
type ServiceConfig = SingleTypeServiceConfig | CollectionTypeServiceConfig;
|
|
||||||
|
|
||||||
interface SingleTypeService {}
|
|
||||||
interface CollectionTypeService {}
|
|
||||||
|
|
||||||
type Service = SingleTypeService | CollectionTypeService;
|
|
||||||
|
|
||||||
export function createCoreController(uid: string, cfg: ControllerConfig): Controller;
|
|
||||||
export function createCoreService(uid: string, cfg: ServiceConfig): Service;
|
|
||||||
|
|
||||||
type HandlerConfig = {
|
type HandlerConfig = {
|
||||||
auth: false | { scope: string[] };
|
auth: false | { scope: string[] };
|
||||||
@ -75,10 +36,11 @@ interface Route {
|
|||||||
method: string;
|
method: string;
|
||||||
path: string;
|
path: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Router {
|
interface Router {
|
||||||
prefix: string;
|
prefix: string;
|
||||||
routes: Route[];
|
routes: Route[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createCoreRouter(uid: string, cfg: RouterConfig): Router;
|
export function createCoreRouter(uid: string, cfg: RouterConfig): () => Router;
|
||||||
|
export function createCoreController(uid: string, cfg: ControllerConfig): () => Controller;
|
||||||
|
export function createCoreService(uid: string, cfg: ServiceConfig): () => Service;
|
||||||
|
@ -35,7 +35,7 @@ type Params<T> = {
|
|||||||
files?: any;
|
files?: any;
|
||||||
};
|
};
|
||||||
|
|
||||||
interface EntityService {
|
export interface EntityService {
|
||||||
uploadFiles<K extends keyof AllTypes, T extends AllTypes[K]>(uid: K, entity, files);
|
uploadFiles<K extends keyof AllTypes, T extends AllTypes[K]>(uid: K, entity, files);
|
||||||
wrapParams<K extends keyof AllTypes, T extends AllTypes[K]>(
|
wrapParams<K extends keyof AllTypes, T extends AllTypes[K]>(
|
||||||
params: Params<T>,
|
params: Params<T>,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user