@elementor/generate-wordpress-asset-file-webpack-plugin 0.3.4 → 0.3.6
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 +12 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -3
- package/src/plugin.ts +3 -2
- package/src/utils.ts +1 -1
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -18,11 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
20
|
// src/index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
23
|
GenerateWordPressAssetFileWebpackPlugin: () => GenerateWordPressAssetFileWebpackPlugin
|
|
24
24
|
});
|
|
25
|
-
module.exports = __toCommonJS(
|
|
25
|
+
module.exports = __toCommonJS(index_exports);
|
|
26
26
|
|
|
27
27
|
// src/plugin.ts
|
|
28
28
|
var import_webpack = require("webpack");
|
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 {
|
|
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 { type Chunk, type Compilation, type Compiler, sources } from 'webpack';\n\nimport { type RequestToHandleMap } from './types';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\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 { type 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,qBAAqE;;;ACA9D,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;;;AD9BA,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.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 {
|
|
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 { type Chunk, type Compilation, type Compiler, sources } from 'webpack';\n\nimport { type RequestToHandleMap } from './types';\nimport { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';\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 { type 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,SAAsD,eAAe;;;ACA9D,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;;;AD9BA,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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elementor/generate-wordpress-asset-file-webpack-plugin",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
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": "git+https://github.com/elementor/elementor-packages.git",
|
|
22
|
-
"directory": "packages/tools/
|
|
22
|
+
"directory": "packages/tools/generate-wordpress-asset-file-webpack-plugin"
|
|
23
23
|
},
|
|
24
24
|
"bugs": {
|
|
25
25
|
"url": "https://github.com/elementor/elementor-packages/issues"
|
|
@@ -39,6 +39,10 @@
|
|
|
39
39
|
"dev": "tsup --config=../../tsup.dev.ts --format=esm,cjs"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"webpack": "5.
|
|
42
|
+
"webpack": "^5.0.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"memfs": "^4.17.0",
|
|
46
|
+
"tsup": "^8.3.5"
|
|
43
47
|
}
|
|
44
48
|
}
|
package/src/plugin.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Inspired by "Dependency Extraction Webpack Plugin" by @wordpress team.
|
|
2
2
|
// Link: https://github.com/WordPress/gutenberg/tree/trunk/packages/dependency-extraction-webpack-plugin
|
|
3
|
-
import {
|
|
3
|
+
import { type Chunk, type Compilation, type Compiler, sources } from 'webpack';
|
|
4
|
+
|
|
5
|
+
import { type RequestToHandleMap } from './types';
|
|
4
6
|
import { createAssetFilePath, getAssetFileContent, transformRequestToHandle } from './utils';
|
|
5
|
-
import { RequestToHandleMap } from './types';
|
|
6
7
|
|
|
7
8
|
type Options = {
|
|
8
9
|
handle: ( entryName: string ) => string;
|
package/src/utils.ts
CHANGED