@elementor/generate-wordpress-asset-file-webpack-plugin 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ ## 0.2.1 (2023-07-02)
7
+
8
+ **Note:** Version bump only for package @elementor/generate-wordpress-asset-file-webpack-plugin
@@ -0,0 +1,47 @@
1
+ import { Compiler, Compilation, Chunk } from 'webpack';
2
+
3
+ type HandlesMap = {
4
+ exact: Record<string, string>;
5
+ startsWith: Record<string, string>;
6
+ };
7
+ type Options = {
8
+ handlePrefix: string;
9
+ handlesMap?: Partial<HandlesMap>;
10
+ apps?: string[];
11
+ extensions?: string[];
12
+ i18n?: {
13
+ domain: string;
14
+ replaceRequestedFile?: boolean;
15
+ };
16
+ };
17
+ type NormalizedOptions = {
18
+ handlePrefix: string;
19
+ handlesMap: HandlesMap;
20
+ apps: string[];
21
+ extensions: string[];
22
+ i18n: {
23
+ domain: string | null;
24
+ replaceRequestedFile: boolean;
25
+ };
26
+ };
27
+ declare class GenerateWordPressAssetFileWebpackPlugin {
28
+ options: NormalizedOptions;
29
+ constructor(options: Options);
30
+ apply(compiler: Compiler): void;
31
+ getDepsFromChunk(compilation: Compilation, chunk: Chunk): Set<string>;
32
+ createAssetsFileContent({ deps, i18n, entryName, }: {
33
+ deps: Set<string>;
34
+ i18n: NormalizedOptions['i18n'];
35
+ entryName: string;
36
+ }): string;
37
+ getLoaderFileContent(entriesData: Record<string, string>): string;
38
+ getEntryType(entryName: string): "extension" | "app" | "util";
39
+ getFileFromChunk(chunk: Chunk): string | undefined;
40
+ isExternalDep(request: string): boolean | "";
41
+ getHandleFromDep(dep: string): string;
42
+ generateHandleName(name: string): string;
43
+ generateAssetsFileName(filename: string): string;
44
+ normalizeOptions(options: Options): NormalizedOptions;
45
+ }
46
+
47
+ export { GenerateWordPressAssetFileWebpackPlugin };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Inspired by \"Dependency Extraction Webpack Plugin\" by @wordpress team.\n// Link: https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin\nimport { sources, Compilation, Compiler, Chunk } from 'webpack';\n\ntype HandlesMap = {\n\texact: Record<string, string>;\n\tstartsWith: Record<string, string>;\n}\n\ntype Options = {\n\thandlePrefix: string;\n\thandlesMap?: Partial<HandlesMap>\n\tapps?: string[];\n\textensions?: string[];\n\ti18n?: {\n\t\tdomain: string;\n\t\treplaceRequestedFile?: boolean;\n\t}\n}\n\ntype NormalizedOptions = {\n\thandlePrefix: string;\n\thandlesMap: HandlesMap;\n\tapps: string[];\n\textensions: string[];\n\ti18n: {\n\t\tdomain: string | null;\n\t\treplaceRequestedFile: boolean;\n\t}\n}\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n}\n\nconst baseHandlesMap: HandlesMap = {\n\texact: {\n\t\treact: 'react',\n\t\t'react-dom': 'react-dom',\n\t},\n\tstartsWith: {\n\t\t'@elementor/': 'elementor-packages-',\n\t\t'@wordpress/': 'wp-',\n\t},\n};\n\nexport class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: NormalizedOptions;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = this.normalizeOptions( options );\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tlet handlesAssetsMap: Record<string, string>;\n\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\thandlesAssetsMap = [ ...compilation.entrypoints ].reduce<Record<string, string>>( ( map, [ entryName, entrypoint ] ) => {\n\t\t\t\t\tconst chunk = entrypoint.chunks.find( ( { name } ) => name === entryName );\n\n\t\t\t\t\tif ( ! chunk ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\t\t\t\tif ( ! chunkJSFile ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst deps = this.getDepsFromChunk( compilation, chunk );\n\n\t\t\t\t\tconst assetFilename = this.generateAssetsFileName(\n\t\t\t\t\t\tcompilation.getPath( '[file]', { filename: chunkJSFile } )\n\t\t\t\t\t);\n\n\t\t\t\t\tconst handle = this.generateHandleName( entryName );\n\n\t\t\t\t\tconst content = this.createAssetsFileContent( {\n\t\t\t\t\t\tdeps,\n\t\t\t\t\t\tentryName,\n\t\t\t\t\t\ti18n: this.options.i18n,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Add source and file into compilation for webpack to output.\n\t\t\t\t\tcompilation.assets[ assetFilename ] = new sources.RawSource( content );\n\n\t\t\t\t\tchunk.files.add( assetFilename );\n\n\t\t\t\t\tmap[ handle ] = assetFilename;\n\n\t\t\t\t\treturn map;\n\t\t\t\t}, {} );\n\t\t\t} );\n\n\t\t\tcompilation.hooks.afterProcessAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\tconst loaderFileContent = this.getLoaderFileContent( handlesAssetsMap );\n\n\t\t\t\tcompilation.assets[ 'loader.php' ] = new sources.RawSource( loaderFileContent );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tgetDepsFromChunk( compilation: Compilation, chunk: Chunk ) {\n\t\tconst depsSet = new Set<string>();\n\n\t\tcompilation.chunkGraph.getChunkModules( chunk ).forEach( ( module ) => {\n\t\t\t// There are some issues with types in webpack, so we need to cast it.\n\t\t\tconst theModule = module as Module;\n\n\t\t\t[ ...( theModule.modules || [] ), theModule ].forEach( ( subModule ) => {\n\t\t\t\tif ( subModule.userRequest && this.isExternalDep( subModule.userRequest ) ) {\n\t\t\t\t\tdepsSet.add( subModule.userRequest );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn depsSet;\n\t}\n\n\tcreateAssetsFileContent( {\n\t\tdeps,\n\t\ti18n,\n\t\tentryName,\n\t}: {\n\t\tdeps: Set<string>;\n\t\ti18n: NormalizedOptions[ 'i18n' ];\n\t\tentryName: string;\n\t} ) {\n\t\tconst handleName = this.generateHandleName( entryName );\n\t\tconst type = this.getEntryType( entryName );\n\n\t\tconst depsAsString = [ ...deps ]\n\t\t\t.map( ( dep ) => this.getHandleFromDep( dep ) )\n\t\t\t.filter( ( dep ) => dep !== handleName )\n\t\t\t.sort()\n\t\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t\t.join( '\\n\\t\\t' );\n\n\t\tconst i18nContent = i18n.domain ? `[\n\t\t'domain' => '${ i18n.domain }',\n\t\t'replace_requested_file' => ${ ( i18n.replaceRequestedFile ?? false ).toString() },\n\t]` : '[]';\n\n\t\tconst content =\n\t\t\t`<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nreturn [\n\t'handle' => '${ handleName }',\n\t'src' => plugins_url( '/', __FILE__ ) . '${ entryName }{{MIN_SUFFIX}}.js',\n\t'i18n' => ${ i18nContent },\n\t'type' => '${ type }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n\n\t\treturn content;\n\t}\n\n\tgetLoaderFileContent( entriesData: Record<string, string> ) {\n\t\tconst entriesContent = Object.entries( entriesData ).map( ( [ handle, assetFileName ] ) => {\n\t\t\treturn `\n\t$data['${ handle }'] = require __DIR__ . '/${ assetFileName }';`;\n\t\t} );\n\n\t\treturn `<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nadd_filter( 'elementor/editor-v2/packages/config', function( $data ) {\n${ entriesContent.join( '\\n' ) }\n\treturn $data;\n} );\n`;\n\t}\n\n\tgetEntryType( entryName: string ) {\n\t\tif ( this.options.extensions.includes( entryName ) ) {\n\t\t\treturn 'extension';\n\t\t}\n\n\t\tif ( this.options.apps.includes( entryName ) ) {\n\t\t\treturn 'app';\n\t\t}\n\n\t\treturn 'util';\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n\n\tisExternalDep( request: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\treturn request && (\n\t\t\tObject.keys( exact ).includes( request ) ||\n\t\t\tObject.keys( startsWith ).some( ( dep ) => request.startsWith( dep ) )\n\t\t);\n\t}\n\n\tgetHandleFromDep( dep: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\tif ( Object.keys( exact ).includes( dep ) ) {\n\t\t\treturn exact[ dep ];\n\t\t}\n\n\t\tfor ( const [ key, value ] of Object.entries( startsWith ) ) {\n\t\t\tif ( dep.startsWith( key ) ) {\n\t\t\t\treturn dep.replace( key, value );\n\t\t\t}\n\t\t}\n\n\t\treturn dep;\n\t}\n\n\tgenerateHandleName( name: string ) {\n\t\tif ( this.options.handlePrefix ) {\n\t\t\treturn `${ this.options.handlePrefix }${ name }`;\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tgenerateAssetsFileName( filename: string ) {\n\t\treturn filename.replace( /(\\.min)?\\.js$/i, '.asset.php' );\n\t}\n\n\tnormalizeOptions( options: Options ): NormalizedOptions {\n\t\treturn {\n\t\t\t...options,\n\t\t\thandlesMap: {\n\t\t\t\texact: {\n\t\t\t\t\t...baseHandlesMap.exact,\n\t\t\t\t\t...( options?.handlesMap?.exact || {} ),\n\t\t\t\t},\n\t\t\t\tstartsWith: {\n\t\t\t\t\t...baseHandlesMap.startsWith,\n\t\t\t\t\t...( options?.handlesMap?.startsWith || {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t\tapps: options?.apps || [],\n\t\t\textensions: options?.extensions || [],\n\t\t\ti18n: {\n\t\t\t\tdomain: options?.i18n?.domain || null,\n\t\t\t\treplaceRequestedFile: options?.i18n?.replaceRequestedFile ?? false,\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":"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","names":["module"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Inspired by \"Dependency Extraction Webpack Plugin\" by @wordpress team.\n// Link: https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin\nimport { sources, Compilation, Compiler, Chunk } from 'webpack';\n\ntype HandlesMap = {\n\texact: Record<string, string>;\n\tstartsWith: Record<string, string>;\n}\n\ntype Options = {\n\thandlePrefix: string;\n\thandlesMap?: Partial<HandlesMap>\n\tapps?: string[];\n\textensions?: string[];\n\ti18n?: {\n\t\tdomain: string;\n\t\treplaceRequestedFile?: boolean;\n\t}\n}\n\ntype NormalizedOptions = {\n\thandlePrefix: string;\n\thandlesMap: HandlesMap;\n\tapps: string[];\n\textensions: string[];\n\ti18n: {\n\t\tdomain: string | null;\n\t\treplaceRequestedFile: boolean;\n\t}\n}\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n}\n\nconst baseHandlesMap: HandlesMap = {\n\texact: {\n\t\treact: 'react',\n\t\t'react-dom': 'react-dom',\n\t},\n\tstartsWith: {\n\t\t'@elementor/': 'elementor-packages-',\n\t\t'@wordpress/': 'wp-',\n\t},\n};\n\nexport class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: NormalizedOptions;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = this.normalizeOptions( options );\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tlet handlesAssetsMap: Record<string, string>;\n\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\thandlesAssetsMap = [ ...compilation.entrypoints ].reduce<Record<string, string>>( ( map, [ entryName, entrypoint ] ) => {\n\t\t\t\t\tconst chunk = entrypoint.chunks.find( ( { name } ) => name === entryName );\n\n\t\t\t\t\tif ( ! chunk ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\t\t\t\tif ( ! chunkJSFile ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst deps = this.getDepsFromChunk( compilation, chunk );\n\n\t\t\t\t\tconst assetFilename = this.generateAssetsFileName(\n\t\t\t\t\t\tcompilation.getPath( '[file]', { filename: chunkJSFile } )\n\t\t\t\t\t);\n\n\t\t\t\t\tconst handle = this.generateHandleName( entryName );\n\n\t\t\t\t\tconst content = this.createAssetsFileContent( {\n\t\t\t\t\t\tdeps,\n\t\t\t\t\t\tentryName,\n\t\t\t\t\t\ti18n: this.options.i18n,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Add source and file into compilation for webpack to output.\n\t\t\t\t\tcompilation.assets[ assetFilename ] = new sources.RawSource( content );\n\n\t\t\t\t\tchunk.files.add( assetFilename );\n\n\t\t\t\t\tmap[ handle ] = assetFilename;\n\n\t\t\t\t\treturn map;\n\t\t\t\t}, {} );\n\t\t\t} );\n\n\t\t\tcompilation.hooks.afterProcessAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\tconst loaderFileContent = this.getLoaderFileContent( handlesAssetsMap );\n\n\t\t\t\tcompilation.assets[ 'loader.php' ] = new sources.RawSource( loaderFileContent );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tgetDepsFromChunk( compilation: Compilation, chunk: Chunk ) {\n\t\tconst depsSet = new Set<string>();\n\n\t\tcompilation.chunkGraph.getChunkModules( chunk ).forEach( ( module ) => {\n\t\t\t// There are some issues with types in webpack, so we need to cast it.\n\t\t\tconst theModule = module as Module;\n\n\t\t\t[ ...( theModule.modules || [] ), theModule ].forEach( ( subModule ) => {\n\t\t\t\tif ( subModule.userRequest && this.isExternalDep( subModule.userRequest ) ) {\n\t\t\t\t\tdepsSet.add( subModule.userRequest );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn depsSet;\n\t}\n\n\tcreateAssetsFileContent( {\n\t\tdeps,\n\t\ti18n,\n\t\tentryName,\n\t}: {\n\t\tdeps: Set<string>;\n\t\ti18n: NormalizedOptions[ 'i18n' ];\n\t\tentryName: string;\n\t} ) {\n\t\tconst handleName = this.generateHandleName( entryName );\n\t\tconst type = this.getEntryType( entryName );\n\n\t\tconst depsAsString = [ ...deps ]\n\t\t\t.map( ( dep ) => this.getHandleFromDep( dep ) )\n\t\t\t.filter( ( dep ) => dep !== handleName )\n\t\t\t.sort()\n\t\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t\t.join( '\\n\\t\\t' );\n\n\t\tconst i18nContent = i18n.domain ? `[\n\t\t'domain' => '${ i18n.domain }',\n\t\t'replace_requested_file' => ${ ( i18n.replaceRequestedFile ?? false ).toString() },\n\t]` : '[]';\n\n\t\tconst content =\n\t\t\t`<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nreturn [\n\t'handle' => '${ handleName }',\n\t'src' => plugins_url( '/', __FILE__ ) . '${ entryName }{{MIN_SUFFIX}}.js',\n\t'i18n' => ${ i18nContent },\n\t'type' => '${ type }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n\n\t\treturn content;\n\t}\n\n\tgetLoaderFileContent( entriesData: Record<string, string> ) {\n\t\tconst entriesContent = Object.entries( entriesData ).map( ( [ handle, assetFileName ] ) => {\n\t\t\treturn `\n\t$data['${ handle }'] = require __DIR__ . '/${ assetFileName }';`;\n\t\t} );\n\n\t\treturn `<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nadd_filter( 'elementor/editor-v2/packages/config', function( $data ) {\n${ entriesContent.join( '\\n' ) }\n\treturn $data;\n} );\n`;\n\t}\n\n\tgetEntryType( entryName: string ) {\n\t\tif ( this.options.extensions.includes( entryName ) ) {\n\t\t\treturn 'extension';\n\t\t}\n\n\t\tif ( this.options.apps.includes( entryName ) ) {\n\t\t\treturn 'app';\n\t\t}\n\n\t\treturn 'util';\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n\n\tisExternalDep( request: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\treturn request && (\n\t\t\tObject.keys( exact ).includes( request ) ||\n\t\t\tObject.keys( startsWith ).some( ( dep ) => request.startsWith( dep ) )\n\t\t);\n\t}\n\n\tgetHandleFromDep( dep: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\tif ( Object.keys( exact ).includes( dep ) ) {\n\t\t\treturn exact[ dep ];\n\t\t}\n\n\t\tfor ( const [ key, value ] of Object.entries( startsWith ) ) {\n\t\t\tif ( dep.startsWith( key ) ) {\n\t\t\t\treturn dep.replace( key, value );\n\t\t\t}\n\t\t}\n\n\t\treturn dep;\n\t}\n\n\tgenerateHandleName( name: string ) {\n\t\tif ( this.options.handlePrefix ) {\n\t\t\treturn `${ this.options.handlePrefix }${ name }`;\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tgenerateAssetsFileName( filename: string ) {\n\t\treturn filename.replace( /(\\.min)?\\.js$/i, '.asset.php' );\n\t}\n\n\tnormalizeOptions( options: Options ): NormalizedOptions {\n\t\treturn {\n\t\t\t...options,\n\t\t\thandlesMap: {\n\t\t\t\texact: {\n\t\t\t\t\t...baseHandlesMap.exact,\n\t\t\t\t\t...( options?.handlesMap?.exact || {} ),\n\t\t\t\t},\n\t\t\t\tstartsWith: {\n\t\t\t\t\t...baseHandlesMap.startsWith,\n\t\t\t\t\t...( options?.handlesMap?.startsWith || {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t\tapps: options?.apps || [],\n\t\t\textensions: options?.extensions || [],\n\t\t\ti18n: {\n\t\t\t\tdomain: options?.i18n?.domain || null,\n\t\t\t\treplaceRequestedFile: options?.i18n?.replaceRequestedFile ?? false,\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":"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","names":["module"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Inspired by \"Dependency Extraction Webpack Plugin\" by @wordpress team.\n// Link: https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin\nimport { sources, Compilation, Compiler, Chunk } from 'webpack';\n\ntype HandlesMap = {\n\texact: Record<string, string>;\n\tstartsWith: Record<string, string>;\n}\n\ntype Options = {\n\thandlePrefix: string;\n\thandlesMap?: Partial<HandlesMap>\n\tapps?: string[];\n\textensions?: string[];\n\ti18n?: {\n\t\tdomain: string;\n\t\treplaceRequestedFile?: boolean;\n\t}\n}\n\ntype NormalizedOptions = {\n\thandlePrefix: string;\n\thandlesMap: HandlesMap;\n\tapps: string[];\n\textensions: string[];\n\ti18n: {\n\t\tdomain: string | null;\n\t\treplaceRequestedFile: boolean;\n\t}\n}\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n}\n\nconst baseHandlesMap: HandlesMap = {\n\texact: {\n\t\treact: 'react',\n\t\t'react-dom': 'react-dom',\n\t},\n\tstartsWith: {\n\t\t'@elementor/': 'elementor-packages-',\n\t\t'@wordpress/': 'wp-',\n\t},\n};\n\nexport class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: NormalizedOptions;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = this.normalizeOptions( options );\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tlet handlesAssetsMap: Record<string, string>;\n\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\thandlesAssetsMap = [ ...compilation.entrypoints ].reduce<Record<string, string>>( ( map, [ entryName, entrypoint ] ) => {\n\t\t\t\t\tconst chunk = entrypoint.chunks.find( ( { name } ) => name === entryName );\n\n\t\t\t\t\tif ( ! chunk ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\t\t\t\tif ( ! chunkJSFile ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst deps = this.getDepsFromChunk( compilation, chunk );\n\n\t\t\t\t\tconst assetFilename = this.generateAssetsFileName(\n\t\t\t\t\t\tcompilation.getPath( '[file]', { filename: chunkJSFile } )\n\t\t\t\t\t);\n\n\t\t\t\t\tconst handle = this.generateHandleName( entryName );\n\n\t\t\t\t\tconst content = this.createAssetsFileContent( {\n\t\t\t\t\t\tdeps,\n\t\t\t\t\t\tentryName,\n\t\t\t\t\t\ti18n: this.options.i18n,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Add source and file into compilation for webpack to output.\n\t\t\t\t\tcompilation.assets[ assetFilename ] = new sources.RawSource( content );\n\n\t\t\t\t\tchunk.files.add( assetFilename );\n\n\t\t\t\t\tmap[ handle ] = assetFilename;\n\n\t\t\t\t\treturn map;\n\t\t\t\t}, {} );\n\t\t\t} );\n\n\t\t\tcompilation.hooks.afterProcessAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\tconst loaderFileContent = this.getLoaderFileContent( handlesAssetsMap );\n\n\t\t\t\tcompilation.assets[ 'loader.php' ] = new sources.RawSource( loaderFileContent );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tgetDepsFromChunk( compilation: Compilation, chunk: Chunk ) {\n\t\tconst depsSet = new Set<string>();\n\n\t\tcompilation.chunkGraph.getChunkModules( chunk ).forEach( ( module ) => {\n\t\t\t// There are some issues with types in webpack, so we need to cast it.\n\t\t\tconst theModule = module as Module;\n\n\t\t\t[ ...( theModule.modules || [] ), theModule ].forEach( ( subModule ) => {\n\t\t\t\tif ( subModule.userRequest && this.isExternalDep( subModule.userRequest ) ) {\n\t\t\t\t\tdepsSet.add( subModule.userRequest );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn depsSet;\n\t}\n\n\tcreateAssetsFileContent( {\n\t\tdeps,\n\t\ti18n,\n\t\tentryName,\n\t}: {\n\t\tdeps: Set<string>;\n\t\ti18n: NormalizedOptions[ 'i18n' ];\n\t\tentryName: string;\n\t} ) {\n\t\tconst handleName = this.generateHandleName( entryName );\n\t\tconst type = this.getEntryType( entryName );\n\n\t\tconst depsAsString = [ ...deps ]\n\t\t\t.map( ( dep ) => this.getHandleFromDep( dep ) )\n\t\t\t.filter( ( dep ) => dep !== handleName )\n\t\t\t.sort()\n\t\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t\t.join( '\\n\\t\\t' );\n\n\t\tconst i18nContent = i18n.domain ? `[\n\t\t'domain' => '${ i18n.domain }',\n\t\t'replace_requested_file' => ${ ( i18n.replaceRequestedFile ?? false ).toString() },\n\t]` : '[]';\n\n\t\tconst content =\n\t\t\t`<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nreturn [\n\t'handle' => '${ handleName }',\n\t'src' => plugins_url( '/', __FILE__ ) . '${ entryName }{{MIN_SUFFIX}}.js',\n\t'i18n' => ${ i18nContent },\n\t'type' => '${ type }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n\n\t\treturn content;\n\t}\n\n\tgetLoaderFileContent( entriesData: Record<string, string> ) {\n\t\tconst entriesContent = Object.entries( entriesData ).map( ( [ handle, assetFileName ] ) => {\n\t\t\treturn `\n\t$data['${ handle }'] = require __DIR__ . '/${ assetFileName }';`;\n\t\t} );\n\n\t\treturn `<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nadd_filter( 'elementor/editor-v2/packages/config', function( $data ) {\n${ entriesContent.join( '\\n' ) }\n\treturn $data;\n} );\n`;\n\t}\n\n\tgetEntryType( entryName: string ) {\n\t\tif ( this.options.extensions.includes( entryName ) ) {\n\t\t\treturn 'extension';\n\t\t}\n\n\t\tif ( this.options.apps.includes( entryName ) ) {\n\t\t\treturn 'app';\n\t\t}\n\n\t\treturn 'util';\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n\n\tisExternalDep( request: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\treturn request && (\n\t\t\tObject.keys( exact ).includes( request ) ||\n\t\t\tObject.keys( startsWith ).some( ( dep ) => request.startsWith( dep ) )\n\t\t);\n\t}\n\n\tgetHandleFromDep( dep: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\tif ( Object.keys( exact ).includes( dep ) ) {\n\t\t\treturn exact[ dep ];\n\t\t}\n\n\t\tfor ( const [ key, value ] of Object.entries( startsWith ) ) {\n\t\t\tif ( dep.startsWith( key ) ) {\n\t\t\t\treturn dep.replace( key, value );\n\t\t\t}\n\t\t}\n\n\t\treturn dep;\n\t}\n\n\tgenerateHandleName( name: string ) {\n\t\tif ( this.options.handlePrefix ) {\n\t\t\treturn `${ this.options.handlePrefix }${ name }`;\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tgenerateAssetsFileName( filename: string ) {\n\t\treturn filename.replace( /(\\.min)?\\.js$/i, '.asset.php' );\n\t}\n\n\tnormalizeOptions( options: Options ): NormalizedOptions {\n\t\treturn {\n\t\t\t...options,\n\t\t\thandlesMap: {\n\t\t\t\texact: {\n\t\t\t\t\t...baseHandlesMap.exact,\n\t\t\t\t\t...( options?.handlesMap?.exact || {} ),\n\t\t\t\t},\n\t\t\t\tstartsWith: {\n\t\t\t\t\t...baseHandlesMap.startsWith,\n\t\t\t\t\t...( options?.handlesMap?.startsWith || {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t\tapps: options?.apps || [],\n\t\t\textensions: options?.extensions || [],\n\t\t\ti18n: {\n\t\t\t\tdomain: options?.i18n?.domain || null,\n\t\t\t\treplaceRequestedFile: options?.i18n?.replaceRequestedFile ?? false,\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Inspired by \"Dependency Extraction Webpack Plugin\" by @wordpress team.\n// Link: https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin\nimport { sources, Compilation, Compiler, Chunk } from 'webpack';\n\ntype HandlesMap = {\n\texact: Record<string, string>;\n\tstartsWith: Record<string, string>;\n}\n\ntype Options = {\n\thandlePrefix: string;\n\thandlesMap?: Partial<HandlesMap>\n\tapps?: string[];\n\textensions?: string[];\n\ti18n?: {\n\t\tdomain: string;\n\t\treplaceRequestedFile?: boolean;\n\t}\n}\n\ntype NormalizedOptions = {\n\thandlePrefix: string;\n\thandlesMap: HandlesMap;\n\tapps: string[];\n\textensions: string[];\n\ti18n: {\n\t\tdomain: string | null;\n\t\treplaceRequestedFile: boolean;\n\t}\n}\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n}\n\nconst baseHandlesMap: HandlesMap = {\n\texact: {\n\t\treact: 'react',\n\t\t'react-dom': 'react-dom',\n\t},\n\tstartsWith: {\n\t\t'@elementor/': 'elementor-packages-',\n\t\t'@wordpress/': 'wp-',\n\t},\n};\n\nexport class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: NormalizedOptions;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = this.normalizeOptions( options );\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tlet handlesAssetsMap: Record<string, string>;\n\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\thandlesAssetsMap = [ ...compilation.entrypoints ].reduce<Record<string, string>>( ( map, [ entryName, entrypoint ] ) => {\n\t\t\t\t\tconst chunk = entrypoint.chunks.find( ( { name } ) => name === entryName );\n\n\t\t\t\t\tif ( ! chunk ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\t\t\t\tif ( ! chunkJSFile ) {\n\t\t\t\t\t\treturn map;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst deps = this.getDepsFromChunk( compilation, chunk );\n\n\t\t\t\t\tconst assetFilename = this.generateAssetsFileName(\n\t\t\t\t\t\tcompilation.getPath( '[file]', { filename: chunkJSFile } )\n\t\t\t\t\t);\n\n\t\t\t\t\tconst handle = this.generateHandleName( entryName );\n\n\t\t\t\t\tconst content = this.createAssetsFileContent( {\n\t\t\t\t\t\tdeps,\n\t\t\t\t\t\tentryName,\n\t\t\t\t\t\ti18n: this.options.i18n,\n\t\t\t\t\t} );\n\n\t\t\t\t\t// Add source and file into compilation for webpack to output.\n\t\t\t\t\tcompilation.assets[ assetFilename ] = new sources.RawSource( content );\n\n\t\t\t\t\tchunk.files.add( assetFilename );\n\n\t\t\t\t\tmap[ handle ] = assetFilename;\n\n\t\t\t\t\treturn map;\n\t\t\t\t}, {} );\n\t\t\t} );\n\n\t\t\tcompilation.hooks.afterProcessAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\tconst loaderFileContent = this.getLoaderFileContent( handlesAssetsMap );\n\n\t\t\t\tcompilation.assets[ 'loader.php' ] = new sources.RawSource( loaderFileContent );\n\t\t\t} );\n\t\t} );\n\t}\n\n\tgetDepsFromChunk( compilation: Compilation, chunk: Chunk ) {\n\t\tconst depsSet = new Set<string>();\n\n\t\tcompilation.chunkGraph.getChunkModules( chunk ).forEach( ( module ) => {\n\t\t\t// There are some issues with types in webpack, so we need to cast it.\n\t\t\tconst theModule = module as Module;\n\n\t\t\t[ ...( theModule.modules || [] ), theModule ].forEach( ( subModule ) => {\n\t\t\t\tif ( subModule.userRequest && this.isExternalDep( subModule.userRequest ) ) {\n\t\t\t\t\tdepsSet.add( subModule.userRequest );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn depsSet;\n\t}\n\n\tcreateAssetsFileContent( {\n\t\tdeps,\n\t\ti18n,\n\t\tentryName,\n\t}: {\n\t\tdeps: Set<string>;\n\t\ti18n: NormalizedOptions[ 'i18n' ];\n\t\tentryName: string;\n\t} ) {\n\t\tconst handleName = this.generateHandleName( entryName );\n\t\tconst type = this.getEntryType( entryName );\n\n\t\tconst depsAsString = [ ...deps ]\n\t\t\t.map( ( dep ) => this.getHandleFromDep( dep ) )\n\t\t\t.filter( ( dep ) => dep !== handleName )\n\t\t\t.sort()\n\t\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t\t.join( '\\n\\t\\t' );\n\n\t\tconst i18nContent = i18n.domain ? `[\n\t\t'domain' => '${ i18n.domain }',\n\t\t'replace_requested_file' => ${ ( i18n.replaceRequestedFile ?? false ).toString() },\n\t]` : '[]';\n\n\t\tconst content =\n\t\t\t`<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nreturn [\n\t'handle' => '${ handleName }',\n\t'src' => plugins_url( '/', __FILE__ ) . '${ entryName }{{MIN_SUFFIX}}.js',\n\t'i18n' => ${ i18nContent },\n\t'type' => '${ type }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n\n\t\treturn content;\n\t}\n\n\tgetLoaderFileContent( entriesData: Record<string, string> ) {\n\t\tconst entriesContent = Object.entries( entriesData ).map( ( [ handle, assetFileName ] ) => {\n\t\t\treturn `\n\t$data['${ handle }'] = require __DIR__ . '/${ assetFileName }';`;\n\t\t} );\n\n\t\treturn `<?php\nif ( ! defined( 'ABSPATH' ) ) {\n\texit;\n}\n/**\n * This file is generated by Webpack, do not edit it directly.\n */\nadd_filter( 'elementor/editor-v2/packages/config', function( $data ) {\n${ entriesContent.join( '\\n' ) }\n\treturn $data;\n} );\n`;\n\t}\n\n\tgetEntryType( entryName: string ) {\n\t\tif ( this.options.extensions.includes( entryName ) ) {\n\t\t\treturn 'extension';\n\t\t}\n\n\t\tif ( this.options.apps.includes( entryName ) ) {\n\t\t\treturn 'app';\n\t\t}\n\n\t\treturn 'util';\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n\n\tisExternalDep( request: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\treturn request && (\n\t\t\tObject.keys( exact ).includes( request ) ||\n\t\t\tObject.keys( startsWith ).some( ( dep ) => request.startsWith( dep ) )\n\t\t);\n\t}\n\n\tgetHandleFromDep( dep: string ) {\n\t\tconst { startsWith, exact } = this.options.handlesMap;\n\n\t\tif ( Object.keys( exact ).includes( dep ) ) {\n\t\t\treturn exact[ dep ];\n\t\t}\n\n\t\tfor ( const [ key, value ] of Object.entries( startsWith ) ) {\n\t\t\tif ( dep.startsWith( key ) ) {\n\t\t\t\treturn dep.replace( key, value );\n\t\t\t}\n\t\t}\n\n\t\treturn dep;\n\t}\n\n\tgenerateHandleName( name: string ) {\n\t\tif ( this.options.handlePrefix ) {\n\t\t\treturn `${ this.options.handlePrefix }${ name }`;\n\t\t}\n\n\t\treturn name;\n\t}\n\n\tgenerateAssetsFileName( filename: string ) {\n\t\treturn filename.replace( /(\\.min)?\\.js$/i, '.asset.php' );\n\t}\n\n\tnormalizeOptions( options: Options ): NormalizedOptions {\n\t\treturn {\n\t\t\t...options,\n\t\t\thandlesMap: {\n\t\t\t\texact: {\n\t\t\t\t\t...baseHandlesMap.exact,\n\t\t\t\t\t...( options?.handlesMap?.exact || {} ),\n\t\t\t\t},\n\t\t\t\tstartsWith: {\n\t\t\t\t\t...baseHandlesMap.startsWith,\n\t\t\t\t\t...( options?.handlesMap?.startsWith || {} ),\n\t\t\t\t},\n\t\t\t},\n\t\t\tapps: options?.apps || [],\n\t\t\textensions: options?.extensions || [],\n\t\t\ti18n: {\n\t\t\t\tdomain: options?.i18n?.domain || null,\n\t\t\t\treplaceRequestedFile: options?.i18n?.replaceRequestedFile ?? false,\n\t\t\t},\n\t\t};\n\t}\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/generate-wordpress-asset-file-webpack-plugin",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
@@ -19,7 +19,7 @@
19
19
  "repository": {
20
20
  "type": "git",
21
21
  "url": "https://github.com/elementor/elementor-packages.git",
22
- "directory": "packages/libs/generated-wordpress-asset-file-webpack-plugin"
22
+ "directory": "packages/tools/generated-wordpress-asset-file-webpack-plugin"
23
23
  },
24
24
  "bugs": {
25
25
  "url": "https://github.com/elementor/elementor-packages/issues"
@@ -34,5 +34,5 @@
34
34
  "peerDependencies": {
35
35
  "webpack": "5.x"
36
36
  },
37
- "gitHead": "f93a1ed5350b151f17d65b21b0b43398774dccc5"
37
+ "gitHead": "0fc79b25b83fa50350f1670cb5d1e31ec8ae0874"
38
38
  }