public void WriterTo(JavascriptTextWriter writer) { // Opening an async closure to run script writer.WriteStartJsFunctionSignature(string.Empty); writer.WriteStartJsFunctionDefinition(); writer.WriteStartJsFunctionSignature("function", "async"); writer.WriteEndJsFunctionSignature(); writer.WriteStartJsFunctionBlock(); // Statements to register Vue Components foreach (var component in _components) { writer.WriteStartJsStatement(); _serializer.Serialize(writer, component); writer.WriteEndJsStatement(); } // Statement to create Vue Application writer.WriteStartJsVariableStatement(_name); writer.WriteStartJsFunctionDefinition(); writer.WriteStartJsFunctionSignature("Vue", "new"); _serializer.Serialize(writer, _options); writer.WriteEndJsFunctionSignature(); writer.WriteEndJsFunctionDefinition(); writer.WriteEndJsStatement(); // Closing Async Closure and invoking writer.WriteEndJsFunctionBlock(); writer.WriteEndJsFunctionDefinition(); writer.WriteEndJsFunctionSignature(); writer.WriteStartJsFunctionSignature(string.Empty); writer.WriteEndJsFunctionSignature(); }