@@ -12,7 +12,8 @@ class Npm {
1212 this . logger = options . logger ;
1313 }
1414
15- getPackageVersion ( packageName , version , returnContent , callback ) {
15+ // TODO: callback should accept an error
16+ getPackageVersion ( packageName , version , returnContent , getFromGit , callback ) {
1617 let self = this ;
1718 let npmRegistry = "https://registry.npmjs.org/" + packageName + "/" + version ;
1819
@@ -25,6 +26,7 @@ class Npm {
2526 res . on ( 'end' , function ( ) {
2627 let registryJSON = JSON . parse ( body ) ;
2728
29+ console . log ( JSON . stringify ( registryJSON ) ) ;
2830 let tarball = registryJSON . dist . tarball ;
2931
3032 var download = function ( url , dest , cb ) {
@@ -40,35 +42,70 @@ class Npm {
4042 } ) ;
4143 } ;
4244
43- let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/' ;
45+ if ( getFromGit ) {
46+ let repoName = registryJSON . repository . url . replace ( "git+https://github.com/" , "" ) . replace ( ".git" , "" ) ;
47+ let gitHead = registryJSON . gitHead ;
48+ let fileLocation = "https://raw.githubusercontent.com/" + repoName + "/" + gitHead + "/dist/web3.min.js" ;
4449
45- if ( fs . existsSync ( packageDirectory + "/downloaded_package.tgz" ) ) {
46- if ( returnContent ) {
47- let distFile = packageDirectory + returnContent ;
48- callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
50+ let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/' ;
51+ if ( fs . existsSync ( packageDirectory + "/" + packageName + ".js" ) ) {
52+ if ( returnContent ) {
53+ let distFile = packageDirectory + packageName + ".js" ;
54+ callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
55+ } else {
56+ callback ( packageDirectory ) ;
57+ }
4958 } else {
50- callback ( packageDirectory ) ;
59+ fs . mkdirpSync ( packageDirectory ) ;
60+ self . logger . info ( "downloading " + packageName + " " + version + "...." ) ;
61+
62+ download ( tarball , packageDirectory + "/" + packageName + ".js" , function ( ) {
63+ o_fs . createReadStream ( packageDirectory + "/" + packageName + ".js" ) . pipe (
64+ tar . x ( {
65+ strip : 1 ,
66+ C : packageDirectory
67+ } ) . on ( 'end' , function ( ) {
68+ if ( returnContent ) {
69+ let distFile = packageDirectory + packageName + ".js" ;
70+ callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
71+ } else {
72+ callback ( packageDirectory ) ;
73+ }
74+ } )
75+ ) ;
76+ } ) ;
5177 }
78+
5279 } else {
53- fs . mkdirpSync ( packageDirectory ) ;
54- self . logger . info ( "downloading " + packageName + " " + version + "...." ) ;
55-
56- download ( tarball , packageDirectory + "/downloaded_package.tgz" , function ( ) {
57- o_fs . createReadStream ( packageDirectory + '/downloaded_package.tgz' ) . pipe (
58- tar . x ( {
59- strip : 1 ,
60- C : packageDirectory
61- } ) . on ( 'end' , function ( ) {
62- if ( returnContent ) {
63- let distFile = packageDirectory + returnContent ;
64- callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
65- } else {
66- callback ( packageDirectory ) ;
67- }
68- } )
69- ) ;
70- } ) ;
7180
81+ let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/' ;
82+ if ( fs . existsSync ( packageDirectory + "/downloaded_package.tgz" ) ) {
83+ if ( returnContent ) {
84+ let distFile = packageDirectory + returnContent ;
85+ callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
86+ } else {
87+ callback ( packageDirectory ) ;
88+ }
89+ } else {
90+ fs . mkdirpSync ( packageDirectory ) ;
91+ self . logger . info ( "downloading " + packageName + " " + version + "...." ) ;
92+
93+ download ( tarball , packageDirectory + "/downloaded_package.tgz" , function ( ) {
94+ o_fs . createReadStream ( packageDirectory + '/downloaded_package.tgz' ) . pipe (
95+ tar . x ( {
96+ strip : 1 ,
97+ C : packageDirectory
98+ } ) . on ( 'end' , function ( ) {
99+ if ( returnContent ) {
100+ let distFile = packageDirectory + returnContent ;
101+ callback ( fs . readFileSync ( distFile ) . toString ( ) ) ;
102+ } else {
103+ callback ( packageDirectory ) ;
104+ }
105+ } )
106+ ) ;
107+ } ) ;
108+ }
72109 }
73110
74111 } ) ;
0 commit comments