11/* eslint-env node */
22
3+ import { Transform } from 'node:stream' ;
4+
35import gulp from 'gulp' ;
46import cleanCSS from 'gulp-clean-css' ;
57import inject from 'gulp-inject-string' ;
68import rename from 'gulp-rename' ;
79import replace from 'gulp-replace' ;
810import shell from 'gulp-shell' ;
9- import merge from 'merge-stream' ;
1011import named from 'vinyl-named' ;
1112import webpack from 'webpack-stream' ;
1213
@@ -32,39 +33,63 @@ gulp.task('build:css', gulp.parallel('build:css:admin', 'build:css:frontend'));
3233
3334gulp . task (
3435 'build:deps:composer:scoper' ,
35- shell . task ( 'vendor/bin/php-scoper add-prefix --force' )
36+ gulp . series ( shell . task ( 'vendor/bin/php-scoper add-prefix --force' ) , ( ) =>
37+ gulp
38+ . src ( [ 'dist/vendor/scoper-autoload.php' ] )
39+ . pipe (
40+ replace (
41+ "$GLOBALS['__composer_autoload_files']" ,
42+ "$GLOBALS['__composer_autoload_files_Sgdg_Vendor']"
43+ )
44+ )
45+ . pipe ( gulp . dest ( 'dist/vendor/' ) )
46+ )
3647) ;
3748
3849gulp . task (
3950 'build:deps:composer:autoloader' ,
4051 gulp . series (
41- shell . task (
42- 'composer dump-autoload --no-dev' +
43- ( process . env . NODE_ENV === 'production' ? ' -o' : '' )
44- ) ,
52+ shell . task ( 'composer dump-autoload --no-dev' ) ,
4553 ( ) =>
46- merge (
47- gulp . src ( [
48- 'vendor/composer/autoload_classmap.php' ,
49- 'vendor/composer/autoload_files.php' ,
50- 'vendor/composer/autoload_namespaces.php' ,
51- 'vendor/composer/autoload_psr4.php' ,
52- ] ) ,
53- gulp
54- . src ( [ 'vendor/composer/autoload_static.php' ] )
55- . pipe (
56- replace (
57- 'namespace Composer\\Autoload;' ,
58- 'namespace Sgdg\\Vendor\\Composer\\Autoload;'
59- )
60- )
61- . pipe (
62- replace (
63- / ' ( .* ) \\ \\ ' = > \n / g,
64- "'Sgdg\\\\Vendor\\\\$1\\\\' => \n"
65- )
66- )
67- ) . pipe ( gulp . dest ( 'dist/vendor/composer/' ) ) ,
54+ gulp
55+ . src ( [ 'vendor/composer/autoload_static.php' ] )
56+ . pipe (
57+ new Transform ( {
58+ objectMode : true ,
59+ transform : ( chunk , encoding , callback ) => {
60+ let contents = String ( chunk . contents ) . split ( '\n' ) ;
61+ let mode = 'none' ;
62+ contents = contents . map ( ( line ) => {
63+ if ( / ^ \s * \) ; $ / g. exec ( line ) ) {
64+ mode = 'none' ;
65+ } else if (
66+ / ^ \s * p u b l i c s t a t i c \$ c l a s s M a p = a r r a y \( $ / . exec (
67+ line
68+ )
69+ ) {
70+ mode = 'classMap' ;
71+ } else if ( mode === 'classMap' ) {
72+ line = line . replace (
73+ / ^ ( \s * ) ' ( [ ^ ' ] * ) ' = > / ,
74+ "$1'Sgdg\\\\Vendor\\\\$2' =>"
75+ ) ;
76+ } else {
77+ line = line . replace (
78+ 'namespace Composer\\Autoload;' ,
79+ 'namespace Sgdg\\Vendor\\Composer\\Autoload;'
80+ ) ;
81+ }
82+ return line ;
83+ } ) ;
84+ chunk . contents = Buffer . from (
85+ contents . join ( '\n' ) ,
86+ encoding
87+ ) ;
88+ callback ( null , chunk ) ;
89+ } ,
90+ } )
91+ )
92+ . pipe ( gulp . dest ( 'dist/vendor/composer/' ) ) ,
6893 shell . task ( 'composer dump-autoload' )
6994 )
7095) ;
0 commit comments