You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@hzzlyxx/webpack-file-tree

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hzzlyxx/webpack-file-tree - npm Package Compare versions

Comparing version

to
1.0.1

lib/sourceCode/index.d.ts

10

lib/index.d.ts

@@ -1,9 +0,1 @@

declare class SourceCode {
moduleAnalyser(filename: string): {
filename: string;
dependencies: {};
code: any;
};
makeDependenciesGraph(entry: string): {};
}
export default SourceCode;
export { default as SourceCode } from "./sourceCode";
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SourceCode = void 0;
/*
* @Author: hzzly
* @Date: 2021-09-08 17:24:09
* @Date: 2021-09-09 09:59:06
* @LastEditors: hzzly
* @LastEditTime: 2021-09-09 09:49:31
* @LastEditTime: 2021-09-09 09:59:06
* @Copyright: hzzly(hjingren@aliyun.com)
* @Description: description
*/
var fs = require("fs");
var parser = require("@babel/parser");
var traverse = require("@babel/traverse");
var generator = require("@babel/generator");
var path = require("path");
// const moduleAnalyser = (filename: string) => {
// if (fs.lstatSync(filename).isDirectory()) {
// filename = `${filename}/index.ts`;
// }
// const content = fs.readFileSync(filename, "utf-8"); // 读取文件内容
// const ast = parser.parse(content, {
// sourceType: "module",
// });
// const dependencies = {};
// traverse.default(ast, {
// ImportDeclaration({ node }) {
// // console.log(node);
// const dirname = path.dirname(filename); //filename对应的文件夹路径
// const newFile = "./" + path.join(dirname, node.source.value);
// console.log(node.source.value, newFile);
// if (node.source.value?.includes("./")) {
// dependencies[node.source.value] = newFile;
// }
// },
// });
// // const { code } = babel.transformFromAst(ast, null, {
// // // presets: ["@babel/preset-env"],
// // }); //转换ast
// const { code } = generator.default(ast, {}, content);
// return {
// filename,
// dependencies,
// code,
// };
// };
// // const moduleInfo = moduleAnalyser("./test1/index.ts"); // 入口函数
// // console.log(moduleInfo);
// const makeDependenciesGraph = (entry: string) => {
// const entryModule = moduleAnalyser(entry);
// const graphArray = [entryModule];
// for (let i = 0; i < graphArray.length; i++) {
// const item = graphArray[i];
// const { dependencies } = item; // 解构出依赖
// if (dependencies) {
// for (let j in dependencies) {
// // 递归分析依赖,放入依赖图谱数组
// graphArray.push(moduleAnalyser(dependencies[j]));
// }
// }
// }
// // 转换为对象 便于使用
// const graph = {};
// graphArray.forEach((item) => {
// graph[item.filename] = {
// dependencies: item.dependencies,
// code: item.code,
// };
// });
// return graph;
// };
// const graph = makeDependenciesGraph("../example/index.ts");
// console.log(graph);
var SourceCode = /** @class */ (function () {
function SourceCode() {
}
SourceCode.prototype.moduleAnalyser = function (filename) {
if (fs.lstatSync(filename).isDirectory()) {
filename = filename + "/index.ts";
}
var content = fs.readFileSync(filename, "utf-8"); // 读取文件内容
var ast = parser.parse(content, {
sourceType: "module",
});
var dependencies = {};
traverse.default(ast, {
ImportDeclaration: function (_a) {
var _b;
var node = _a.node;
// console.log(node);
var dirname = path.dirname(filename); //filename对应的文件夹路径
var newFile = "./" + path.join(dirname, node.source.value);
console.log(node.source.value, newFile);
if ((_b = node.source.value) === null || _b === void 0 ? void 0 : _b.includes("./")) {
dependencies[node.source.value] = newFile;
}
},
});
// const { code } = babel.transformFromAst(ast, null, {
// // presets: ["@babel/preset-env"],
// }); //转换ast
var code = generator.default(ast, {}, content).code;
return {
filename: filename,
dependencies: dependencies,
code: code,
};
};
SourceCode.prototype.makeDependenciesGraph = function (entry) {
var entryModule = this.moduleAnalyser(entry);
var graphArray = [entryModule];
for (var i = 0; i < graphArray.length; i++) {
var item = graphArray[i];
var dependencies = item.dependencies; // 解构出依赖
if (dependencies) {
for (var j in dependencies) {
// 递归分析依赖,放入依赖图谱数组
graphArray.push(this.moduleAnalyser(dependencies[j]));
}
}
}
// 转换为对象 便于使用
var graph = {};
graphArray.forEach(function (item) {
graph[item.filename] = {
dependencies: item.dependencies,
code: item.code,
};
});
return graph;
};
return SourceCode;
}());
exports.default = SourceCode;
var sourceCode_1 = require("./sourceCode");
Object.defineProperty(exports, "SourceCode", { enumerable: true, get: function () { return sourceCode_1.default; } });
{
"name": "@hzzlyxx/webpack-file-tree",
"version": "1.0.0",
"version": "1.0.1",
"description": "webpack source code",

@@ -5,0 +5,0 @@ "author": "hzzly <hjingren@aliyun.com>",