Use symlink to common submodule as using a filesystem dep prevents publishing

This commit is contained in:
Wilson Lin 2021-08-09 17:45:42 +10:00
parent fbe4cfc21b
commit 91bdcc3e44
38 changed files with 62 additions and 76 deletions

View File

@ -1,7 +1,7 @@
import { mkdirSync, writeFileSync } from "fs";
import { join } from "path";
export const RUST_OUT_DIR = join(__dirname, "..", "rust", "common", "src", "gen");
export const RUST_OUT_DIR = join(__dirname, "..", "rust", "common", "gen");
try {
mkdirSync(RUST_OUT_DIR);

View File

@ -21,7 +21,7 @@ const rsTagAttr = ({
let code = `
use lazy_static::lazy_static;
use std::collections::HashMap;
use crate::spec::tag::ns::Namespace;
use crate::common::spec::tag::ns::Namespace;
pub struct AttributeMinification {
pub boolean: bool,

View File

@ -159,7 +159,7 @@ export class TrieBuilder {
).join(", ");
const value = node.value === undefined ? "None" : `Some(${node.value})`;
const varValue = `&crate::pattern::TrieNode {
const varValue = `&crate::common::pattern::TrieNode {
offset: ${firstIdx},
value: ${value},
children: &[${children}],
@ -171,7 +171,7 @@ export class TrieBuilder {
const name = `${this.name}_NODE_${this.nextId++}`;
this.variables.push(
`static ${name}: &crate::pattern::TrieNode<${this.valueType}> = ${varValue};`
`static ${name}: &crate::common::pattern::TrieNode<${this.valueType}> = ${varValue};`
);
this.codeCache.set(varValue, name);
return name;

View File

@ -1,3 +1 @@
/Cargo.lock
/src/gen/
/target
/gen/

View File

@ -1,14 +0,0 @@
[package]
name = "minify-html-common"
publish = false
version = "0.0.1"
authors = ["Wilson Lin <code@wilsonl.in>"]
homepage = "https://github.com/wilsonzlin/minify-html"
repository = "https://github.com/wilsonzlin/minify-html.git"
edition = "2018"
include = ["/src/**/*", "/Cargo.toml"]
[dependencies]
aho-corasick = "0.7"
lazy_static = "1.4"
memchr = "2"

View File

@ -1,4 +1,4 @@
use crate::gen::codepoints::WHITESPACE;
use crate::common::gen::codepoints::WHITESPACE;
pub fn left_trim(val: &mut Vec<u8>) {
let mut len = 0;

View File

@ -25,4 +25,3 @@ crossbeam = { version = "0.7", optional = true }
esbuild-rs = { version = "0.12.18", optional = true }
lazy_static = "1.4"
memchr = "2"
minify-html-common = { path = "../common" }

View File

@ -2,7 +2,7 @@ use std::collections::HashMap;
use std::fmt::{Debug, Formatter};
use std::str::from_utf8;
use minify_html_common::spec::tag::ns::Namespace;
use crate::common::spec::tag::ns::Namespace;
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
pub enum ElementClosingTag {

1
rust/main/src/common Symbolic link
View File

@ -0,0 +1 @@
../../common

View File

@ -17,11 +17,11 @@ use std::char::from_u32;
use memchr::memchr;
use minify_html_common::gen::codepoints::{
use crate::common::gen::codepoints::{
Lookup, ALPHANUMERIC_OR_EQUALS, DIGIT, HEX_DIGIT, LOWER_HEX_ALPHA, UPPER_HEX_ALPHA,
};
use minify_html_common::gen::entities::{EntityType, ENTITY};
use minify_html_common::pattern::TrieNodeMatch;
use crate::common::gen::entities::{EntityType, ENTITY};
use crate::common::pattern::TrieNodeMatch;
enum Decoded {
Ignored,

View File

@ -2,11 +2,11 @@ use aho_corasick::{AhoCorasick, AhoCorasickBuilder, MatchKind};
use lazy_static::lazy_static;
use memchr::memchr;
use minify_html_common::gen::codepoints::ALPHANUMERIC_OR_EQUALS;
use minify_html_common::gen::entities::{
use crate::common::gen::codepoints::ALPHANUMERIC_OR_EQUALS;
use crate::common::gen::entities::{
EntityType, ENTITY, SHORTER_ENCODED_ENTITIES_DECODED, SHORTER_ENCODED_ENTITIES_ENCODED,
};
use minify_html_common::pattern::TrieNodeMatch;
use crate::common::pattern::TrieNodeMatch;
lazy_static! {
static ref SHORTER_ENCODED_ENTITIES_ENCODED_SEARCHER: AhoCorasick = AhoCorasickBuilder::new()

View File

@ -2,11 +2,12 @@ pub use crate::cfg::Cfg;
use crate::minify::content::minify_content;
use crate::parse::content::parse_content;
use crate::parse::Code;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::EMPTY_SLICE;
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::EMPTY_SLICE;
mod ast;
mod cfg;
mod common;
mod entity;
mod minify;
mod parse;

View File

@ -8,12 +8,12 @@ use {
use crate::entity::encode::encode_entities;
use crate::Cfg;
use minify_html_common::gen::attrs::ATTRS;
use minify_html_common::gen::codepoints::DIGIT;
use minify_html_common::pattern::Replacer;
use minify_html_common::spec::script::JAVASCRIPT_MIME_TYPES;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::whitespace::{collapse_whitespace, left_trim, right_trim};
use crate::common::gen::attrs::ATTRS;
use crate::common::gen::codepoints::DIGIT;
use crate::common::pattern::Replacer;
use crate::common::spec::script::JAVASCRIPT_MIME_TYPES;
use crate::common::spec::tag::ns::Namespace;
use crate::common::whitespace::{collapse_whitespace, left_trim, right_trim};
fn build_double_quoted_replacer() -> Replacer {
let mut patterns = Vec::<Vec<u8>>::new();

View File

@ -10,12 +10,12 @@ use crate::minify::css::minify_css;
use crate::minify::element::minify_element;
use crate::minify::instruction::minify_instruction;
use crate::minify::js::minify_js;
use minify_html_common::gen::codepoints::TAG_NAME_CHAR;
use minify_html_common::pattern::Replacer;
use minify_html_common::spec::tag::whitespace::{
use crate::common::gen::codepoints::TAG_NAME_CHAR;
use crate::common::pattern::Replacer;
use crate::common::spec::tag::whitespace::{
get_whitespace_minification_for_tag, WhitespaceMinification,
};
use minify_html_common::whitespace::{
use crate::common::whitespace::{
collapse_whitespace, is_all_whitespace, left_trim, right_trim,
};

View File

@ -4,8 +4,8 @@ use crate::ast::{ElementClosingTag, NodeData};
use crate::cfg::Cfg;
use crate::minify::attr::{minify_attr, AttrMinified};
use crate::minify::content::minify_content;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
#[derive(Copy, Clone, Eq, PartialEq)]
enum LastAttr {

View File

@ -10,10 +10,10 @@ use crate::parse::content::ContentType::*;
use crate::parse::element::{parse_element, parse_tag, peek_tag_name};
use crate::parse::instruction::parse_instruction;
use crate::parse::Code;
use minify_html_common::gen::codepoints::TAG_NAME_CHAR;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use minify_html_common::spec::tag::void::VOID_TAGS;
use crate::common::gen::codepoints::TAG_NAME_CHAR;
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use crate::common::spec::tag::void::VOID_TAGS;
#[derive(Copy, Clone, Eq, PartialEq)]
enum ContentType {

View File

@ -8,13 +8,13 @@ use crate::parse::style::parse_style_content;
use crate::parse::textarea::parse_textarea_content;
use crate::parse::title::parse_title_content;
use crate::parse::Code;
use minify_html_common::gen::codepoints::{
use crate::common::gen::codepoints::{
ATTR_QUOTE, DOUBLE_QUOTE, NOT_UNQUOTED_ATTR_VAL_CHAR, SINGLE_QUOTE, TAG_NAME_CHAR, WHITESPACE,
WHITESPACE_OR_SLASH, WHITESPACE_OR_SLASH_OR_EQUALS_OR_RIGHT_CHEVRON,
};
use minify_html_common::spec::script::JAVASCRIPT_MIME_TYPES;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::void::VOID_TAGS;
use crate::common::spec::script::JAVASCRIPT_MIME_TYPES;
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::void::VOID_TAGS;
use std::fmt::{Debug, Formatter};
use std::str::from_utf8;

View File

@ -1,4 +1,4 @@
use minify_html_common::gen::codepoints::Lookup;
use crate::common::gen::codepoints::Lookup;
pub mod bang;
pub mod comment;

View File

@ -3,8 +3,8 @@ use std::collections::HashMap;
use crate::ast::{ElementClosingTag, NodeData};
use crate::parse::element::{parse_element, parse_tag, ParsedTag};
use crate::parse::Code;
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::EMPTY_SLICE;
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::EMPTY_SLICE;
#[test]
fn test_parse_tag() {

View File

@ -25,4 +25,3 @@ crossbeam = { version = "0.7", optional = true }
esbuild-rs = { version = "0.12.18", optional = true }
lazy_static = "1.4"
memchr = "2"
minify-html-common = { path = "../common" }

1
rust/onepass/src/common Symbolic link
View File

@ -0,0 +1 @@
../../common

View File

@ -3,9 +3,10 @@ use crate::err::debug_repr;
pub use crate::err::{Error, ErrorType, FriendlyError};
use crate::proc::Processor;
use crate::unit::content::process_content;
use minify_html_common::spec::tag::ns::Namespace;
use crate::common::spec::tag::ns::Namespace;
mod cfg;
mod common;
mod err;
#[macro_use]
mod proc;

View File

@ -16,11 +16,11 @@
use std::char::from_u32;
use crate::proc::Processor;
use minify_html_common::gen::codepoints::{
use crate::common::gen::codepoints::{
Lookup, ALPHANUMERIC_OR_EQUALS, DIGIT, HEX_DIGIT, LOWER_HEX_ALPHA, UPPER_HEX_ALPHA,
};
use minify_html_common::gen::entities::{EntityType, ENTITY};
use minify_html_common::pattern::TrieNodeMatch;
use crate::common::gen::entities::{EntityType, ENTITY};
use crate::common::pattern::TrieNodeMatch;
enum Parsed {
// This includes numeric entities that were invalid and decoded to 0xFFFD.

View File

@ -15,8 +15,8 @@ use crate::err::{debug_repr, Error, ErrorType, ProcessingResult};
use crate::proc::range::ProcessorRange;
use crate::proc::MatchAction::*;
use crate::proc::MatchMode::*;
use minify_html_common::gen::codepoints::Lookup;
use minify_html_common::spec::tag::EMPTY_SLICE;
use crate::common::gen::codepoints::Lookup;
use crate::common::spec::tag::EMPTY_SLICE;
pub mod checkpoint;
pub mod entity;

View File

@ -7,9 +7,9 @@ use crate::proc::Processor;
use crate::unit::attr::value::{
process_attr_value, skip_attr_value, DelimiterType, ProcessedAttrValue,
};
use minify_html_common::gen::attrs::ATTRS;
use minify_html_common::gen::codepoints::{WHATWG_ATTR_NAME_CHAR, WHITESPACE};
use minify_html_common::spec::tag::ns::Namespace;
use crate::common::gen::attrs::ATTRS;
use crate::common::gen::codepoints::{WHATWG_ATTR_NAME_CHAR, WHITESPACE};
use crate::common::spec::tag::ns::Namespace;
mod value;

View File

@ -9,7 +9,7 @@ use crate::proc::range::ProcessorRange;
use crate::proc::MatchAction::*;
use crate::proc::MatchMode::*;
use crate::proc::Processor;
use minify_html_common::gen::codepoints::{
use crate::common::gen::codepoints::{
ATTR_QUOTE, DIGIT, DOUBLE_QUOTE, NOT_UNQUOTED_ATTR_VAL_CHAR, SINGLE_QUOTE, WHITESPACE,
};
@ -20,7 +20,7 @@ lazy_static! {
m.insert(b'\'', b"&#39");
m.insert(b'"', b"&#34");
m.insert(b'>', b"&gt");
// Whitespace characters as defined by spec in minify_html_common::spec::codepoint::is_whitespace.
// Whitespace characters as defined by spec in crate::common::spec::codepoint::is_whitespace.
m.insert(b'\x09', b"&#9");
m.insert(b'\x0a', b"&#10");
m.insert(b'\x0c', b"&#12");

View File

@ -10,10 +10,10 @@ use crate::unit::bang::process_bang;
use crate::unit::comment::process_comment;
use crate::unit::instruction::process_instruction;
use crate::unit::tag::{process_tag, MaybeClosingTag};
use minify_html_common::gen::codepoints::{TAG_NAME_CHAR, WHITESPACE};
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use minify_html_common::spec::tag::whitespace::{
use crate::common::gen::codepoints::{TAG_NAME_CHAR, WHITESPACE};
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use crate::common::spec::tag::whitespace::{
get_whitespace_minification_for_tag, WhitespaceMinification,
};

View File

@ -10,11 +10,11 @@ use crate::unit::content::process_content;
use crate::unit::script::process_script;
use crate::unit::style::process_style;
use lazy_static::lazy_static;
use minify_html_common::gen::attrs::{AttributeMinification, ATTRS};
use minify_html_common::gen::codepoints::{TAG_NAME_CHAR, WHITESPACE};
use minify_html_common::spec::tag::ns::Namespace;
use minify_html_common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use minify_html_common::spec::tag::void::VOID_TAGS;
use crate::common::gen::attrs::{AttributeMinification, ATTRS};
use crate::common::gen::codepoints::{TAG_NAME_CHAR, WHITESPACE};
use crate::common::spec::tag::ns::Namespace;
use crate::common::spec::tag::omission::{can_omit_as_before, can_omit_as_last_node};
use crate::common::spec::tag::void::VOID_TAGS;
use std::collections::HashSet;
lazy_static! {