mirror of
https://github.com/miniflux/v2.git
synced 2025-08-16 18:01:37 +00:00
Refactor assets bundler and split Javascript files
This commit is contained in:
parent
e1c56b2e53
commit
53deb0b8cd
49 changed files with 2837 additions and 2000 deletions
19
vendor/github.com/tdewolff/minify/js/js.go
generated
vendored
19
vendor/github.com/tdewolff/minify/js/js.go
generated
vendored
|
@ -48,29 +48,38 @@ func (o *Minifier) Minify(_ *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
lineTerminatorQueued = true
|
||||
} else if tt == js.WhitespaceToken {
|
||||
whitespaceQueued = true
|
||||
} else if tt == js.CommentToken {
|
||||
} else if tt == js.SingleLineCommentToken || tt == js.MultiLineCommentToken {
|
||||
if len(data) > 5 && data[1] == '*' && data[2] == '!' {
|
||||
if _, err := w.Write(data[:3]); err != nil {
|
||||
return err
|
||||
}
|
||||
comment := parse.TrimWhitespace(parse.ReplaceMultipleWhitespace(data[3 : len(data)-2]))
|
||||
comment := parse.ReplaceMultipleWhitespace(data[3 : len(data)-2])
|
||||
if tt != js.MultiLineCommentToken {
|
||||
// don't trim newlines in multiline comments as that might change ASI
|
||||
// (we could do a more expensive check post-factum but it's not worth it)
|
||||
comment = parse.TrimWhitespace(comment)
|
||||
}
|
||||
if _, err := w.Write(comment); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := w.Write(data[len(data)-2:]); err != nil {
|
||||
return err
|
||||
}
|
||||
} else if tt == js.MultiLineCommentToken {
|
||||
lineTerminatorQueued = true
|
||||
} else {
|
||||
whitespaceQueued = true
|
||||
}
|
||||
} else {
|
||||
first := data[0]
|
||||
if (prev == js.IdentifierToken || prev == js.NumericToken || prev == js.PunctuatorToken || prev == js.StringToken || prev == js.RegexpToken) &&
|
||||
(tt == js.IdentifierToken || tt == js.NumericToken || tt == js.StringToken || tt == js.PunctuatorToken || tt == js.RegexpToken) {
|
||||
if (prev == js.IdentifierToken || prev == js.NumericToken || prev == js.PunctuatorToken || prev == js.StringToken || prev == js.TemplateToken || prev == js.RegexpToken) &&
|
||||
(tt == js.IdentifierToken || tt == js.NumericToken || tt == js.StringToken || tt == js.TemplateToken || tt == js.PunctuatorToken || tt == js.RegexpToken) {
|
||||
if lineTerminatorQueued && (prev != js.PunctuatorToken || prevLast == '}' || prevLast == ']' || prevLast == ')' || prevLast == '+' || prevLast == '-' || prevLast == '"' || prevLast == '\'') &&
|
||||
(tt != js.PunctuatorToken || first == '{' || first == '[' || first == '(' || first == '+' || first == '-' || first == '!' || first == '~') {
|
||||
if _, err := w.Write(newlineBytes); err != nil {
|
||||
return err
|
||||
}
|
||||
} else if whitespaceQueued && (prev != js.StringToken && prev != js.PunctuatorToken && tt != js.PunctuatorToken || (prevLast == '+' || prevLast == '-') && first == prevLast) {
|
||||
} else if whitespaceQueued && (prev != js.StringToken && prev != js.PunctuatorToken && tt != js.PunctuatorToken || (prevLast == '+' || prevLast == '-' || prevLast == '/') && first == prevLast) {
|
||||
if _, err := w.Write(spaceBytes); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
11
vendor/github.com/tdewolff/minify/js/js_test.go
generated
vendored
11
vendor/github.com/tdewolff/minify/js/js_test.go
generated
vendored
|
@ -40,6 +40,17 @@ func TestJS(t *testing.T) {
|
|||
{"false\n\"string\"", "false\n\"string\""}, // #109
|
||||
{"`\n", "`"}, // go fuzz
|
||||
{"a\n~b", "a\n~b"}, // #132
|
||||
{"x / /\\d+/.exec(s)[0]", "x/ /\\d+/.exec(s)[0]"}, // #183
|
||||
|
||||
{"function(){}\n`string`", "function(){}\n`string`"}, // #181
|
||||
{"false\n`string`", "false\n`string`"}, // #181
|
||||
{"`string`\nwhatever()", "`string`\nwhatever()"}, // #181
|
||||
|
||||
{"x+/**/++y", "x+ ++y"}, // #185
|
||||
{"x+\n++y", "x+\n++y"}, // #185
|
||||
{"f()/*!com\nment*/g()", "f()/*!com\nment*/g()"}, // #185
|
||||
{"f()/*com\nment*/g()", "f()\ng()"}, // #185
|
||||
{"f()/*!\n*/g()", "f()/*!\n*/g()"}, // #185
|
||||
|
||||
// go-fuzz
|
||||
{`/\`, `/\`},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue