import Tagged = Type.Topology.Tagged export namespace Tag { export function isTagged(tag: any) { if (!tag) return false if (this.isTaggedArray(tag)) { return true } if (tag.tag) { return true } return false } export function isTaggedArray(tag: any) { if (!Array.isArray(tag)) return false tag = tag[0] if (tag && tag.tag) return true return false } export function get(tag: any | any[]) { if (isTaggedArray(tag)) { return tag[0].tag } if (!isTagged(tag)) return null return tag.tag } export function set(item: Tagged | Tagged[], tag: string) { if (!item) return if (Array.isArray(item)) { for (let child of item) { if (!child) continue child.tag = tag } return } item.tag = tag return } }