generate-graphql-types.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { generate } from 'graphql-code-generator';
  2. import * as path from 'path';
  3. import { API_PATH, API_PORT } from '../shared/shared-constants';
  4. import { downloadIntrospectionSchema } from './download-introspection-schema';
  5. const CLIENT_QUERY_FILES = path.join(__dirname, '../admin-ui/src/app/data/definitions/*.ts');
  6. const SCHEMA_OUTPUT_FILE = path.join(__dirname, '../schema.json');
  7. // tslint:disable:no-console
  8. downloadIntrospectionSchema(SCHEMA_OUTPUT_FILE)
  9. .then((downloaded) => {
  10. if (!downloaded) {
  11. console.log('Attempting to generate types from existing schema.json...');
  12. }
  13. return generate({
  14. schema: SCHEMA_OUTPUT_FILE,
  15. clientSchema: path.join(__dirname, 'client-schema.ts'),
  16. template: 'typescript',
  17. out: path.join(__dirname, '../shared/generated-types.ts'),
  18. overwrite: true,
  19. args: [CLIENT_QUERY_FILES],
  20. });
  21. })
  22. .then(result => {
  23. process.exit(0);
  24. },
  25. err => {
  26. console.error(err);
  27. process.exit(1);
  28. });