module.exports = function()

in debug-mode-plugin/scripts/enable-debug-mode.js [20:46]


module.exports = function (context) {
    const path = require('path');
    const shell = require('shelljs');

    const libPath = path.resolve(context.opts.projectRoot, 'platforms', 'windows', 'cordova', 'lib');
    const appUtilsPath = path.join(libPath, 'WindowsStoreAppUtils.ps1');
    const appUtilsBackupPath = path.join(libPath, 'WindowsStoreAppUtils.ps1.bak');
    const srcScriptPath = path.join(__dirname, 'EnableDebuggingForPackage.ps1');
    const destScriptPath = path.join(libPath, 'EnableDebuggingForPackage.ps1');

    // copy over the patch
    shell.cp('-f', srcScriptPath, libPath);
    shell.cp('-f', appUtilsPath, appUtilsBackupPath);

    // add extra code to patch
    shell.sed(
        '-i',
        /^\s*\$appActivator .*$/gim,
        '$&\n\n' +
        '    # START ENABLE DEBUG MODE SECTION\n' +
        '    powershell ' + destScriptPath + ' $$ID\n' +
        '    $Ole32 = Add-Type -MemberDefinition "[DllImport(\'Ole32.dll\')]public static extern int CoAllowSetForegroundWindow(IntPtr pUnk, IntPtr lpvReserved);" -Name "Ole32" -Namespace "Win32" -PassThru\n' +
        '    $Ole32::CoAllowSetForegroundWindow([System.Runtime.InteropServices.Marshal]::GetIUnknownForObject($appActivator), [System.IntPtr]::Zero)\n' +
        '    # END ENABLE DEBUG MODE SECTION\n',
        appUtilsPath
    );
};