import SimpleTypeManifest from '@cafetextual/util/dist/src/manifest/SimpleTypeManifest'; import { ArchiveDeserializer } from '@cafetextual/util'; import GrammarTestSuite from "../../src/org/subalternproductions/seepResource/dsl/testsuite/GrammarTestSuite"; import { TS_MANIFEST } from "../../src/org/subalternproductions/seepResource/dsl/serialize/MetaGrammarManifest"; /** * * Deserialized Grammar and testsuite resources * * - doesn't support compressed format * */ export function deserializeResources(data:any):Array<{rtype:string, data:any, suri:string}> { var deserializer:ArchiveDeserializer = new ArchiveDeserializer( TS_MANIFEST ) var out:any = deserializer.deserialize(data) //deserializer.deserializeWithClassIds(data) return out.resources; } // deserializeResources export function splitSrcID(href:string):{parentId:string, type:string, childId:string} { var split:Array = href.split('/') return {parentId:split[0], type:split[1], childId:split[2]} } // splitSrcID /** * */ export function deserializeTestsuite(data:any):GrammarTestSuite { var deserializer:ArchiveDeserializer = new ArchiveDeserializer( TS_MANIFEST ) var out:any = deserializer.deserialize(data) //deserializer.deserializeWithClassIds(data) // --- what we actually have is an array of 'grammar-test' types --- var resources:Array<{rtype:string, data:any, suri:string}> = deserializeResources(data); var item:{rtype:string, data:any, suri:string} for (item of resources) { if (item.data instanceof GrammarTestSuite) { return item.data as GrammarTestSuite } } return null }