Слияние кода завершено, страница обновится автоматически
Согласно ts автоматически генерировать .graphql
и .proto
файлы конфигурации.
npm install -g @notadd/magnus
{
"inputs": [ "demo/src/app.resolver.ts" ],
"output": "demo/src/magnus",
"temp": "demo/src/magnus/temp",
"debug": true,
"copyTo": []
}
// Режим разработки
magnus
// Производственный режим автоматически копирует сгенерированные файлы конфигурации в указанную папку
magnus --prod
@Magnus({
entities: [
User,Post
],
})
export class Controller<T> extends MagnusBase<T> {
// Автоматически генерировать getUser,getPost
get repository() {
return getRepository<T>(this.tablename);
}
@Query()
async get(entity: T): Promise<T> {
return this.repository.findOne({
where: entity,
});
}
// Автоматически генерирует addUser,addPost
@Mutation()
async add(entity: Partial<T>): Promise<T> {
return {
id: 1,
} as any;
}
// Автоматически генерировать insertUser,insertPost
@Mutation()
async insert(entity: T): Promise<InsertResult<T>> {
return {
id: 1,
} as any;
}
}
@Magnus()
export class Controller2 extends MagnusBase<User> {
tablename: string = 'User';
/**
* Перекрывает getUser в Controller, обрабатывает отдельно
**/
@Query()
getUser(): User {
return {
id: 1,
};
}
}
import { createRunner } from '@notadd/magnus-core';
import { Controller, Controller2 } from './index';
import { join } from 'path';
import { Query } from '../magnus/magnus'
import { parse } from '@notadd/magnus-graphql';
const map = require(join(__dirname, '..', 'magnus/magnus.metadata.json'));
const context = require(join(__dirname, '..', 'magnus/magnus.server.json'));
const run = createRunner(map, context, {
Controller,
Controller2,
});
const query: Query = run.query;
async function run2() {
const res1 = await run(`{
getUser{
id
}
}`);
const res = await query.getUser(`{
id
}`);
}
run2();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )