@elementor/generate-wordpress-asset-file-webpack-plugin 0.3.0 → 0.3.2
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 +7 -4
- package/README.md +1 -2
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +36 -36
- package/src/__tests__/__snapshots__/index.test.ts.snap +6 -6
- package/src/__tests__/index.test.ts +3 -7
- package/src/plugin.ts +6 -10
- package/src/types.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,16 +3,19 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
## [0.3.2](https://github.com/elementor/elementor-packages/compare/@elementor/generate-wordpress-asset-file-webpack-plugin@0.3.1...@elementor/generate-wordpress-asset-file-webpack-plugin@0.3.2) (2024-07-16)
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
**Note:** Version bump only for package @elementor/generate-wordpress-asset-file-webpack-plugin
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
## [0.3.1](https://github.com/elementor/elementor-packages/compare/@elementor/generate-wordpress-asset-file-webpack-plugin@0.3.0...@elementor/generate-wordpress-asset-file-webpack-plugin@0.3.1) (2023-10-19)
|
|
12
11
|
|
|
12
|
+
**Note:** Version bump only for package @elementor/generate-wordpress-asset-file-webpack-plugin
|
|
13
13
|
|
|
14
|
+
# [0.3.0](https://github.com/elementor/elementor-packages/compare/@elementor/generate-wordpress-asset-file-webpack-plugin@0.2.1...@elementor/generate-wordpress-asset-file-webpack-plugin@0.3.0) (2023-07-11)
|
|
14
15
|
|
|
16
|
+
### Features
|
|
15
17
|
|
|
18
|
+
- **webpack-plugins:** simplify logic ([#78](https://github.com/elementor/elementor-packages/issues/78)) ([e4cadc0](https://github.com/elementor/elementor-packages/commit/e4cadc06be61450437274610e65b9d92eb245844))
|
|
16
19
|
|
|
17
20
|
## 0.2.1 (2023-07-02)
|
|
18
21
|
|
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -91,12 +91,8 @@ var GenerateWordPressAssetFileWebpackPlugin = class {
|
|
|
91
91
|
const transformEntryNameToHandle = this.options.handle;
|
|
92
92
|
const entryHandle = transformEntryNameToHandle(entryName);
|
|
93
93
|
const depsHandles = this.getDepsHandlesFromChunk(compilation, chunk);
|
|
94
|
-
const assetFilePath = createAssetFilePath(
|
|
95
|
-
|
|
96
|
-
);
|
|
97
|
-
compilation.assets[assetFilePath] = new import_webpack.sources.RawSource(
|
|
98
|
-
getAssetFileContent(entryHandle, depsHandles)
|
|
99
|
-
);
|
|
94
|
+
const assetFilePath = createAssetFilePath(compilation.getPath("[file]", { filename: chunkJSFile }));
|
|
95
|
+
compilation.assets[assetFilePath] = new import_webpack.sources.RawSource(getAssetFileContent(entryHandle, depsHandles));
|
|
100
96
|
chunk.files.add(assetFilePath);
|
|
101
97
|
}
|
|
102
98
|
getDepsHandlesFromChunk(compilation, chunk) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/utils.ts"],"sourcesContent":["export { default as GenerateWordPressAssetFileWebpackPlugin } from './plugin';\n","// 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';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\nimport { RequestToHandleMap } from './types';\n\ntype Options = {\n\thandle: ( entryName: string ) => string;\n\tmap: RequestToHandleMap
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/utils.ts"],"sourcesContent":["export { default as GenerateWordPressAssetFileWebpackPlugin } from './plugin';\n","// 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';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\nimport { RequestToHandleMap } from './types';\n\ntype Options = {\n\thandle: ( entryName: string ) => string;\n\tmap: RequestToHandleMap;\n};\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n};\n\nexport default class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: Options;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = options;\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\t[ ...compilation.entrypoints ].forEach( ( [ 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;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.addAssetFileToEntrypoint( compilation, entryName, chunk );\n\t\t\t\t} );\n\t\t\t} );\n\t\t} );\n\t}\n\n\taddAssetFileToEntrypoint( compilation: Compilation, entryName: string, chunk: Chunk ) {\n\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\tif ( ! chunkJSFile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformEntryNameToHandle = this.options.handle;\n\n\t\tconst entryHandle = transformEntryNameToHandle( entryName );\n\t\tconst depsHandles = this.getDepsHandlesFromChunk( compilation, chunk );\n\n\t\tconst assetFilePath = createAssetFilePath( compilation.getPath( '[file]', { filename: chunkJSFile } ) );\n\n\t\t// Add source and file into compilation for webpack to output.\n\t\tcompilation.assets[ assetFilePath ] = new sources.RawSource( getAssetFileContent( entryHandle, depsHandles ) );\n\n\t\tchunk.files.add( assetFilePath );\n\t}\n\n\tgetDepsHandlesFromChunk( 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\tconst depHandle = transformRequestToHandle( subModule.userRequest, this.options.map );\n\n\t\t\t\tif ( depHandle ) {\n\t\t\t\t\tdepsSet.add( depHandle );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn [ ...depsSet ];\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n}\n","import { RequestToHandleMap } from './types';\n\nexport function getAssetFileContent( entryHandle: string, depsHandles: string[] ) {\n\tconst depsAsString = depsHandles\n\t\t.filter( ( dep ) => dep !== entryHandle )\n\t\t.sort()\n\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t.join( '\\n\\t\\t' );\n\n\treturn `<?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' => '${ entryHandle }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n}\n\nexport function transformRequestToHandle( request: string | undefined, map: RequestToHandleMap ) {\n\tif ( ! request ) {\n\t\treturn request;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, handle } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn request.replace( requestRegex, handle );\n\t\t}\n\t}\n}\n\nexport function createAssetFilePath( path: string, suffix = '.asset.php' ) {\n\treturn path.replace( /(\\.min)?\\.js$/i, suffix );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,qBAAsD;;;ACA/C,SAAS,oBAAqB,aAAqB,aAAwB;AACjF,QAAM,eAAe,YACnB,OAAQ,CAAE,QAAS,QAAQ,WAAY,EACvC,KAAK,EACL,IAAK,CAAE,QAAS,IAAK,GAAI,IAAK,EAC9B,KAAM,MAAS;AAEjB,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQS,WAAY;AAAA;AAAA,IAExB,YAAa;AAAA;AAAA;AAAA;AAIlB;AAEO,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,QAAQ,QAAS,cAAc,MAAO;AAAA,IAC9C;AAAA,EACD;AACD;AAEO,SAAS,oBAAqB,MAAc,SAAS,cAAe;AAC1E,SAAO,KAAK,QAAS,kBAAkB,MAAO;AAC/C;;;AD/BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA,YAAa,SAAmB;AAC/B,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAO,UAAqB;AAC3B,aAAS,MAAM,gBAAgB,IAAK,KAAK,YAAY,MAAM,CAAE,gBAAiB;AAC7E,kBAAY,MAAM,cAAc,IAAK,EAAE,MAAM,KAAK,YAAY,KAAK,GAAG,MAAM;AAC3E,SAAE,GAAG,YAAY,WAAY,EAAE,QAAS,CAAE,CAAE,WAAW,UAAW,MAAO;AACxE,gBAAM,QAAQ,WAAW,OAAO,KAAM,CAAE,EAAE,KAAK,MAAO,SAAS,SAAU;AAEzE,cAAK,CAAE,OAAQ;AACd;AAAA,UACD;AAEA,eAAK,yBAA0B,aAAa,WAAW,KAAM;AAAA,QAC9D,CAAE;AAAA,MACH,CAAE;AAAA,IACH,CAAE;AAAA,EACH;AAAA,EAEA,yBAA0B,aAA0B,WAAmB,OAAe;AACrF,UAAM,cAAc,KAAK,iBAAkB,KAAM;AAEjD,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AAEA,UAAM,6BAA6B,KAAK,QAAQ;AAEhD,UAAM,cAAc,2BAA4B,SAAU;AAC1D,UAAM,cAAc,KAAK,wBAAyB,aAAa,KAAM;AAErE,UAAM,gBAAgB,oBAAqB,YAAY,QAAS,UAAU,EAAE,UAAU,YAAY,CAAE,CAAE;AAGtG,gBAAY,OAAQ,aAAc,IAAI,IAAI,uBAAQ,UAAW,oBAAqB,aAAa,WAAY,CAAE;AAE7G,UAAM,MAAM,IAAK,aAAc;AAAA,EAChC;AAAA,EAEA,wBAAyB,aAA0B,OAAe;AACjE,UAAM,UAAU,oBAAI,IAAc;AAElC,gBAAY,WAAW,gBAAiB,KAAM,EAAE,QAAS,CAAEA,YAAY;AAEtE,YAAM,YAAYA;AAElB,OAAE,GAAK,UAAU,WAAW,CAAC,GAAK,SAAU,EAAE,QAAS,CAAE,cAAe;AACvE,cAAM,YAAY,yBAA0B,UAAU,aAAa,KAAK,QAAQ,GAAI;AAEpF,YAAK,WAAY;AAChB,kBAAQ,IAAK,SAAU;AAAA,QACxB;AAAA,MACD,CAAE;AAAA,IACH,CAAE;AAEF,WAAO,CAAE,GAAG,OAAQ;AAAA,EACrB;AAAA,EAEA,iBAAkB,OAAe;AAChC,WAAO,CAAE,GAAG,MAAM,KAAM,EAAE,KAAM,CAAE,MAAO,SAAS,KAAM,CAAE,CAAE;AAAA,EAC7D;AACD;","names":["module"]}
|
package/dist/index.mjs
CHANGED
|
@@ -65,12 +65,8 @@ var GenerateWordPressAssetFileWebpackPlugin = class {
|
|
|
65
65
|
const transformEntryNameToHandle = this.options.handle;
|
|
66
66
|
const entryHandle = transformEntryNameToHandle(entryName);
|
|
67
67
|
const depsHandles = this.getDepsHandlesFromChunk(compilation, chunk);
|
|
68
|
-
const assetFilePath = createAssetFilePath(
|
|
69
|
-
|
|
70
|
-
);
|
|
71
|
-
compilation.assets[assetFilePath] = new sources.RawSource(
|
|
72
|
-
getAssetFileContent(entryHandle, depsHandles)
|
|
73
|
-
);
|
|
68
|
+
const assetFilePath = createAssetFilePath(compilation.getPath("[file]", { filename: chunkJSFile }));
|
|
69
|
+
compilation.assets[assetFilePath] = new sources.RawSource(getAssetFileContent(entryHandle, depsHandles));
|
|
74
70
|
chunk.files.add(assetFilePath);
|
|
75
71
|
}
|
|
76
72
|
getDepsHandlesFromChunk(compilation, chunk) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin.ts","../src/utils.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';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\nimport { RequestToHandleMap } from './types';\n\ntype Options = {\n\thandle: ( entryName: string ) => string;\n\tmap: RequestToHandleMap
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts","../src/utils.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';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\nimport { RequestToHandleMap } from './types';\n\ntype Options = {\n\thandle: ( entryName: string ) => string;\n\tmap: RequestToHandleMap;\n};\n\ntype Module = {\n\tuserRequest?: string;\n\tmodules?: Module[];\n};\n\nexport default class GenerateWordPressAssetFileWebpackPlugin {\n\toptions: Options;\n\n\tconstructor( options: Options ) {\n\t\tthis.options = options;\n\t}\n\n\tapply( compiler: Compiler ) {\n\t\tcompiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => {\n\t\t\tcompilation.hooks.processAssets.tap( { name: this.constructor.name }, () => {\n\t\t\t\t[ ...compilation.entrypoints ].forEach( ( [ 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;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.addAssetFileToEntrypoint( compilation, entryName, chunk );\n\t\t\t\t} );\n\t\t\t} );\n\t\t} );\n\t}\n\n\taddAssetFileToEntrypoint( compilation: Compilation, entryName: string, chunk: Chunk ) {\n\t\tconst chunkJSFile = this.getFileFromChunk( chunk );\n\n\t\tif ( ! chunkJSFile ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst transformEntryNameToHandle = this.options.handle;\n\n\t\tconst entryHandle = transformEntryNameToHandle( entryName );\n\t\tconst depsHandles = this.getDepsHandlesFromChunk( compilation, chunk );\n\n\t\tconst assetFilePath = createAssetFilePath( compilation.getPath( '[file]', { filename: chunkJSFile } ) );\n\n\t\t// Add source and file into compilation for webpack to output.\n\t\tcompilation.assets[ assetFilePath ] = new sources.RawSource( getAssetFileContent( entryHandle, depsHandles ) );\n\n\t\tchunk.files.add( assetFilePath );\n\t}\n\n\tgetDepsHandlesFromChunk( 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\tconst depHandle = transformRequestToHandle( subModule.userRequest, this.options.map );\n\n\t\t\t\tif ( depHandle ) {\n\t\t\t\t\tdepsSet.add( depHandle );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\n\t\treturn [ ...depsSet ];\n\t}\n\n\tgetFileFromChunk( chunk: Chunk ) {\n\t\treturn [ ...chunk.files ].find( ( f ) => /\\.js$/i.test( f ) );\n\t}\n}\n","import { RequestToHandleMap } from './types';\n\nexport function getAssetFileContent( entryHandle: string, depsHandles: string[] ) {\n\tconst depsAsString = depsHandles\n\t\t.filter( ( dep ) => dep !== entryHandle )\n\t\t.sort()\n\t\t.map( ( dep ) => `'${ dep }',` )\n\t\t.join( '\\n\\t\\t' );\n\n\treturn `<?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' => '${ entryHandle }',\n\t'deps' => [\n\t\t${ depsAsString }\n\t],\n];\n`;\n}\n\nexport function transformRequestToHandle( request: string | undefined, map: RequestToHandleMap ) {\n\tif ( ! request ) {\n\t\treturn request;\n\t}\n\n\tfor ( const item of map ) {\n\t\tlet { request: requestRegex, handle } = item;\n\n\t\tif ( ! ( requestRegex instanceof RegExp ) ) {\n\t\t\trequestRegex = new RegExp( `^${ requestRegex }$` );\n\t\t}\n\n\t\tconst matches = request.match( requestRegex );\n\n\t\tif ( matches ) {\n\t\t\treturn request.replace( requestRegex, handle );\n\t\t}\n\t}\n}\n\nexport function createAssetFilePath( path: string, suffix = '.asset.php' ) {\n\treturn path.replace( /(\\.min)?\\.js$/i, suffix );\n}\n"],"mappings":";AAEA,SAAS,eAA6C;;;ACA/C,SAAS,oBAAqB,aAAqB,aAAwB;AACjF,QAAM,eAAe,YACnB,OAAQ,CAAE,QAAS,QAAQ,WAAY,EACvC,KAAK,EACL,IAAK,CAAE,QAAS,IAAK,GAAI,IAAK,EAC9B,KAAM,MAAS;AAEjB,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAQS,WAAY;AAAA;AAAA,IAExB,YAAa;AAAA;AAAA;AAAA;AAIlB;AAEO,SAAS,yBAA0B,SAA6B,KAA0B;AAChG,MAAK,CAAE,SAAU;AAChB,WAAO;AAAA,EACR;AAEA,aAAY,QAAQ,KAAM;AACzB,QAAI,EAAE,SAAS,cAAc,OAAO,IAAI;AAExC,QAAK,EAAI,wBAAwB,SAAW;AAC3C,qBAAe,IAAI,OAAQ,IAAK,YAAa,GAAI;AAAA,IAClD;AAEA,UAAM,UAAU,QAAQ,MAAO,YAAa;AAE5C,QAAK,SAAU;AACd,aAAO,QAAQ,QAAS,cAAc,MAAO;AAAA,IAC9C;AAAA,EACD;AACD;AAEO,SAAS,oBAAqB,MAAc,SAAS,cAAe;AAC1E,SAAO,KAAK,QAAS,kBAAkB,MAAO;AAC/C;;;AD/BA,IAAqB,0CAArB,MAA6D;AAAA,EAC5D;AAAA,EAEA,YAAa,SAAmB;AAC/B,SAAK,UAAU;AAAA,EAChB;AAAA,EAEA,MAAO,UAAqB;AAC3B,aAAS,MAAM,gBAAgB,IAAK,KAAK,YAAY,MAAM,CAAE,gBAAiB;AAC7E,kBAAY,MAAM,cAAc,IAAK,EAAE,MAAM,KAAK,YAAY,KAAK,GAAG,MAAM;AAC3E,SAAE,GAAG,YAAY,WAAY,EAAE,QAAS,CAAE,CAAE,WAAW,UAAW,MAAO;AACxE,gBAAM,QAAQ,WAAW,OAAO,KAAM,CAAE,EAAE,KAAK,MAAO,SAAS,SAAU;AAEzE,cAAK,CAAE,OAAQ;AACd;AAAA,UACD;AAEA,eAAK,yBAA0B,aAAa,WAAW,KAAM;AAAA,QAC9D,CAAE;AAAA,MACH,CAAE;AAAA,IACH,CAAE;AAAA,EACH;AAAA,EAEA,yBAA0B,aAA0B,WAAmB,OAAe;AACrF,UAAM,cAAc,KAAK,iBAAkB,KAAM;AAEjD,QAAK,CAAE,aAAc;AACpB;AAAA,IACD;AAEA,UAAM,6BAA6B,KAAK,QAAQ;AAEhD,UAAM,cAAc,2BAA4B,SAAU;AAC1D,UAAM,cAAc,KAAK,wBAAyB,aAAa,KAAM;AAErE,UAAM,gBAAgB,oBAAqB,YAAY,QAAS,UAAU,EAAE,UAAU,YAAY,CAAE,CAAE;AAGtG,gBAAY,OAAQ,aAAc,IAAI,IAAI,QAAQ,UAAW,oBAAqB,aAAa,WAAY,CAAE;AAE7G,UAAM,MAAM,IAAK,aAAc;AAAA,EAChC;AAAA,EAEA,wBAAyB,aAA0B,OAAe;AACjE,UAAM,UAAU,oBAAI,IAAc;AAElC,gBAAY,WAAW,gBAAiB,KAAM,EAAE,QAAS,CAAE,WAAY;AAEtE,YAAM,YAAY;AAElB,OAAE,GAAK,UAAU,WAAW,CAAC,GAAK,SAAU,EAAE,QAAS,CAAE,cAAe;AACvE,cAAM,YAAY,yBAA0B,UAAU,aAAa,KAAK,QAAQ,GAAI;AAEpF,YAAK,WAAY;AAChB,kBAAQ,IAAK,SAAU;AAAA,QACxB;AAAA,MACD,CAAE;AAAA,IACH,CAAE;AAEF,WAAO,CAAE,GAAG,OAAQ;AAAA,EACrB;AAAA,EAEA,iBAAkB,OAAe;AAChC,WAAO,CAAE,GAAG,MAAM,KAAM,EAAE,KAAM,CAAE,MAAO,SAAS,KAAM,CAAE,CAAE;AAAA,EAC7D;AACD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
2
|
+
"name": "@elementor/generate-wordpress-asset-file-webpack-plugin",
|
|
3
|
+
"version": "0.3.2",
|
|
4
|
+
"private": false,
|
|
5
|
+
"author": "Elementor Team",
|
|
6
|
+
"homepage": "https://elementor.com/",
|
|
7
|
+
"license": "GPL-3.0-or-later",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"module": "dist/index.mjs",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.mjs",
|
|
14
|
+
"require": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./package.json": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/elementor/elementor-packages.git",
|
|
22
|
+
"directory": "packages/tools/generated-wordpress-asset-file-webpack-plugin"
|
|
23
|
+
},
|
|
24
|
+
"bugs": {
|
|
25
|
+
"url": "https://github.com/elementor/elementor-packages/issues"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsup --config=../../tsup.build.ts",
|
|
32
|
+
"dev": "tsup --config=../../tsup.dev.ts --format=esm,cjs"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"webpack": "5.x"
|
|
36
|
+
},
|
|
37
|
+
"gitHead": "10fd8663495a9ced2521f27a74879684ed0cf322"
|
|
38
38
|
}
|
|
@@ -9,9 +9,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
|
9
9
|
* This file is generated by Webpack, do not edit it directly.
|
|
10
10
|
*/
|
|
11
11
|
return [
|
|
12
|
-
'handle' => 'elementor-
|
|
12
|
+
'handle' => 'elementor-v2-app',
|
|
13
13
|
'deps' => [
|
|
14
|
-
'elementor-
|
|
14
|
+
'elementor-v2-editor',
|
|
15
15
|
'react',
|
|
16
16
|
'react-dom',
|
|
17
17
|
'wp-element',
|
|
@@ -29,9 +29,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
|
29
29
|
* This file is generated by Webpack, do not edit it directly.
|
|
30
30
|
*/
|
|
31
31
|
return [
|
|
32
|
-
'handle' => 'elementor-
|
|
32
|
+
'handle' => 'elementor-v2-extension',
|
|
33
33
|
'deps' => [
|
|
34
|
-
'elementor-
|
|
34
|
+
'elementor-v2-editor',
|
|
35
35
|
'react',
|
|
36
36
|
'react-dom',
|
|
37
37
|
'wp-element',
|
|
@@ -49,9 +49,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
|
49
49
|
* This file is generated by Webpack, do not edit it directly.
|
|
50
50
|
*/
|
|
51
51
|
return [
|
|
52
|
-
'handle' => 'elementor-
|
|
52
|
+
'handle' => 'elementor-v2-util',
|
|
53
53
|
'deps' => [
|
|
54
|
-
'elementor-
|
|
54
|
+
'elementor-v2-editor',
|
|
55
55
|
'react',
|
|
56
56
|
'react-dom',
|
|
57
57
|
'wp-element',
|
|
@@ -56,11 +56,11 @@ describe( '@elementor/generate-wordpress-asset-file-webpack-plugin', () => {
|
|
|
56
56
|
},
|
|
57
57
|
plugins: [
|
|
58
58
|
new GenerateWordPressAssetFileWebpackPlugin( {
|
|
59
|
-
handle: ( entryName ) => `elementor-
|
|
59
|
+
handle: ( entryName ) => `elementor-v2-${ entryName }`,
|
|
60
60
|
map: [
|
|
61
61
|
{ request: 'react', handle: 'react' },
|
|
62
62
|
{ request: 'react-dom', handle: 'react-dom' },
|
|
63
|
-
{ request: /^@elementor\/(.+)$/, handle: 'elementor-
|
|
63
|
+
{ request: /^@elementor\/(.+)$/, handle: 'elementor-v2-$1' },
|
|
64
64
|
{ request: /^@wordpress\/(.+)$/, handle: 'wp-$1' },
|
|
65
65
|
],
|
|
66
66
|
} ),
|
|
@@ -77,11 +77,7 @@ describe( '@elementor/generate-wordpress-asset-file-webpack-plugin', () => {
|
|
|
77
77
|
expect( stats?.hasErrors() ).toBe( false );
|
|
78
78
|
expect( stats?.hasWarnings() ).toBe( false );
|
|
79
79
|
|
|
80
|
-
const files = [
|
|
81
|
-
'app.asset.php',
|
|
82
|
-
'extension.asset.php',
|
|
83
|
-
'util.asset.php',
|
|
84
|
-
];
|
|
80
|
+
const files = [ 'app.asset.php', 'extension.asset.php', 'util.asset.php' ];
|
|
85
81
|
|
|
86
82
|
files.forEach( ( fileName ) => {
|
|
87
83
|
const fileContent = fs.readFileSync( path.resolve( `/dist/${ fileName }` ), { encoding: 'utf8' } );
|
package/src/plugin.ts
CHANGED
|
@@ -6,13 +6,13 @@ import { RequestToHandleMap } from './types';
|
|
|
6
6
|
|
|
7
7
|
type Options = {
|
|
8
8
|
handle: ( entryName: string ) => string;
|
|
9
|
-
map: RequestToHandleMap
|
|
10
|
-
}
|
|
9
|
+
map: RequestToHandleMap;
|
|
10
|
+
};
|
|
11
11
|
|
|
12
12
|
type Module = {
|
|
13
13
|
userRequest?: string;
|
|
14
14
|
modules?: Module[];
|
|
15
|
-
}
|
|
15
|
+
};
|
|
16
16
|
|
|
17
17
|
export default class GenerateWordPressAssetFileWebpackPlugin {
|
|
18
18
|
options: Options;
|
|
@@ -49,20 +49,16 @@ export default class GenerateWordPressAssetFileWebpackPlugin {
|
|
|
49
49
|
const entryHandle = transformEntryNameToHandle( entryName );
|
|
50
50
|
const depsHandles = this.getDepsHandlesFromChunk( compilation, chunk );
|
|
51
51
|
|
|
52
|
-
const assetFilePath = createAssetFilePath(
|
|
53
|
-
compilation.getPath( '[file]', { filename: chunkJSFile } )
|
|
54
|
-
);
|
|
52
|
+
const assetFilePath = createAssetFilePath( compilation.getPath( '[file]', { filename: chunkJSFile } ) );
|
|
55
53
|
|
|
56
54
|
// Add source and file into compilation for webpack to output.
|
|
57
|
-
compilation.assets[ assetFilePath ] = new sources.RawSource(
|
|
58
|
-
getAssetFileContent( entryHandle, depsHandles )
|
|
59
|
-
);
|
|
55
|
+
compilation.assets[ assetFilePath ] = new sources.RawSource( getAssetFileContent( entryHandle, depsHandles ) );
|
|
60
56
|
|
|
61
57
|
chunk.files.add( assetFilePath );
|
|
62
58
|
}
|
|
63
59
|
|
|
64
60
|
getDepsHandlesFromChunk( compilation: Compilation, chunk: Chunk ) {
|
|
65
|
-
const depsSet = new Set<string>();
|
|
61
|
+
const depsSet = new Set< string >();
|
|
66
62
|
|
|
67
63
|
compilation.chunkGraph.getChunkModules( chunk ).forEach( ( module ) => {
|
|
68
64
|
// There are some issues with types in webpack, so we need to cast it.
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type RequestToHandleMap = Array<{
|
|
2
|
-
request: string | RegExp
|
|
3
|
-
handle: string
|
|
4
|
-
}
|
|
1
|
+
export type RequestToHandleMap = Array< {
|
|
2
|
+
request: string | RegExp;
|
|
3
|
+
handle: string;
|
|
4
|
+
} >;
|