Exemple #1
0
        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();
        }
Exemple #2
0
 public override void WriteJavascript(JavascriptTextWriter writer, VueData value, JsonSerializer serializer)
 {
     writer.WriteStartJsMember(value.Name);
     writer.WriteStartJsValue();
     serializer.Serialize(writer, value.Value);
     writer.WriteEndJsMember();
 }
Exemple #3
0
        public override void WriteJavascript(JavascriptTextWriter writer, VueModel value, JsonSerializer serializer)
        {
            var modelType = value.GetType();
            var modelName = modelType.Name;
            var options   = new VueOptions();

            var component = new VueComponent(modelType.Name, options);

            serializer.Serialize(writer, component);
        }
 public override void WriteJavascript(
     JavascriptTextWriter writer,
     IVueComponent value,
     JsonSerializer serializer)
 {
     writer.WriteStartJsFunctionDefinition();
     writer.WriteStartJsFunctionSignature("Vue.component");
     writer.WriteJsValue(value.Name);
     serializer.Serialize(writer, value.Options);
     writer.WriteEndJsFunctionSignature();
     writer.WriteEndJsFunctionDefinition();
 }
        public override void WriteJavascript(JavascriptTextWriter writer, VueComputed value, JsonSerializer serializer)
        {
            writer.WriteStartJsMember(value.Name);
            writer.WriteStartJsObject();

            var declaration  = value.Body.Members.First() as PropertyDeclarationSyntax;
            var syntaxWriter = new JavascriptSyntaxWriter(writer);

            foreach (var accessor in declaration.AccessorList.Accessors)
            {
                syntaxWriter.Visit(accessor);
            }
            writer.WriteEndJsObject();
            writer.WriteEndJsMember();
        }
Exemple #6
0
        public override void WriteJavascript(JavascriptTextWriter writer, VueMethod value, JsonSerializer serializer)
        {
            var syntaxWalker = new JavascriptSyntaxWriter(writer);

            syntaxWalker.Visit(value.Declaration);
        }
        public override void WriteJavascript(
            JavascriptTextWriter writer,
            IVueOptions value,
            JsonSerializer serializer)
        {
            writer.WriteStartJsObject();

            if (null != value.El)
            {
                writer.WriteStartJsMember("el");
                writer.WriteJsValue(value.El);
                writer.WriteEndJsMember();
            }

            if (null != value.Template)
            {
                writer.WriteStartJsMember("template");
                writer.WriteJsValue(value.Template);
                writer.WriteEndJsMember();
            }

            if (value.Data?.Count > 0)
            {
                writer.WriteStartJsMember("data");

                writer.WriteStartJsFunctionDefinition();
                writer.WriteStartJsFunctionSignature("function");

                writer.WriteEndJsFunctionSignature();
                writer.WriteStartJsFunctionBlock();

                writer.WriteStartJsReturnStatement();
                writer.WriteStartJsObject();

                foreach (var data in value.Data)
                {
                    serializer.Serialize(writer, data);
                }

                writer.WriteEndJsObject();
                writer.WriteEndJsStatement();

                writer.WriteEndJsFunctionBlock();
                writer.WriteEndJsFunctionDefinition();

                writer.WriteEndJsMember();
            }

            if (value.Props?.Count > 0)
            {
                writer.WriteStartJsMember("props");

                writer.WriteStartJsObject();
                foreach (var prop in value.Props)
                {
                    serializer.Serialize(writer, prop);
                }
                writer.WriteEndJsObject();
                writer.WriteEndJsMember();
            }

            if (value.Methods?.Count > 0)
            {
                writer.WriteStartJsMember("methods");
                writer.WriteStartJsObject();
                foreach (var method in value.Methods)
                {
                    serializer.Serialize(writer, method);
                }
                writer.WriteEndJsObject();
                writer.WriteEndJsMember();
            }

            if (value.Computed?.Count > 0)
            {
                writer.WriteStartJsMember("computed");
                writer.WriteStartJsObject();
                foreach (var property in value.Computed)
                {
                    serializer.Serialize(writer, property);
                }
                writer.WriteEndJsObject();
                writer.WriteEndJsMember();
            }


            if (value.LifecycleHooks?.Count > 0)
            {
                foreach (var method in value.LifecycleHooks)
                {
                    serializer.Serialize(writer, method);
                }
            }

            writer.WriteEndJsObject();
        }