directus

Форк
0
/
get-graphql-type.ts 
44 строки · 1.2 Кб
1
import type { Type } from '@directus/types';
2
import type { GraphQLType } from 'graphql';
3
import { GraphQLBoolean, GraphQLFloat, GraphQLInt, GraphQLList, GraphQLScalarType, GraphQLString } from 'graphql';
4
import { GraphQLJSON } from 'graphql-compose';
5
import { GraphQLBigInt } from '../services/graphql/types/bigint.js';
6
import { GraphQLDate } from '../services/graphql/types/date.js';
7
import { GraphQLGeoJSON } from '../services/graphql/types/geojson.js';
8
import { GraphQLHash } from '../services/graphql/types/hash.js';
9

10
export function getGraphQLType(
11
	localType: Type | 'alias' | 'unknown',
12
	special: string[],
13
): GraphQLScalarType | GraphQLList<GraphQLType> {
14
	if (special.includes('conceal')) {
15
		return GraphQLHash;
16
	}
17

18
	switch (localType) {
19
		case 'boolean':
20
			return GraphQLBoolean;
21
		case 'bigInteger':
22
			return GraphQLBigInt;
23
		case 'integer':
24
			return GraphQLInt;
25
		case 'decimal':
26
		case 'float':
27
			return GraphQLFloat;
28
		case 'csv':
29
			return new GraphQLList(GraphQLString);
30
		case 'json':
31
			return GraphQLJSON;
32
		case 'geometry':
33
			return GraphQLGeoJSON;
34
		case 'time':
35
		case 'timestamp':
36
		case 'dateTime':
37
		case 'date':
38
			return GraphQLDate;
39
		case 'hash':
40
			return GraphQLHash;
41
		default:
42
			return GraphQLString;
43
	}
44
}
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.