generate-graphql-types.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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(
  23. result => {
  24. process.exit(0);
  25. },
  26. err => {
  27. console.error(err);
  28. process.exit(1);
  29. },
  30. );