cif.ts 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * Copyright (c) 2017-2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author David Sehnal <david.sehnal@gmail.com>
  5. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  6. */
  7. import parseText from './cif/text/parser'
  8. import parseBinary from './cif/binary/parser'
  9. import { Frame } from './cif/data-model'
  10. import { toDatabaseCollection, toDatabase } from './cif/schema'
  11. import { mmCIF_Schema, mmCIF_Database } from './cif/schema/mmcif'
  12. import { CCD_Schema, CCD_Database } from './cif/schema/ccd'
  13. import { BIRD_Schema, BIRD_Database } from './cif/schema/bird'
  14. import { dic_Schema, dic_Database } from './cif/schema/dic';
  15. export default {
  16. parse: (data: string|Uint8Array) => typeof data === 'string' ? parseText(data) : parseBinary(data),
  17. parseText,
  18. parseBinary,
  19. toDatabaseCollection,
  20. toDatabase,
  21. schema: {
  22. mmCIF: (frame: Frame) => toDatabase<mmCIF_Schema, mmCIF_Database>(mmCIF_Schema, frame),
  23. CCD: (frame: Frame) => toDatabase<CCD_Schema, CCD_Database>(CCD_Schema, frame),
  24. BIRD: (frame: Frame) => toDatabase<BIRD_Schema, BIRD_Database>(BIRD_Schema, frame),
  25. dic: (frame: Frame) => toDatabase<dic_Schema, dic_Database>(dic_Schema, frame)
  26. }
  27. }
  28. export * from './cif/data-model'