[Pkg-javascript-commits] [node-browser-unpack] 01/40: initial version of unpacking without entries
Bastien Roucariès
rouca at moszumanska.debian.org
Thu Nov 9 12:27:23 UTC 2017
This is an automated email from the git hooks/post-receive script.
rouca pushed a commit to branch master
in repository node-browser-unpack.
commit 296db31758c105e67b0f4225e8ce076075840f42
Author: James Halliday <mail at substack.net>
Date: Mon Dec 23 20:13:54 2013 -0800
initial version of unpacking without entries
---
example/foo.js | 1 +
example/main.js | 4 ++++
example/rematerialize.js | 6 ++++++
index.js | 43 +++++++++++++++++++++++++++++++++++++++++++
readme.markdown | 4 ++++
5 files changed, 58 insertions(+)
diff --git a/example/foo.js b/example/foo.js
new file mode 100644
index 0000000..4325a0b
--- /dev/null
+++ b/example/foo.js
@@ -0,0 +1 @@
+module.exports = function (n) { return n * 111 }
diff --git a/example/main.js b/example/main.js
new file mode 100644
index 0000000..8bbdde0
--- /dev/null
+++ b/example/main.js
@@ -0,0 +1,4 @@
+var foo = require('./foo.js');
+var gamma = require('gamma');
+
+console.log(foo(gamma(2.3)));
diff --git a/example/rematerialize.js b/example/rematerialize.js
new file mode 100644
index 0000000..79faf28
--- /dev/null
+++ b/example/rematerialize.js
@@ -0,0 +1,6 @@
+var parse = require('../');
+var concat = require('concat-stream');
+
+process.stdin.pipe(concat(function (body) {
+ console.log(parse(body));
+}));
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..7f97f85
--- /dev/null
+++ b/index.js
@@ -0,0 +1,43 @@
+var parse = require('esprima').parse;
+
+module.exports = function (src) {
+ var ast = parse(src, { range: true });
+ if (ast.body.length !== 1) return;
+ if (ast.body[0].type !== 'ExpressionStatement') return;
+ if (ast.body[0].expression.type !== 'CallExpression') return;
+
+ var args = ast.body[0].expression.arguments;
+ if (args.length !== 3) return;
+
+ if (args[0].type !== 'ObjectExpression') return;
+ if (args[1].type !== 'ObjectExpression') return;
+ if (args[2].type !== 'ArrayExpression') return;
+
+ var files = args[0].properties;
+ var cache = args[1];
+ var entries = args[2];
+
+ return files.map(function (file) {
+ var body = file.value.elements[0].body.body;
+ var start, end;
+ if (body.length === 0) {
+ start = body.range[0];
+ end = body.range[1];
+ }
+ else {
+ start = body[0].range[0];
+ end = body[body.length-1].range[1];
+ }
+
+ var depProps = file.value.elements[1].properties;
+ var deps = depProps.reduce(function (acc, dep) {
+ acc[dep.key.value] = dep.value.value;
+ return acc;
+ }, {});
+ return {
+ id: file.key.value,
+ source: src.slice(start, end).toString('utf8'),
+ deps: deps
+ };
+ });
+};
diff --git a/readme.markdown b/readme.markdown
new file mode 100644
index 0000000..cde0147
--- /dev/null
+++ b/readme.markdown
@@ -0,0 +1,4 @@
+# browser-unpack
+
+parse a bundle generated by
+[browser-pack](https://npmjs.org/package/browser-pack)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-browser-unpack.git
More information about the Pkg-javascript-commits
mailing list