Merge bed27fcb15
into 4cb5aa45ae
This commit is contained in:
commit
7571b0503d
27
package.json
27
package.json
|
@ -1,25 +1,32 @@
|
|||
{
|
||||
"name": "@novnc/novnc",
|
||||
"version": "1.6.0",
|
||||
"version": "1.6.1-alpha.1",
|
||||
"description": "An HTML5 VNC client",
|
||||
"browser": "lib/rfb",
|
||||
"directories": {
|
||||
"lib": "lib",
|
||||
"doc": "docs",
|
||||
"test": "tests"
|
||||
},
|
||||
"type": "module",
|
||||
"files": [
|
||||
"lib",
|
||||
"core",
|
||||
"vendor",
|
||||
"AUTHORS",
|
||||
"VERSION",
|
||||
"docs/API.md",
|
||||
"docs/LIBRARY.md",
|
||||
"docs/LICENSE*"
|
||||
],
|
||||
"exports": {
|
||||
".": "./core/rfb.js",
|
||||
"./lib/*": "./core/*.js",
|
||||
"./lib/*.js": "./core/*.js",
|
||||
"./core/*": "./core/*.js",
|
||||
"./core/*.js": "./core/*.js",
|
||||
"./lib/vendor/*": "./vendor/*.js",
|
||||
"./lib/vendor/*.js": "./vendor/*.js",
|
||||
"./vendor/*": "./vendor/*.js",
|
||||
"./vendor/*.js": "./vendor/*.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint app core po/po2js po/xgettext-html tests utils",
|
||||
"test": "karma start karma.conf.js",
|
||||
"prepublish": "node ./utils/convert.js --clean"
|
||||
"test": "karma start karma.conf.cjs"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
6
po/po2js
6
po/po2js
|
@ -17,9 +17,9 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
const { program } = require('commander');
|
||||
const fs = require('fs');
|
||||
const pofile = require("pofile");
|
||||
import { program } from 'commander';
|
||||
import fs from 'fs';
|
||||
import pofile from "pofile";
|
||||
|
||||
program
|
||||
.argument('<input>')
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
* Licensed under MPL 2.0 (see LICENSE.txt)
|
||||
*/
|
||||
|
||||
const { program } = require('commander');
|
||||
const jsdom = require("jsdom");
|
||||
const fs = require("fs");
|
||||
import { program } from 'commander';
|
||||
import jsdom from 'jsdom';
|
||||
import fs from 'fs';
|
||||
|
||||
program
|
||||
.argument('<INPUT...>')
|
||||
|
@ -106,7 +106,7 @@ let output = "";
|
|||
|
||||
for (let str in strings) {
|
||||
output += "#:";
|
||||
for (location in strings[str]) {
|
||||
for (let location in strings[str]) {
|
||||
output += " " + location;
|
||||
}
|
||||
output += "\n";
|
||||
|
|
140
utils/convert.js
140
utils/convert.js
|
@ -1,140 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
const path = require('path');
|
||||
const { program } = require('commander');
|
||||
const fs = require('fs');
|
||||
const fse = require('fs-extra');
|
||||
const babel = require('@babel/core');
|
||||
|
||||
program
|
||||
.option('-m, --with-source-maps [type]', 'output source maps when not generating a bundled app (type may be empty for external source maps, inline for inline source maps, or both) ')
|
||||
.option('--clean', 'clear the lib folder before building')
|
||||
.parse(process.argv);
|
||||
|
||||
// the various important paths
|
||||
const paths = {
|
||||
main: path.resolve(__dirname, '..'),
|
||||
core: path.resolve(__dirname, '..', 'core'),
|
||||
vendor: path.resolve(__dirname, '..', 'vendor'),
|
||||
libDirBase: path.resolve(__dirname, '..', 'lib'),
|
||||
};
|
||||
|
||||
// util.promisify requires Node.js 8.x, so we have our own
|
||||
function promisify(original) {
|
||||
return function promiseWrap() {
|
||||
const args = Array.prototype.slice.call(arguments);
|
||||
return new Promise((resolve, reject) => {
|
||||
original.apply(this, args.concat((err, value) => {
|
||||
if (err) return reject(err);
|
||||
resolve(value);
|
||||
}));
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
const writeFile = promisify(fs.writeFile);
|
||||
|
||||
const readdir = promisify(fs.readdir);
|
||||
const lstat = promisify(fs.lstat);
|
||||
|
||||
const ensureDir = promisify(fse.ensureDir);
|
||||
|
||||
const babelTransformFile = promisify(babel.transformFile);
|
||||
|
||||
// walkDir *recursively* walks directories trees,
|
||||
// calling the callback for all normal files found.
|
||||
function walkDir(basePath, cb, filter) {
|
||||
return readdir(basePath)
|
||||
.then((files) => {
|
||||
const paths = files.map(filename => path.join(basePath, filename));
|
||||
return Promise.all(paths.map(filepath => lstat(filepath)
|
||||
.then((stats) => {
|
||||
if (filter !== undefined && !filter(filepath, stats)) return;
|
||||
|
||||
if (stats.isSymbolicLink()) return;
|
||||
if (stats.isFile()) return cb(filepath);
|
||||
if (stats.isDirectory()) return walkDir(filepath, cb, filter);
|
||||
})));
|
||||
});
|
||||
}
|
||||
|
||||
function makeLibFiles(sourceMaps) {
|
||||
// NB: we need to make a copy of babelOpts, since babel sets some defaults on it
|
||||
const babelOpts = () => ({
|
||||
plugins: [],
|
||||
presets: [
|
||||
[ '@babel/preset-env',
|
||||
{ modules: 'commonjs' } ]
|
||||
],
|
||||
ast: false,
|
||||
sourceMaps: sourceMaps,
|
||||
});
|
||||
|
||||
fse.ensureDirSync(paths.libDirBase);
|
||||
|
||||
const outFiles = [];
|
||||
|
||||
const handleDir = (vendorRewrite, inPathBase, filename) => Promise.resolve()
|
||||
.then(() => {
|
||||
const outPath = path.join(paths.libDirBase, path.relative(inPathBase, filename));
|
||||
|
||||
if (path.extname(filename) !== '.js') {
|
||||
return; // skip non-javascript files
|
||||
}
|
||||
return Promise.resolve()
|
||||
.then(() => ensureDir(path.dirname(outPath)))
|
||||
.then(() => {
|
||||
const opts = babelOpts();
|
||||
// Adjust for the fact that we move the core files relative
|
||||
// to the vendor directory
|
||||
if (vendorRewrite) {
|
||||
opts.plugins.push(["import-redirect",
|
||||
{"root": paths.libDirBase,
|
||||
"redirect": { "vendor/(.+)": "./vendor/$1"}}]);
|
||||
}
|
||||
|
||||
return babelTransformFile(filename, opts)
|
||||
.then((res) => {
|
||||
console.log(`Writing ${outPath}`);
|
||||
const {map} = res;
|
||||
let {code} = res;
|
||||
if (sourceMaps === true) {
|
||||
// append URL for external source map
|
||||
code += `\n//# sourceMappingURL=${path.basename(outPath)}.map\n`;
|
||||
}
|
||||
outFiles.push(`${outPath}`);
|
||||
return writeFile(outPath, code)
|
||||
.then(() => {
|
||||
if (sourceMaps === true || sourceMaps === 'both') {
|
||||
console.log(` and ${outPath}.map`);
|
||||
outFiles.push(`${outPath}.map`);
|
||||
return writeFile(`${outPath}.map`, JSON.stringify(map));
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Promise.resolve()
|
||||
.then(() => {
|
||||
const handler = handleDir.bind(null, false, paths.main);
|
||||
return walkDir(paths.vendor, handler);
|
||||
})
|
||||
.then(() => {
|
||||
const handler = handleDir.bind(null, true, paths.core);
|
||||
return walkDir(paths.core, handler);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(`Failure converting modules: ${err}`);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
let options = program.opts();
|
||||
|
||||
if (options.clean) {
|
||||
console.log(`Removing ${paths.libDirBase}`);
|
||||
fse.removeSync(paths.libDirBase);
|
||||
}
|
||||
|
||||
makeLibFiles(options.withSourceMaps);
|
Loading…
Reference in New Issue