@@ -7,12 +7,13 @@ const gulp = require('gulp'),
77 merge = require ( 'merge2' ) ,
88 ts = require ( 'gulp-typescript' ) ,
99 webpack = require ( 'webpack-stream' ) ,
10+ fs = require ( 'fs' ) ,
1011 tsProject = ts . createProject ( 'tsconfig.json' ) ;
1112
1213const distRoot = path . resolve ( './dist' )
1314const scriptRoot = path . join ( distRoot , 'js' )
1415const styleRoot = path . join ( distRoot , 'css' )
15- const imageRoot = path . join ( distRoot , 'image ' )
16+ const imageRoot = path . join ( distRoot , 'images ' )
1617const paths = {
1718 dist : {
1819 root : distRoot ,
@@ -95,15 +96,15 @@ var getEmoticonFilter = function(){
9596 } )
9697} ;
9798
98- function copyImages ( ) {
99+ async function copyImages ( ) {
99100 del ( paths . dist . images . separate ) ;
100101
101102 const emojiMap = require ( 'emoji-datasource-apple' ) . reduce ( ( acc , emoji ) => Object . assign ( acc , {
102103 [ emoji . image ] : emoji
103104 } ) , { } )
104105 const availableFiles = Object . keys ( emojiMap )
105106
106- return gulp . src ( ' node_modules/emoji-datasource-apple/img/apple/64/*.png' )
107+ let pipeline = gulp . src ( ` node_modules/emoji-datasource-apple/img/apple/64/*.png` )
107108 . pipe ( $ . filter ( file => availableFiles . includes ( file . basename ) ) )
108109 . pipe ( $ . rename ( file => {
109110 const emojiData = emojiMap [ `${ file . basename } ${ file . extname } ` ]
@@ -112,6 +113,26 @@ function copyImages () {
112113 file . dirname = './'
113114 } ) )
114115 . pipe ( gulp . dest ( paths . dist . images . separate ) )
116+
117+ const extractPipelines = availableFiles . reduce ( ( ps , basename ) => {
118+ const emoji = emojiMap [ basename ]
119+ const filteredShortNames = emoji . short_names . filter ( n => n !== emoji . short_name )
120+ const sourceFile = `${ emojiDataSourcePath } /${ basename } `
121+
122+ if ( filteredShortNames . length > 0 && fs . existsSync ( sourceFile ) ) {
123+ const pipelines = filteredShortNames . map ( shortname => {
124+ return gulp . src ( sourceFile )
125+ . pipe ( $ . clone ( ) )
126+ . pipe ( $ . rename ( `${ shortname } .png` ) )
127+ . pipe ( gulp . dest ( paths . dist . images . separate ) )
128+ } )
129+ return ps . concat ( pipelines )
130+ } else {
131+ return ps
132+ }
133+ } , [ ] )
134+
135+ return merge ( pipeline , ...extractPipelines )
115136}
116137exports . copyImages = copyImages
117138
0 commit comments