Merge pull request #129 from ryanxcharles/feature/require-on-use
Require on use
This commit is contained in:
commit
73ceb2e04e
75
bitcore.js
75
bitcore.js
|
@ -1,49 +1,50 @@
|
||||||
/*
|
/*
|
||||||
* Bitcore bindings for the browser
|
One way to require files is this simple way:
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
module.exports.bignum = require('bignum');
|
|
||||||
module.exports.base58 = require('base58-native');
|
|
||||||
module.exports.buffertools = require('buffertools');
|
|
||||||
|
|
||||||
module.exports.config = require('./config');
|
|
||||||
module.exports.const = require('./const');
|
|
||||||
module.exports.Deserialize = require('./Deserialize');
|
|
||||||
module.exports.log = require('./util/log');
|
|
||||||
module.exports.networks = require('./networks');
|
|
||||||
module.exports.util = require('./util/util');
|
|
||||||
|
|
||||||
module.exports.EncodedData = require('./util/EncodedData');
|
|
||||||
module.exports.VersionedData = require('./util/VersionedData');
|
|
||||||
module.exports.Address = require('./Address');
|
module.exports.Address = require('./Address');
|
||||||
module.exports.Opcode = require('./Opcode');
|
|
||||||
module.exports.Script = require('./Script');
|
However, that will load all classes in memory even if they are not used.
|
||||||
module.exports.Transaction = require('./Transaction');
|
Instead, we can set the 'get' property of each class to only require them when
|
||||||
module.exports.Connection = require('./Connection');
|
they are accessed, saving memory if they are not used in a given project.
|
||||||
module.exports.Peer = require('./Peer');
|
*/
|
||||||
module.exports.Block = require('./Block');
|
var requireWhenAccessed = function(name, file) {
|
||||||
module.exports.ScriptInterpreter = require('./ScriptInterpreter');
|
Object.defineProperty(module.exports, name, {get: function() {return require(file)}});
|
||||||
module.exports.Bloom = require('./Bloom');
|
};
|
||||||
module.exports.KeyModule = require('./Key');
|
|
||||||
module.exports.SINKey = require('./SINKey');
|
requireWhenAccessed('bignum', 'bignum');
|
||||||
module.exports.SIN = require('./SIN');
|
requireWhenAccessed('base58', 'base58-native');
|
||||||
module.exports.PrivateKey = require('./PrivateKey');
|
requireWhenAccessed('buffertools', 'buffertools');
|
||||||
module.exports.RpcClient = require('./RpcClient');
|
requireWhenAccessed('config', './config');
|
||||||
module.exports.Wallet = require('./Wallet');
|
requireWhenAccessed('const', './const');
|
||||||
module.exports.WalletKey = require('./WalletKey');
|
requireWhenAccessed('Deserialize', './Deserialize');
|
||||||
|
requireWhenAccessed('log', './util/log');
|
||||||
|
requireWhenAccessed('networks', './networks');
|
||||||
|
requireWhenAccessed('util', './util/util');
|
||||||
|
requireWhenAccessed('EncodedData', './util/EncodedData');
|
||||||
|
requireWhenAccessed('VersionedData', './util/VersionedData');
|
||||||
|
requireWhenAccessed('Address', './Address');
|
||||||
|
requireWhenAccessed('Opcode', './Opcode');
|
||||||
|
requireWhenAccessed('Script', './Script');
|
||||||
|
requireWhenAccessed('Transaction', './Transaction');
|
||||||
|
requireWhenAccessed('Connection', './Connection');
|
||||||
|
requireWhenAccessed('Peer', './Peer');
|
||||||
|
requireWhenAccessed('Block', './Block');
|
||||||
|
requireWhenAccessed('ScriptInterpreter', './ScriptInterpreter');
|
||||||
|
requireWhenAccessed('Bloom', './Bloom');
|
||||||
|
requireWhenAccessed('KeyModule', './Key');
|
||||||
|
requireWhenAccessed('SINKey', './SINKey');
|
||||||
|
requireWhenAccessed('SIN', './SIN');
|
||||||
|
requireWhenAccessed('PrivateKey', './PrivateKey');
|
||||||
|
requireWhenAccessed('RpcClient', './RpcClient');
|
||||||
|
requireWhenAccessed('Wallet', './Wallet');
|
||||||
|
requireWhenAccessed('WalletKey', './WalletKey');
|
||||||
module.exports.Buffer = Buffer;
|
module.exports.Buffer = Buffer;
|
||||||
|
|
||||||
if (typeof process.versions === 'undefined') {
|
if (typeof process.versions === 'undefined') {
|
||||||
// Browser specific
|
// Browser specific
|
||||||
module.exports.bignum.config({EXPONENTIAL_AT: 9999999, DECIMAL_PLACES: 0, ROUNDING_MODE: 1});
|
module.exports.bignum.config({EXPONENTIAL_AT: 9999999, DECIMAL_PLACES: 0, ROUNDING_MODE: 1});
|
||||||
// module.exports.PeerManager = function () {
|
|
||||||
// throw new Error('PeerManager not availabe in browser Bitcore, under .bitcore. Use it with: require(\'PeerManager\');');
|
|
||||||
// };
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Nodejs specific
|
// Nodejs specific
|
||||||
module.exports.PeerManager = require('./PeerManager');
|
requireWhenAccessed('PeerManager', './PeerManager');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ var modules = [
|
||||||
'PeerManager',
|
'PeerManager',
|
||||||
'PrivateKey',
|
'PrivateKey',
|
||||||
'RpcClient',
|
'RpcClient',
|
||||||
|
'Key',
|
||||||
'SIN',
|
'SIN',
|
||||||
'SINKey',
|
'SINKey',
|
||||||
'Script',
|
'Script',
|
||||||
|
@ -58,9 +59,7 @@ var b = browserify(opts);
|
||||||
b.require('browserify-bignum/bignumber.js', {expose: 'bignum'} );
|
b.require('browserify-bignum/bignumber.js', {expose: 'bignum'} );
|
||||||
b.require('browserify-buffertools/buffertools.js', {expose:'buffertools'});
|
b.require('browserify-buffertools/buffertools.js', {expose:'buffertools'});
|
||||||
b.require('./bitcore', {expose: 'bitcore'});
|
b.require('./bitcore', {expose: 'bitcore'});
|
||||||
b.require('buffer', {expose: 'buffer'});
|
|
||||||
b.require('base58-native');
|
b.require('base58-native');
|
||||||
b.require('./Key.js', {expose: 'KeyModule'});
|
|
||||||
b.require('./util/log');
|
b.require('./util/log');
|
||||||
b.require('./util/util');
|
b.require('./util/util');
|
||||||
b.require('./util/EncodedData');
|
b.require('./util/EncodedData');
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<script src="../browser/bundle.js"></script>
|
<script src="../browser/bundle.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var Address = require('Address');
|
var Address = require('bitcore').Address;
|
||||||
|
|
||||||
print = function(s){
|
print = function(s){
|
||||||
var div = document.getElementById('content');
|
var div = document.getElementById('content');
|
||||||
|
|
Loading…
Reference in New Issue