Reduce bundle size of parser-html.js (#12176)
This commit is contained in:
1 parent
2fd1406f5f
commit
ff78a94424
13 files changed
+64
-46
No files matched your search
@@ -28,7 +28,7 @@ const {
|
||||
isVueSlotAttribute,
|
||||
isVueSfcBindingsAttribute,
|
||||
getTextValueParts,
|
||||
} = require("./utils.js");
|
||||
} = require("./utils/index.js");
|
||||
const getNodeContent = require("./get-node-content.js");
|
||||
|
||||
function printEmbeddedAttributeValue(node, htmlTextToDoc, options) {
|
||||
|
||||
@@ -9,11 +9,9 @@ const parseFrontMatter = require("../utils/front-matter/parse.js");
|
||||
const getLast = require("../utils/get-last.js");
|
||||
const createError = require("../common/parser-create-error.js");
|
||||
const { inferParserByLanguage } = require("../common/util.js");
|
||||
const {
|
||||
HTML_ELEMENT_ATTRIBUTES,
|
||||
HTML_TAGS,
|
||||
isUnknownNamespace,
|
||||
} = require("./utils.js");
|
||||
const HTML_TAGS = require("./utils/html-tag-names.js");
|
||||
const HTML_ELEMENT_ATTRIBUTES = require("./utils/html-elements-attributes.js");
|
||||
const isUnknownNamespace = require("./utils/is-unknown-namespace.js");
|
||||
const { hasPragma } = require("./pragma.js");
|
||||
const { Node } = require("./ast.js");
|
||||
const { parseIeConditionalComment } = require("./conditional-comment.js");
|
||||
|
||||
@@ -14,7 +14,7 @@ const {
|
||||
isLeadingSpaceSensitiveNode,
|
||||
isTrailingSpaceSensitiveNode,
|
||||
isWhitespaceSensitiveNode,
|
||||
} = require("./utils.js");
|
||||
} = require("./utils/index.js");
|
||||
|
||||
const PREPROCESS_PIPELINE = [
|
||||
removeIgnorableFirstLf,
|
||||
|
||||
@@ -11,7 +11,7 @@ const {
|
||||
isTextLikeNode,
|
||||
hasPrettierIgnore,
|
||||
preferHardlineAsLeadingSpaces,
|
||||
} = require("../utils.js");
|
||||
} = require("../utils/index.js");
|
||||
const {
|
||||
printOpeningTagPrefix,
|
||||
needsToBorrowNextOpeningTagStartMarker,
|
||||
|
||||
@@ -20,7 +20,7 @@ const {
|
||||
isVueCustomBlock,
|
||||
countParents,
|
||||
forceBreakContent,
|
||||
} = require("../utils.js");
|
||||
} = require("../utils/index.js");
|
||||
const {
|
||||
printOpeningTagPrefix,
|
||||
printOpeningTag,
|
||||
|
||||
@@ -17,7 +17,7 @@ const {
|
||||
isPreLikeNode,
|
||||
hasPrettierIgnore,
|
||||
shouldPreserveContent,
|
||||
} = require("../utils.js");
|
||||
} = require("../utils/index.js");
|
||||
|
||||
function printClosingTag(node, options) {
|
||||
return [
|
||||
|
||||
@@ -13,7 +13,7 @@ const {
|
||||
countChars,
|
||||
unescapeQuoteEntities,
|
||||
getTextValueParts,
|
||||
} = require("./utils.js");
|
||||
} = require("./utils/index.js");
|
||||
const preprocess = require("./print-preprocess.js");
|
||||
const { insertPragma } = require("./pragma.js");
|
||||
const { locStart, locEnd } = require("./loc.js");
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
function arrayToMap(array) {
|
||||
const map = Object.create(null);
|
||||
for (const value of array) {
|
||||
map[value] = true;
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
module.exports = arrayToMap;
|
||||
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
const htmlElementAttributes = require("html-element-attributes");
|
||||
const mapObject = require("./map-object.js");
|
||||
const arrayToMap = require("./array-to-map.js");
|
||||
|
||||
const HTML_ELEMENT_ATTRIBUTES = mapObject(htmlElementAttributes, arrayToMap);
|
||||
|
||||
module.exports = HTML_ELEMENT_ATTRIBUTES;
|
||||
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
const htmlTagNames = require("html-tag-names");
|
||||
const arrayToMap = require("./array-to-map.js");
|
||||
|
||||
const HTML_TAGS = arrayToMap(htmlTagNames);
|
||||
|
||||
module.exports = HTML_TAGS;
|
||||
@@ -1,28 +1,24 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @typedef {import("../common/ast-path")} AstPath
|
||||
* @typedef {import("../../common/ast-path")} AstPath
|
||||
*/
|
||||
|
||||
const htmlTagNames = require("html-tag-names");
|
||||
const htmlElementAttributes = require("html-element-attributes");
|
||||
const {
|
||||
inferParserByLanguage,
|
||||
isFrontMatterNode,
|
||||
} = require("../common/util.js");
|
||||
} = require("../../common/util.js");
|
||||
const {
|
||||
builders: { line, hardline, join },
|
||||
utils: { getDocParts, replaceTextEndOfLine },
|
||||
} = require("../document/index.js");
|
||||
} = require("../../document/index.js");
|
||||
const {
|
||||
CSS_DISPLAY_TAGS,
|
||||
CSS_DISPLAY_DEFAULT,
|
||||
CSS_WHITE_SPACE_TAGS,
|
||||
CSS_WHITE_SPACE_DEFAULT,
|
||||
} = require("./constants.evaluate.js");
|
||||
|
||||
const HTML_TAGS = arrayToMap(htmlTagNames);
|
||||
const HTML_ELEMENT_ATTRIBUTES = mapObject(htmlElementAttributes, arrayToMap);
|
||||
} = require("../constants.evaluate.js");
|
||||
const isUnknownNamespace = require("./is-unknown-namespace.js");
|
||||
|
||||
// https://infra.spec.whatwg.org/#ascii-whitespace
|
||||
const HTML_WHITESPACE = new Set(["\t", "\n", "\f", "\r", " "]);
|
||||
@@ -47,22 +43,6 @@ const getLeadingAndTrailingHtmlWhitespace = (string) => {
|
||||
};
|
||||
const hasHtmlWhitespace = (string) => /[\t\n\f\r ]/.test(string);
|
||||
|
||||
function arrayToMap(array) {
|
||||
const map = Object.create(null);
|
||||
for (const value of array) {
|
||||
map[value] = true;
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
function mapObject(object, fn) {
|
||||
const newObject = Object.create(null);
|
||||
for (const [key, value] of Object.entries(object)) {
|
||||
newObject[key] = fn(value, key);
|
||||
}
|
||||
return newObject;
|
||||
}
|
||||
|
||||
function shouldPreserveContent(node, options) {
|
||||
// unterminated node in ie conditional comment
|
||||
// e.g. <!--[if lt IE 9]><html><![endif]-->
|
||||
@@ -539,14 +519,6 @@ function getNodeCssStyleDisplay(node, options) {
|
||||
}
|
||||
}
|
||||
|
||||
function isUnknownNamespace(node) {
|
||||
return (
|
||||
node.type === "element" &&
|
||||
!node.hasExplicitNamespace &&
|
||||
!["html", "svg"].includes(node.namespace)
|
||||
);
|
||||
}
|
||||
|
||||
function getNodeCssStyleWhiteSpace(node) {
|
||||
return (
|
||||
(node.type === "element" &&
|
||||
@@ -667,8 +639,6 @@ function getTextValueParts(node, value = node.value) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
HTML_ELEMENT_ATTRIBUTES,
|
||||
HTML_TAGS,
|
||||
htmlTrim,
|
||||
htmlTrimPreserveIndentation,
|
||||
hasHtmlWhitespace,
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
function isUnknownNamespace(node) {
|
||||
return (
|
||||
node.type === "element" &&
|
||||
!node.hasExplicitNamespace &&
|
||||
!["html", "svg"].includes(node.namespace)
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = isUnknownNamespace;
|
||||
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
function mapObject(object, fn) {
|
||||
const newObject = Object.create(null);
|
||||
for (const [key, value] of Object.entries(object)) {
|
||||
newObject[key] = fn(value, key);
|
||||
}
|
||||
return newObject;
|
||||
}
|
||||
|
||||
module.exports = mapObject;
|
||||
Reference in new issue
Block a user