-
Notifications
You must be signed in to change notification settings - Fork 10
/
gen-gtypes-directly.ts
42 lines (36 loc) · 1.46 KB
/
gen-gtypes-directly.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { generateTypeScriptTypes, GenerateTypescriptOptions } from 'graphql-schema-typescript';
import { makeExecutableSchema } from 'graphql-tools';
import glob from 'glob';
const generateGTypes = (schemaDir: string, outputPath: string) => {
const schemasPath = glob.sync(schemaDir + '/*.+(js|ts|jsx|tsx)');
let typeDefs: string[] = [];
schemasPath.forEach(function (schema) {
typeDefs.push(require(schema));
});
const executableSchema = makeExecutableSchema({ typeDefs });
const options: GenerateTypescriptOptions = {
typePrefix: '',
noStringEnum: true,
smartTResult: true,
asyncResult: true
};
return generateTypeScriptTypes(executableSchema, outputPath, options);
};
// Generate Guest Gtypes
generateGTypes(process.cwd() + '/src/routes/impl/gapi/guest/schema', process.cwd() + '/src/routes/impl/gapi/guest/gtypes.d.ts').then(() => {
console.log('Complete generate Guest Gtypes.');
}).catch(err => {
console.log(err);
});
// Generate Member Gtypes
generateGTypes(process.cwd() + '/src/routes/impl/gapi/member/schema', process.cwd() + '/src/routes/impl/gapi/member/gtypes.d.ts').then(() => {
console.log('Complete generate Member Gtypes.');
}).catch(err => {
console.log(err);
});
// Generate Admin Gtypes
generateGTypes(process.cwd() + '/src/routes/impl/gapi/admin/schema', process.cwd() + '/src/routes/impl/gapi/admin/gtypes.d.ts').then(() => {
console.log('Complete generate Admin Gtypes.');
}).catch(err => {
console.log(err);
});