JSFiddle - React, Tailwind, and code Playground

by jeffersonswartz

JavaScript

var fs = require('fs'),
    path = require('path'),
    filePath = path.join(__dirname, 'test.txt'),
    builder = require('xmlbuilder'),
    fileContent;

String.prototype.extract = function (prefix, suffix) {
    s = this;
    var i = s.indexOf(prefix);
    if (i >= 0) {
        s = s.substring(i + prefix.length);
    } else {
        return '';
    }
    if (suffix) {
        i = s.indexOf(suffix);
        if (i >= 0) {
            s = s.substring(0, i);
        } else {
            return '';
        }
    }
    return s;
};

fs.readFile(filePath, {
    encoding: 'utf-8'
}, function (err, data) {
    if (!err) {
        fileContent = data;
        //console.log('received data: ' + fileContent);
        getData(fileContent);
    } else {
        console.log(err);
    }
});

var getData = function (data) {
    var dataArray = data.replace(/\s+$/gm, "").split('*}');
    var setterArray = {},
        getterArray = {};
    dataArray.forEach((text, index) => {
        var str = text.extract('/* ');
        if (index < 30) console.log(str + '\n\n\n\n');
        var preCode = str.extract('<code>', '</code>').trim(),code = preCode.split('; ')[1] ? preCode.split('; ')[1] : preCode.split('; ')[0]
            componentName = code.indexOf('_1') > -1 ? code.split('_')[0] : null,
            methodName = str.extract('*/', '(').trim().split(' ')[1],
            internalParams = str.split('>*/')[1] ? str.split('>*/')[1].extract(" " + methodName + '(', '){*').trim() : str.split('>*/')[0].extract(" " + methodName + '(', '){*').trim(),
            returnType = str.extract('*/', methodName).trim(),
            paramList = internalParams.split(','),
            paramArray = [];
            paramList.forEach(param => {
                var tempParam = param.split('*/')[1] ? param.split('*/')[1] : param.split('*/')[0];
                var tempPairs = tempParam.trim() ? tempParam.trim().split(' ') : null;
                if (tempPairs) {
                    paramArray.push({
         ...