Remove unnecessary dependencies in asc bundle; Update dependencies

This commit is contained in:
dcodeIO 2018-03-31 00:03:02 +02:00
parent 60f75c931b
commit 2e5077da2d
8 changed files with 303 additions and 311 deletions

View File

@ -13,7 +13,8 @@
const fs = require("fs"); const fs = require("fs");
const path = require("path"); const path = require("path");
const os = require("os"); const utf8 = require("./util/utf8");
const EOL = process.platform === "win32" ? "\r\n" : "\n";
// Use distribution files if present, otherwise run the sources directly // Use distribution files if present, otherwise run the sources directly
var assemblyscript, isDev; var assemblyscript, isDev;
@ -152,7 +153,7 @@ exports.main = function main(argv, options, callback) {
if (!callback) callback = function defaultCallback(err) { if (!callback) callback = function defaultCallback(err) {
var code = 0; var code = 0;
if (err) { if (err) {
stderr.write(err.stack + os.EOL); stderr.write(err.stack + EOL);
code = 1; code = 1;
} }
return code; return code;
@ -160,7 +161,7 @@ exports.main = function main(argv, options, callback) {
// Just print the version if requested // Just print the version if requested
if (args.version) { if (args.version) {
stdout.write("Version " + exports.version + (isDev ? "-dev" : "") + os.EOL); stdout.write("Version " + exports.version + (isDev ? "-dev" : "") + EOL);
return callback(null); return callback(null);
} }
// Print the help message if requested or no source files are provided // Print the help message if requested or no source files are provided
@ -181,7 +182,7 @@ exports.main = function main(argv, options, callback) {
for (let i = 0; i < indent; ++i) { for (let i = 0; i < indent; ++i) {
line = " " + line; line = " " + line;
} }
return os.EOL + line; return EOL + line;
}).join("")); }).join(""));
} else { } else {
opts.push(text + option.desc); opts.push(text + option.desc);
@ -197,7 +198,7 @@ exports.main = function main(argv, options, callback) {
" asc hello1.ts hello2.ts -b -O > hello.wasm", " asc hello1.ts hello2.ts -b -O > hello.wasm",
"", "",
"Options:" "Options:"
].concat(opts).join(os.EOL) + os.EOL); ].concat(opts).join(EOL) + EOL);
return callback(null); return callback(null);
} }
@ -566,7 +567,7 @@ exports.main = function main(argv, options, callback) {
path.basename(sourceMapURL) path.basename(sourceMapURL)
), JSON.stringify(sourceMap)); ), JSON.stringify(sourceMap));
} else { } else {
stderr.write("Skipped source map (stdout already occupied)" + os.EOL); stderr.write("Skipped source map (stdout already occupied)" + EOL);
} }
} }
} }
@ -741,7 +742,7 @@ function checkDiagnostics(emitter, stderr) {
while ((diagnostic = assemblyscript.nextDiagnostic(emitter)) != null) { while ((diagnostic = assemblyscript.nextDiagnostic(emitter)) != null) {
stderr.write( stderr.write(
assemblyscript.formatDiagnostic(diagnostic, stderr.isTTY, true) + assemblyscript.formatDiagnostic(diagnostic, stderr.isTTY, true) +
os.EOL + os.EOL EOL + EOL
); );
if (assemblyscript.isError(diagnostic)) hasErrors = true; if (assemblyscript.isError(diagnostic)) hasErrors = true;
} }
@ -803,24 +804,36 @@ function printStats(stats, output) {
"Emit : " + format(stats.emitTime, stats.emitCount), "Emit : " + format(stats.emitTime, stats.emitCount),
"Validate : " + format(stats.validateTime, stats.validateCount), "Validate : " + format(stats.validateTime, stats.validateCount),
"Optimize : " + format(stats.optimizeTime, stats.optimizeCount) "Optimize : " + format(stats.optimizeTime, stats.optimizeCount)
].join(os.EOL) + os.EOL); ].join(EOL) + EOL);
} }
exports.printStats = printStats; exports.printStats = printStats;
var Buf = typeof global !== "undefined" && global.Buffer || Uint8Array;
/** Creates a memory stream that can be used in place of stdout/stderr. */ /** Creates a memory stream that can be used in place of stdout/stderr. */
function createMemoryStream(fn) { function createMemoryStream(fn) {
var stream = []; var stream = [];
stream.write = function(chunk) { stream.write = function(chunk) {
if (typeof chunk === "string") { if (typeof chunk === "string") {
this.push(Buffer.from(chunk, "utf8")); let buffer = new Buf(utf8.length(chunk));
} else { utf8.write(chunk, buffer, 0);
this.push(chunk); chunk = buffer;
} }
this.push(chunk);
if (fn) fn(chunk); if (fn) fn(chunk);
}; };
stream.toBuffer = function() { stream.toBuffer = function() {
return Buffer.concat(this); var offset = 0, i = 0, k = this.length;
while (i < k) offset += this[i++].length;
var buffer = new Buf(offset);
offset = i = 0;
while (i < k) {
buffer.set(this[i], offset);
offset += this[i].length;
++i;
}
return buffer;
}; };
stream.toString = function() { stream.toString = function() {
return this.toBuffer().toString("utf8"); return this.toBuffer().toString("utf8");

46
bin/util/utf8.js Normal file
View File

@ -0,0 +1,46 @@
// see: https://github.com/dcodeIO/protobuf.js/tree/master/lib/utf8
exports.length = function utf8_length(string) {
var len = 0,
c = 0;
for (var i = 0; i < string.length; ++i) {
c = string.charCodeAt(i);
if (c < 128) {
len += 1;
} else if (c < 2048) {
len += 2;
} else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {
++i;
len += 4;
} else {
len += 3;
}
}
return len;
};
exports.write = function utf8_write(string, buffer, offset) {
var start = offset,
c1, c2;
for (var i = 0; i < string.length; ++i) {
c1 = string.charCodeAt(i);
if (c1 < 128) {
buffer[offset++] = c1;
} else if (c1 < 2048) {
buffer[offset++] = c1 >> 6 | 192;
buffer[offset++] = c1 & 63 | 128;
} else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {
c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);
++i;
buffer[offset++] = c1 >> 18 | 240;
buffer[offset++] = c1 >> 12 & 63 | 128;
buffer[offset++] = c1 >> 6 & 63 | 128;
buffer[offset++] = c1 & 63 | 128;
} else {
buffer[offset++] = c1 >> 12 | 224;
buffer[offset++] = c1 >> 6 & 63 | 128;
buffer[offset++] = c1 & 63 | 128;
}
}
return offset - start;
};

2
dist/asc.js vendored

File diff suppressed because one or more lines are too long

2
dist/asc.js.map vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

505
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -11,25 +11,25 @@
"url": "https://github.com/AssemblyScript/assemblyscript/issues" "url": "https://github.com/AssemblyScript/assemblyscript/issues"
}, },
"dependencies": { "dependencies": {
"binaryen": "44.0.0-nightly.20180309", "binaryen": "45.0.0-nightly.20180330",
"glob": "^7.1.2", "glob": "^7.1.2",
"long": "^4.0.0", "long": "^4.0.0",
"minimist": "^1.2.0", "minimist": "^1.2.0",
"ts-node": "^5.0.1" "ts-node": "^5.0.1"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^9.4.7", "@types/node": "^9.6.1",
"browser-process-hrtime": "^0.1.2", "browser-process-hrtime": "^0.1.2",
"chalk": "^2.3.2", "chalk": "^2.3.2",
"diff": "^3.5.0", "diff": "^3.5.0",
"source-map-support": "^0.5.3", "source-map-support": "^0.5.4",
"ts-loader": "^4.0.1", "ts-loader": "^4.1.0",
"tslint": "^5.9.1", "tslint": "^5.9.1",
"typedoc": "^0.11.1", "typedoc": "^0.11.1",
"typedoc-plugin-external-module-name": "^1.1.1", "typedoc-plugin-external-module-name": "^1.1.1",
"typescript": "^2.7.2", "typescript": "^2.8.1",
"webpack": "^4.1.1", "webpack": "^4.4.1",
"webpack-cli": "^2.0.11" "webpack-cli": "^2.0.13"
}, },
"main": "index.js", "main": "index.js",
"types": "index.d.ts", "types": "index.d.ts",
@ -40,7 +40,7 @@
"node": ">=8" "node": ">=8"
}, },
"scripts": { "scripts": {
"build": "webpack --mode production", "build": "webpack --mode production --display-modules",
"clean": "node scripts/clean", "clean": "node scripts/clean",
"lint": "npm run lint:compiler && npm run lint:library", "lint": "npm run lint:compiler && npm run lint:library",
"lint:compiler": "tslint -c tslint.json --project src --formatters-dir lib/lint/formatters --format as", "lint:compiler": "tslint -c tslint.json --project src --formatters-dir lib/lint/formatters --format as",

View File

@ -39,10 +39,12 @@ const bin = {
"../dist/assemblyscript.js": "assemblyscript" "../dist/assemblyscript.js": "assemblyscript"
}], }],
node: { node: {
"buffer": false,
"fs": "empty", "fs": "empty",
"global": true, "global": true,
"os": false,
"process": "mock", "process": "mock",
"crypto": "empty" "crypto": false
}, },
output: { output: {
filename: "asc.js", filename: "asc.js",