import { debug, ScopeError, SourceError, Source } from "utils/debug"; import * as xml from "xml"; import { View, Template, KeyedTemplate } from "ui/core/view"; import { File, path, knownFolders } from "file-system"; import { isString, isFunction, isDefined } from "utils/types"; import { ComponentModule, setPropertyValue, getComponentModule } from "ui/builder/component-builder"; import { platformNames, device } from "platform"; import { LoadOptions } from "ui/builder"; import { Page } from "ui/page"; import { resolveFileName } from "file-system/file-name-resolver"; import * as traceModule from "trace"; const defaultNameSpaceMatcher = /tns\.xsd$/i; var trace: typeof traceModule; function ensureTrace() { if (!trace) { trace = require("trace"); } } export function parse(value: string | Template, context: any): View { if (isString(value)) { var viewToReturn: View; if (context instanceof View) { context = getExports(context); } var componentModule = parseInternal(value, context); if (componentModule) { viewToReturn = componentModule.component; } return viewToReturn; } else if (isFunction(value)) { return (