Current Dev State

This commit is contained in:
Tim Lorsbach
2025-06-23 20:13:54 +02:00
parent b4f9bb277d
commit ded50edaa2
22617 changed files with 4345095 additions and 174 deletions

View File

@ -0,0 +1,105 @@
var test = require('tape')
var mdeps = require('module-deps');
var bpack = require('browser-pack');
var insert = require('../');
var concat = require('concat-stream');
var vm = require('vm');
test('always true insert', function (t) {
t.plan(10);
var s = mdeps({
modules: {
buffer: require.resolve('buffer/')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({ transform: inserter({ always: true }), global: true });
s.end(__dirname + '/always/main.js');
});
test('always true insert custom globals without defaults', function (t) {
t.plan(7);
var s = mdeps({
modules: {
buffer: require.resolve('buffer/')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({
transform: inserter({ always: true, vars: {
global: {},
process: undefined,
Buffer: undefined,
__filename: undefined,
__dirname: undefined,
custom: function() { return '"inserted custom"' }
}}),
global: true
});
s.end(__dirname + '/always/custom_globals_without_defaults.js');
});
test('always truthy-but-not-true insert hidden from quick test is not really inserted; true is', function (t) {
t.plan(2);
var testit = function(always, expected) {
var s = mdeps({
modules: {
buffer: require.resolve('buffer/')
}
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
process: 'sandbox process',
Buffer: 'sandbox Buffer',
__filename: 'sandbox __filename',
__dirname: 'sandbox __dirname',
custom: 'sandbox custom',
expected: expected,
self: { xyz: 555 }
};
vm.runInNewContext(src, c);
}));
s.write({
transform: inserter({ always: always, vars: {
custom: function() { return '"inserted custom"' }
}}),
global: true
})
s.end(__dirname + '/always/hidden_from_quick_test.js');
};
var always = 'truthy', expected = 'sandbox custom';
testit(always, expected);
always = true; expected = 'inserted custom';
testit(always, expected);
});
function inserter (opts) {
return function (file) {
return insert(file, opts);
};
}

View File

@ -0,0 +1,7 @@
t.equal(eval('process'), 'sandbox process');
t.equal(eval('typeof global'), 'undefined');
t.equal(eval('self.xyz'), 555);
t.equal(eval('Buffer'), 'sandbox Buffer');
t.equal(eval('__filename'), 'sandbox __filename');
t.equal(eval('__dirname'), 'sandbox __dirname');
t.equal(eval('custom'), 'inserted custom');

View File

@ -0,0 +1 @@
t.equal(eval('cust' + 'om'), eval('expected'));

View File

@ -0,0 +1,10 @@
t.equal(eval('typeof process'), 'object');
t.equal(eval('typeof process.nextTick'), 'function');
t.equal(eval('typeof global'), 'object');
t.equal(eval('global.xyz'), 555);
t.equal(eval('typeof Buffer'), 'function');
t.equal(eval('typeof __filename'), 'string');
t.notEqual(eval('__filename'), 'sandbox __filename');
t.equal(eval('typeof __dirname'), 'string');
t.notEqual(eval('__dirname'), 'sandbox __dirname');
t.equal(eval('custom'), 'sandbox custom');

View File

@ -0,0 +1,63 @@
var test = require('tape');
var vm = require('vm');
var concat = require('concat-stream');
var insert = require('../');
var bpack = require('browser-pack');
var mdeps = require('module-deps');
test('insert globals', function (t) {
var expected = [ 'global' ];
t.plan(2 + expected.length);
var deps = mdeps()
var pack = bpack({ raw: true });
deps.pipe(pack);
pack.pipe(concat(function (src) {
var c = {
t : t,
a : 555,
};
c.self = c;
vm.runInNewContext(src, c);
}));
deps.write({
transform: function (file) {
var tr = inserter(file)
tr.on('global', function (name) {
t.equal(name, expected.shift());
});
return tr;
},
global: true
});
deps.end(__dirname + '/global/main.js');
});
test('__filename and __dirname', function (t) {
t.plan(2);
var file = __dirname + '/global/filename.js';
var deps = mdeps()
var pack = bpack({ raw: true });
deps.pipe(pack);
pack.pipe(concat(function (src) {
var c = {};
vm.runInNewContext('require=' + src, c);
var x = c.require(file);
t.equal(x.filename, '/filename.js');
t.equal(x.dirname, '/');
}));
deps.write({ transform: inserter, global: true });
deps.end(file);
});
function inserter (file) {
return insert(file, { basedir: __dirname + '/global' });
}

View File

@ -0,0 +1,2 @@
exports.filename = __filename;
exports.dirname = __dirname;

View File

@ -0,0 +1,2 @@
t.equal(a, 555);
t.equal(a, global.a);

View File

@ -0,0 +1,46 @@
var test = require('tape');
var mdeps = require('module-deps');
var bpack = require('browser-pack');
var insert = require('../');
var concat = require('concat-stream');
var vm = require('vm');
test('process.nextTick inserts', function (t) {
t.plan(4);
var s = mdeps()
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
setTimeout: setTimeout,
clearTimeout: clearTimeout
};
vm.runInNewContext(src, c);
}));
s.write({ transform: inserter, global: true })
s.end(__dirname + '/insert/main.js');
});
test('buffer inserts', function (t) {
t.plan(2);
var s = mdeps({
modules: { buffer: require.resolve('buffer/') }
});
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
setTimeout: setTimeout,
clearTimeout: clearTimeout,
Uint8Array: Uint8Array,
DataView: DataView
};
vm.runInNewContext(src, c);
}));
s.write({ transform: inserter, global: true })
s.end(__dirname + '/insert/buffer.js');
});
function inserter (file) {
return insert(file, {
basedir: __dirname + '/insert'
});
}

View File

@ -0,0 +1 @@
require('./foo/buf');

View File

@ -0,0 +1,4 @@
process.nextTick(function () {
t.equal(Buffer('abc').toString('base64'), 'YWJj');
t.equal(Buffer([98,99,100]).toString(), 'bcd');
});

View File

@ -0,0 +1,4 @@
process.nextTick(function () {
t.equal(__filename, '/foo/index.js');
t.equal(__dirname, '/foo');
});

View File

@ -0,0 +1,4 @@
t.equal(__filename, '/main.js');
t.equal(__dirname, '/');
require('./foo');

View File

@ -0,0 +1,27 @@
var test = require('tape');
var mdeps = require('module-deps');
var bpack = require('browser-pack');
var insert = require('../');
var concat = require('concat-stream');
var vm = require('vm');
test('isbuffer', function (t) {
t.plan(5);
var deps = mdeps()
var pack = bpack({ raw: true, hasExports: true });
deps.pipe(pack).pipe(concat(function (src) {
var c = { global: {} };
vm.runInNewContext(src, c);
t.equal(c.require('main')(Buffer('wow')), true, 'is a buffer');
t.equal(c.require('main')('wow'), false, 'not a buffer (string)');
t.equal(c.require('main')({}), false, 'not a buffer (object)');
t.notOk(/require("buffer")/.test(src), 'buffer not required in source')
t.notOk(/require\("\//.test(src), 'absolute path not required in source')
}));
deps.write({ transform: inserter, global: true });
deps.end({ id: 'main', file: __dirname + '/isbuffer/main.js' });
});
function inserter (file) {
return insert(file, { basedir: __dirname + '/isbuffer' });
}

View File

@ -0,0 +1,3 @@
module.exports = function (buf) {
return Buffer.isBuffer(buf);
};

View File

@ -0,0 +1,27 @@
var test = require('tape');
var mdeps = require('module-deps');
var bpack = require('browser-pack');
var insert = require('../');
var concat = require('concat-stream');
var vm = require('vm');
test('early return', function (t) {
t.plan(4);
var s = mdeps()
s.pipe(bpack({ raw: true })).pipe(concat(function (src) {
var c = {
t: t,
setTimeout: setTimeout,
clearTimeout: clearTimeout
};
vm.runInNewContext(src, c);
}));
s.write({ transform: inserter, global: true });
s.end(__dirname + '/return/main.js');
});
function inserter (file) {
return insert(file, {
basedir: __dirname + '/return'
});
}

View File

@ -0,0 +1,4 @@
process.nextTick(function () {
t.equal(__filename, '/foo/index.js');
t.equal(__dirname, '/foo');
});

View File

@ -0,0 +1,6 @@
t.equal(__filename, '/main.js');
t.equal(__dirname, '/');
require('./foo');
return;

View File

@ -0,0 +1,40 @@
var test = require('tape');
var convert = require('convert-source-map');
var insert = require('../');
var mdeps = require('module-deps');
var vm = require('vm');
test('sourcemap', function (t) {
t.plan(6);
var file = __dirname + '/sourcemap/main.js';
var deps = mdeps()
deps.on('data', function(row) {
var src = row.source;
var sm = convert.fromSource(src).toObject();
t.deepEqual(sm.sources, [ 'test/sourcemap/main_es6.js' ]);
t.deepEqual(sm.sourcesContent, [ 'console.log(`${__dirname}`, `${__filename}`);\n' ]);
t.deepEqual(sm.mappings, ';AAAA,OAAO,CAAC,GAAG,MAAI,SAAS,OAAO,UAAU,CAAG,CAAC');
t.equal(src.match(convert.commentRegex).length, 1);
var c = {
console: {
log: function(dirname, filename) {
t.equal(dirname, '/');
t.equal(filename, '/main.js');
}
},
};
vm.runInNewContext(src, c);
});
deps.write({ transform: inserter, global: true });
deps.end(file);
});
function inserter (file) {
return insert(file, { debug: true, basedir: __dirname + '/sourcemap' });
}

View File

@ -0,0 +1,3 @@
console.log("" + __dirname, "" + __filename);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3Qvc291cmNlbWFwL21haW5fZXM2LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLE1BQUksU0FBUyxPQUFPLFVBQVUsQ0FBRyxDQUFDIiwiZmlsZSI6InVuZGVmaW5lZCIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKGAke19fZGlybmFtZX1gLCBgJHtfX2ZpbGVuYW1lfWApO1xuIl19

View File

@ -0,0 +1 @@
console.log(`${__dirname}`, `${__filename}`);

View File

@ -0,0 +1,33 @@
var test = require('tape');
var vm = require('vm');
var concat = require('concat-stream');
var insert = require('../');
var bpack = require('browser-pack');
var mdeps = require('module-deps');
test('unprefix - remove shebang and bom', function (t) {
t.plan(3);
var file = __dirname + '/unprefix/main.js';
var deps = mdeps();
var pack = bpack({ raw: true });
deps.pipe(pack);
pack.pipe(concat(function (src) {
var c = {};
vm.runInNewContext('require=' + src, c);
var x = c.require(file);
t.equal(x.filename, '/hello.js');
t.equal(x.dirname, '/');
t.notOk(/\ufeff/.test(src.toString()));
}));
deps.write({ transform: inserter, global: true });
deps.end(file);
});
function inserter (file) {
return insert(file, { basedir: __dirname + '/unprefix' });
}

View File

@ -0,0 +1,2 @@
exports.filename = __filename;
exports.dirname = __dirname;

View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
module.exports = require('./hello');