Skip to content

Commit

Permalink
feat: update tools (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
rancoud authored May 13, 2024
1 parent 1ab5cbf commit 8c4a844
Show file tree
Hide file tree
Showing 11 changed files with 1,173 additions and 682 deletions.
74 changes: 40 additions & 34 deletions build.js → build.cjs
Original file line number Diff line number Diff line change
@@ -1,34 +1,36 @@
const fs = require('fs');
const path = require('path');
const babel = require('@babel/core');

// list of JS files to concat
const inputJSFiles = [
path.join(__dirname, 'src/js/_namespace_.js'),
path.join(__dirname, 'src/js/enums/enums.js'),
path.join(__dirname, 'src/js/main.js')
];

// output JS file
const outputJSFilename = 'dist/uasset-reader.js';

let outputJSFileContent = concatJSFiles(inputJSFiles);
outputJSFileContent = removeLines(outputJSFileContent);
outputJSFileContent = removeDebug(outputJSFileContent);
outputJSFileContent = addHeaderAndLicense(outputJSFileContent);
saveFile(outputJSFilename, outputJSFileContent);

// functions below
const fs = require("fs");
const path = require("path");
const babel = require("@babel/core");

// region JS

function generateJS() {
// list of JS files to concat
const inputJSFiles = [
path.join(__dirname, 'src/js/_namespace_.js'),
path.join(__dirname, 'src/js/enums/enums.js'),
path.join(__dirname, 'src/js/main.js')
];

// output JS file
const outputJSFilename = "dist/uasset-reader.js";

let outputJSFileContent = concatJSFiles(inputJSFiles);
outputJSFileContent = removeLines(outputJSFileContent);
outputJSFileContent = removeDebug(outputJSFileContent);
outputJSFileContent = addHeaderAndLicense(outputJSFileContent);
saveFile(outputJSFilename, outputJSFileContent);
}

function concatJSFiles(files) {
let outputFileContent = ['(function () {'];
let outputFileContent = ["(function () {"];
outputFileContent.push('"use strict";' + "\n");

for(let idxFiles = 0, maxFiles = files.length; idxFiles < maxFiles; ++idxFiles) {
outputFileContent.push(fs.readFileSync(files[idxFiles]).toString('utf8'));
outputFileContent.push(fs.readFileSync(files[idxFiles]).toString("utf8"));
}

outputFileContent.push('})();');
outputFileContent.push("})();");

return outputFileContent.join("\n");
}
Expand All @@ -40,40 +42,40 @@ function removeLines(content) {
let newLines = [];

for (; idxLines < maxLines; ++idxLines) {
if (lines[idxLines].match('BUILD REMOVE LINE')) {
if (lines[idxLines].match("BUILD REMOVE LINE")) {
continue;
}

newLines.push(lines[idxLines]);
}

return newLines.join('\n');
return newLines.join("\n");
}

function removeDebug(content) {
function getNode(node) {
if (node.isMemberExpression()) {
const object = node.get('object');
if (object.isIdentifier() && node.has('property')) {
return node.get('property');
const object = node.get("object");
if (object.isIdentifier() && node.has("property")) {
return node.get("property");
}
}

return node;
}

function isConsole(nodePath) {
const callee = nodePath.get('callee');
const callee = nodePath.get("callee");

if (!callee.isMemberExpression()) {
return;
}

return getNode(callee.get('object')).isIdentifier({name: 'console'}) && callee.has('property');
return getNode(callee.get("object")).isIdentifier({name: "console"}) && callee.has("property");
}

function isAlert(nodePath) {
return getNode(nodePath.get('callee')).isIdentifier({name: 'alert'});
return getNode(nodePath.get("callee")).isIdentifier({name: "alert"});
}

return babel.transformSync(content, {
Expand All @@ -93,9 +95,13 @@ function removeDebug(content) {
}).code;
}

generateJS();

// endregion

function addHeaderAndLicense(content) {
const license = fs.readFileSync('./LICENSE', 'utf8');
const pkg = require('./package.json');
const license = fs.readFileSync("./LICENSE", "utf8");
const pkg = require("./package.json");

let header = pkg.name + " (v" + pkg.version + ")\n" + pkg.homepage + "\n\n" + license;

Expand Down
Loading

0 comments on commit 8c4a844

Please sign in to comment.