wsf2json
Version:
Windows Script File (WSF) to JSON converter (including code parsing)
43 lines (39 loc) • 1.51 kB
JavaScript
const {parseWSF, parseWSFStr, extractVBS} = require('../index');
var fs = require('fs');
var chai = require('chai');
var path = require('path');
var assert = chai.assert;
let wsfPath = path.join(__dirname, 'test.wsf');
let wsfJson1;
let wsfJson2;
let debug = process.env.DEBUG_LOG;
describe('Parse Tests', function() {
it('Parse WSF File', function() {
let outPath = path.join(__dirname, 'test_out.json');
parseWSF(wsfPath, debug).then((jobs)=>{
wsfJson1 = JSON.stringify(jobs, null, 2);
if (debug) console.log("Json from file:", wsfJson1)
else fs.writeFileSync(outPath, wsfJson1)
assert.isArray(jobs);
assert.equal(jobs[0].id, "job1")
assert.equal(jobs[1].id, "job2")
}).catch((error)=>{
console.error(error)
})
})
it('Parse WSF File Content', async function() {
let xml = await fs.readFileSync(wsfPath).toString();
assert.equal(xml.substr(0, 5), '<?xml')
let outPath = path.join(__dirname, 'test_out_str.json');
parseWSFStr(xml, __dirname, debug).then((jobs)=>{
wsfJson2 = JSON.stringify(jobs, null, 2);
if (debug) console.log("Json from Str:", wsfJson2)
else fs.writeFileSync(outPath, wsfJson2)
assert.isArray(jobs);
assert.equal(jobs[0].id, "job1")
assert.equal(jobs[1].id, "job2")
}).catch((error)=>{
console.error(error)
})
})
});