diff --git a/src/html-minifier.cr b/src/html-minifier.cr
index 2f19671..7474654 100644
--- a/src/html-minifier.cr
+++ b/src/html-minifier.cr
@@ -32,14 +32,16 @@ module HtmlMinifier
ctx.eval!("var minify = require('html-minifier').minify;")
ctx
end
- @@ctx : Duktape::Sandbox = initialize_context
+ @@ctx : Duktape::Sandbox? = nil
def self.minify!(source : String)
+ @@ctx ||= initialize_context
+ ctx = @@ctx.not_nil!
source = source.gsub("\"", "\\\"")
source = source.gsub("\n", "\\n")
source = source.gsub("'", "\\'")
- @@ctx.eval!("var output = minify(\'#{source}\', options);")
- @@ctx.eval!("output")
- @@ctx.get_string(-1).not_nil!
+ ctx.eval!("var output = minify(\'#{source}\', options);")
+ ctx.eval!("output")
+ ctx.get_string(-1).not_nil!
end
end