22const path = require ( 'path' ) ;
33const https = require ( 'https' ) ;
44const fs = require ( 'fs' ) ;
5+ const stream = require ( 'stream' ) ;
6+ const util = require ( 'util' ) ;
7+ const pipeline = util . promisify ( stream . pipeline ) ;
8+ const fsAccess = util . promisify ( fs . access ) ;
59
610const download = ( url , destDir ) => {
711 const destFileName = path . join ( destDir , path . basename ( url ) ) ;
812 const destFile = fs . createWriteStream ( destFileName ) ;
913 console . log ( 'Downloading' , url , 'to' , path . relative ( process . cwd ( ) , destFileName ) ) ;
1014
11- return new Promise ( ( resolve , reject ) => {
15+ return new Promise ( ( resolve ) => {
1216 https . get ( url , ( response ) => {
13- response . pipe ( destFile )
14- . once ( 'error' , reject )
15- . on ( 'finish' , resolve ) ;
17+ resolve ( pipeline ( response , destFile ) ) ;
1618 } ) ;
1719 } ) ;
1820} ;
1921
22+ const AKZIDENZ_CDN_BASE_URL = 'https://d2va9gm4j17fy9.cloudfront.net/fonts/' ;
2023const AKZIDENZ_CDN_URLS = [
21- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdita.eot' ,
22- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdita.svg' ,
23- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdita.ttf' ,
24- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdita.woff' ,
25- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdlig.eot' ,
26- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdlig.svg' ,
27- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdlig.ttf' ,
28- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdlig.woff' ,
29- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligcnd.eot' ,
30- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligcnd.svg' ,
31- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligcnd.ttf' ,
32- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligcnd.woff' ,
33- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligita.eot' ,
34- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligita.svg' ,
35- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligita.ttf' ,
36- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdligita.woff' ,
37- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmed.eot' ,
38- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmed.svg' ,
39- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmed.ttf' ,
40- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmed.woff' ,
41- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmedita.eot' ,
42- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmedita.svg' ,
43- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmedita.ttf' ,
44- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdmedita.woff' ,
45- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdreg.eot' ,
46- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdreg.svg' ,
47- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdreg.ttf' ,
48- 'https://d2va9gm4j17fy9.cloudfront.net/fonts/ akzidgrostdreg.woff'
49- ] ;
24+ 'akzidgrostdita.eot' ,
25+ 'akzidgrostdita.svg' ,
26+ 'akzidgrostdita.ttf' ,
27+ 'akzidgrostdita.woff' ,
28+ 'akzidgrostdlig.eot' ,
29+ 'akzidgrostdlig.svg' ,
30+ 'akzidgrostdlig.ttf' ,
31+ 'akzidgrostdlig.woff' ,
32+ 'akzidgrostdligcnd.eot' ,
33+ 'akzidgrostdligcnd.svg' ,
34+ 'akzidgrostdligcnd.ttf' ,
35+ 'akzidgrostdligcnd.woff' ,
36+ 'akzidgrostdligita.eot' ,
37+ 'akzidgrostdligita.svg' ,
38+ 'akzidgrostdligita.ttf' ,
39+ 'akzidgrostdligita.woff' ,
40+ 'akzidgrostdmed.eot' ,
41+ 'akzidgrostdmed.svg' ,
42+ 'akzidgrostdmed.ttf' ,
43+ 'akzidgrostdmed.woff' ,
44+ 'akzidgrostdmedita.eot' ,
45+ 'akzidgrostdmedita.svg' ,
46+ 'akzidgrostdmedita.ttf' ,
47+ 'akzidgrostdmedita.woff' ,
48+ 'akzidgrostdreg.eot' ,
49+ 'akzidgrostdreg.svg' ,
50+ 'akzidgrostdreg.ttf' ,
51+ 'akzidgrostdreg.woff'
52+ ] . map ( ( filename ) => ` ${ AKZIDENZ_CDN_BASE_URL } ${ filename } ` ) ;
5053
5154const FONTS_DIRECTORY = path . resolve (
5255 __dirname ,
@@ -57,6 +60,13 @@ const FONTS_DIRECTORY = path.resolve(
5760) ;
5861
5962( async ( ) => {
63+ try {
64+ await fsAccess ( FONTS_DIRECTORY ) ;
65+ } catch ( err ) {
66+ // We only want to install the fonts when we are in a project which is.
67+ return ;
68+ }
69+
6070 await Promise . all (
6171 AKZIDENZ_CDN_URLS . map ( url => download ( url , FONTS_DIRECTORY ) )
6272 ) ;
0 commit comments