MCPcopy
hub / github.com/webpack/webpack / getOrderedChunkCssModules

Method getOrderedChunkCssModules

lib/css/CssModulesPlugin.js:843–909  ·  view source on GitHub ↗

* Gets ordered chunk css modules. * @param {Chunk} chunk chunk * @param {ChunkGraph} chunkGraph chunk graph * @param {Compilation} compilation compilation * @returns {CssModule[]} ordered css modules

(chunk, chunkGraph, compilation)

Source from the content-addressed store, hash-verified

841 * @returns {CssModule[]} ordered css modules
842 */
843 getOrderedChunkCssModules(chunk, chunkGraph, compilation) {
844 /** @type {string | undefined} */
845 let charset;
846
847 const hooks = CssModulesPlugin.getCompilationHooks(compilation);
848
849 /**
850 * @param {Iterable<Module> | undefined} iter modules pre-sorted by full module name
851 * @returns {Module[]} ordered modules
852 */
853 const orderModules = (iter) => {
854 const modules = iter ? [...iter] : [];
855 const result = hooks.orderModules.call(chunk, modules, compilation);
856 if (result !== undefined) return result;
857 return this.getModulesInOrder(chunk, modules, compilation);
858 };
859
860 return /** @type {CssModule[]} */ ([
861 ...orderModules(
862 chunkGraph.getOrderedChunkModulesIterableBySourceType(
863 chunk,
864 CSS_IMPORT_TYPE,
865 compareModulesByFullName(compilation.compiler)
866 )
867 ),
868 ...orderModules(
869 chunkGraph.getOrderedChunkModulesIterableBySourceType(
870 chunk,
871 CSS_TYPE,
872 compareModulesByFullName(compilation.compiler)
873 )
874 ).map((module) => {
875 if (
876 typeof (
877 /** @type {CssModuleBuildInfo} */ (module.buildInfo).charset
878 ) !== "undefined"
879 ) {
880 if (
881 typeof charset !== "undefined" &&
882 charset !==
883 /** @type {CssModuleBuildInfo} */ (module.buildInfo).charset
884 ) {
885 const err = new WebpackError(
886 `Conflicting @charset at-rules detected: the module ${module.readableIdentifier(
887 compilation.requestShortener
888 )} (in chunk ${chunk.name || chunk.id}) specifies "${
889 /** @type {CssModuleBuildInfo} */ (module.buildInfo).charset
890 }", but "${charset}" was expected, all modules must use the same character set`
891 );
892
893 err.chunk = chunk;
894 err.module = module;
895 err.hideStack = true;
896
897 compilation.warnings.push(err);
898 }
899
900 if (typeof charset === "undefined") {

Callers 1

applyMethod · 0.95

Calls 5

compareModulesByFullNameFunction · 0.85
getCompilationHooksMethod · 0.45
readableIdentifierMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected