serializeapp is a node utility module to serialize a Qlik Sense app into a JSON object.
Pass it a qsocks or a enigma.js app object and it returns a promise containing the JSON representation of that app.
Verified to work in the browser using browserify or webpack.
npm install serializeapp
or
yarn add serializeapp
Connect to Qlik Sense Desktop, open a app and pass that into serializeapp.
var qsocks = require('qsocks')
var serializeapp = require('serializeapp')
qsocks.Connect()
.then(global => global.openDoc('Executive Dashboard.qvf'))
.then(app => serializeapp(app))
.then(result => console.log(result))
const serializeapp = require('serializeapp')
const enigma = require('enigma.js')
const WebSocket = require('ws')
enigma.getService('qix', {
schema: require(`./node_modules/enigma.js/schemas/qix/3.2/schema.json`),
session: {
host: 'localhost',
port: 4848,
secure: false
},
createSocket: (url) => new WebSocket(url)
})
.then(qix => qix.global.openDoc('Executive Dashboard.qvf'))
.then(app => serializeapp(app))
.then(result => console.log(result))
{ properties: {}, -> @Object AppEntry loadscript: '', -> @String Loadscript sheets: [], -> @Array - Array of GenericObjectEntry and its children stories: [], -> @Array - Array of GenericObjectEntry and its children masterobjects: [], -> @Array - Array of GenericObjectEntry dataconnections: [], -> @Array - Array of Connection dimensions: [], -> @Array - Array of GenericDimensionProperties measures: [], -> @Array - Array of GenericMeasureProperties bookmarks: [], -> @Array - Array ofGenericBookmarkLayout embeddedmedia: [], -> @Array of MediaListItem fields: [], -> @Array of NxFieldDescription snapshots: [] -> @Array of Array of GenericBookmarkLayout }