@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
39 lines • 4.9 kB
JavaScript
import { DotAccessor } from '@iotize/common/data-accessor';
import { xmlToJson } from '@iotize/common/xml';
import { IoTizeStudioToTapConfigConverter } from '@iotize/tap/config/iotize-studio';
export function parseTapConfiguratorConfig(fileContent) {
if (isJsonString(fileContent)) {
const config = JSON.parse(fileContent);
// this.tapConfigPickerservice.onConfigSelected(config);
return config;
}
else {
// if (IotizeConfigFactory.fromXML(fileContent)) {
return fromXml(fileContent);
}
}
export function isJsonString(str) {
try {
const json = JSON.parse(str);
return typeof json === 'object';
}
catch (e) {
return false;
}
}
export function fromXml(fileContent) {
// console.log('File content', fileContent);
// const parser = new DOMParser();
// const xmlConfig = parser.parseFromString(fileContent, 'application/xml');
// let xmlConfig = parse(fileContent);
const xmlConfig = iotizeStudioConfigToJson(fileContent);
const config = new IoTizeStudioToTapConfigConverter().convert(new DotAccessor(xmlConfig));
return { config };
}
function iotizeStudioConfigToJson(fileContent) {
return xmlToJson(fileContent, {
attributeNamePrefix: '',
ignoreAttributes: false,
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWNvbmZpZy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvY29uZmlnL3NyYy9saWIvdGFwLWNvbmZpZy1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdwRixNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLFdBQW1CO0lBRW5CLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzdCLE1BQU0sTUFBTSxHQUEwQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlELHdEQUF3RDtRQUN4RCxPQUFPLE1BQU0sQ0FBQztLQUNmO1NBQU07UUFDTCxrREFBa0Q7UUFDbEQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDN0I7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDO0tBQ2pDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsV0FBbUI7SUFDekMsNENBQTRDO0lBQzVDLGtDQUFrQztJQUNsQyw0RUFBNEU7SUFDNUUsc0NBQXNDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksZ0NBQWdDLEVBQUUsQ0FBQyxPQUFPLENBQzNELElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUMzQixDQUFDO0lBQ0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFdBQW1CO0lBQ25ELE9BQU8sU0FBUyxDQUFDLFdBQVcsRUFBRTtRQUM1QixtQkFBbUIsRUFBRSxFQUFFO1FBQ3ZCLGdCQUFnQixFQUFFLEtBQUs7S0FDeEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvdEFjY2Vzc29yIH0gZnJvbSAnQGlvdGl6ZS9jb21tb24vZGF0YS1hY2Nlc3Nvcic7XG5pbXBvcnQgeyB4bWxUb0pzb24gfSBmcm9tICdAaW90aXplL2NvbW1vbi94bWwnO1xuaW1wb3J0IHsgSW9UaXplU3R1ZGlvVG9UYXBDb25maWdDb252ZXJ0ZXIgfSBmcm9tICdAaW90aXplL3RhcC9jb25maWcvaW90aXplLXN0dWRpbyc7XG5pbXBvcnQgeyBUYXBDb25maWd1cmF0b3JDb25maWcgfSBmcm9tICdAaW90aXplL3RhcC9jb25maWcvc2NoZW1hL3YxJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlVGFwQ29uZmlndXJhdG9yQ29uZmlnKFxuICBmaWxlQ29udGVudDogc3RyaW5nXG4pOiBUYXBDb25maWd1cmF0b3JDb25maWcge1xuICBpZiAoaXNKc29uU3RyaW5nKGZpbGVDb250ZW50KSkge1xuICAgIGNvbnN0IGNvbmZpZzogVGFwQ29uZmlndXJhdG9yQ29uZmlnID0gSlNPTi5wYXJzZShmaWxlQ29udGVudCk7XG4gICAgLy8gdGhpcy50YXBDb25maWdQaWNrZXJzZXJ2aWNlLm9uQ29uZmlnU2VsZWN0ZWQoY29uZmlnKTtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9IGVsc2Uge1xuICAgIC8vIGlmIChJb3RpemVDb25maWdGYWN0b3J5LmZyb21YTUwoZmlsZUNvbnRlbnQpKSB7XG4gICAgcmV0dXJuIGZyb21YbWwoZmlsZUNvbnRlbnQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0pzb25TdHJpbmcoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShzdHIpO1xuICAgIHJldHVybiB0eXBlb2YganNvbiA9PT0gJ29iamVjdCc7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21YbWwoZmlsZUNvbnRlbnQ6IHN0cmluZyk6IFRhcENvbmZpZ3VyYXRvckNvbmZpZyB7XG4gIC8vIGNvbnNvbGUubG9nKCdGaWxlIGNvbnRlbnQnLCBmaWxlQ29udGVudCk7XG4gIC8vIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgLy8gY29uc3QgeG1sQ29uZmlnID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhmaWxlQ29udGVudCwgJ2FwcGxpY2F0aW9uL3htbCcpO1xuICAvLyBsZXQgeG1sQ29uZmlnID0gcGFyc2UoZmlsZUNvbnRlbnQpO1xuICBjb25zdCB4bWxDb25maWcgPSBpb3RpemVTdHVkaW9Db25maWdUb0pzb24oZmlsZUNvbnRlbnQpO1xuICBjb25zdCBjb25maWcgPSBuZXcgSW9UaXplU3R1ZGlvVG9UYXBDb25maWdDb252ZXJ0ZXIoKS5jb252ZXJ0KFxuICAgIG5ldyBEb3RBY2Nlc3Nvcih4bWxDb25maWcpXG4gICk7XG4gIHJldHVybiB7IGNvbmZpZyB9O1xufVxuXG5mdW5jdGlvbiBpb3RpemVTdHVkaW9Db25maWdUb0pzb24oZmlsZUNvbnRlbnQ6IHN0cmluZykge1xuICByZXR1cm4geG1sVG9Kc29uKGZpbGVDb250ZW50LCB7XG4gICAgYXR0cmlidXRlTmFtZVByZWZpeDogJycsXG4gICAgaWdub3JlQXR0cmlidXRlczogZmFsc2UsXG4gIH0pO1xufVxuIl19