1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/notadd-magnus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Согласно ts автоматически генерировать .graphql и .proto файлы конфигурации.

Установка

npm install -g @notadd/magnus

Добавить magnus.json

{
	"inputs": [ "demo/src/app.resolver.ts" ],
	"output": "demo/src/magnus",
	"temp": "demo/src/magnus/temp",
    "debug": true,
    "copyTo": []
}

Запустить magnus

// Режим разработки
magnus
// Производственный режим автоматически копирует сгенерированные файлы конфигурации в указанную папку
magnus --prod

ORM

@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;
    }
}

Перекрытие ORM

@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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/notadd-magnus.git
git@api.gitlife.ru:oschina-mirror/notadd-magnus.git
oschina-mirror
notadd-magnus
notadd-magnus
master