Guerilla Coding
A Website build for my Projects.

Die Website soll als Portfolio für meine privaten Projekte dienen. Ich selbst bin kein großer Schreiber, deshalb wird sie automatisch aus meinem Gitlab aufgebaut. Sie selbst dient auch gleich als Projekt, um meine Kenntnis in Symfony zu erweitern und mehr Erfahrung mit c# zu bekommen.
Warum C# 😀 siehe.

Kontakt

Alexander Malk
E-Mail: alex@guerilla-coding.com

Details

Es gibt derzeit 11 Projekte in 3 Kategorien. Das zuletzt Aktualisierte Project ist TD Service Sitespeed in der Kategorie NPM und es wurde am 19.01.2024 aktualisiert.
Es warten z.Zt. noch ca. 2 Projekte eingefügt zu werden.

Outdated: Simple Annotation

Simple Annotation ist ein Modul für NodeJS. Mit diesem Modul können Sie einfach Annotationen zu NodeJS hinzufügen. Das Modul sucht nach Kommentaren mit Annotationen unter definierten Pfaden. Danach gibt das Plugin den Pfad zur Datei den ValueType und das Object (ReturnType) was sich unter der Annotationen befindet zurück.

Installation

npm i simple-annotation

Beispiel

Beispiel Annotation

/**
 * @AnnotationClassString AnnotationClassString
 * @AnnotationClassObject {"hello": 123}
 * @AnnotationClassArray [1234]
 * @AnnotationClassInt 12345
 */
class test{

    /**
     * @AnnotationES6Function AnnotationES6Function
     */
    myTestFunction1(str){
        return str;
    }
}
module.exports = test;

In dem Beispiel versuchen wir die Annotation "AnnotationES6Function" zu finden.


var Annotation = require('simple-annotation');

Annotation.registerAnnotation(
    'AnnotationES6Function', // Annotation Name
    'string', // Annotation Value Type   {string, int, array, object, empty}
    'ES6function' // Annotation Return Type   {ES6class, ES6function, var, function}
);

var obj = new Annotation();

// Important !! Add only absolute paths, relative paths will be ignored.
obj.setPaths([
    __dirname+'/*/es6TestClass.js',
    __dirname+'/*/test.js',
    __dirname+'/*/function*.js',
    __dirname+'/*/var.js'
]);

var all = obj.findAll();
var one = obj.find('AnnotationES6Function');

for(var i in all){
    console.log(all[i]);
}

Annotation Erstellen

Annotation.registerAnnotation(
    'AnnotationES6Function', // Annotation Name
    'string', // Annotation Value Type   {string, int, array, object, empty}
    'ES6function' // Annotation Return Type   {ES6class, ES6function, var, function}
);

Value/Return Types

Was sind Value/Return Types? Ein "Valuetype" ist die rechte Seite der Annotation. Er wird bei der Abfrage der Annotation mit zurück gegeben. Der "ReturnType" muss dem Object entsprechen über dem die Annotation sich befindet.

/**
* @AnnotationName ValueType
*/
module.exports = function ReturnType(str){
    return str;
};

Alle vorkonfigurierten Typen sind überschreibbar.

Annotation ReturnType

Name Typ
ES6class ECMA Script 6 Class
ES6function ECMA Script 6 Function
function <= ES5 Functions
var <= ES5 Functions Variable

Annotation ValueType

Name Typ
string string
array array
object object
int integer
empty empty string

Vorkonfigurirte Rückgabemuster

<= ES5 function


//Function 1
module.exports = function myTestFunction1(str){
    return str;
};

//Function 2
var myTestFunction2 = (str) => {
    return str;
};
exports.myTestFunction2 = myTestFunction2;

//Function 3
const myTestFunction3 = (str) => {
    return str;
};
exports.myTestFunction3 = myTestFunction3;

//Function 4
let myTestFunction5 = (str) => {
    return str;
};
exports.myTestFunction5 = myTestFunction5;

//Function 5
exports.myTestFunction7 = (str) => {
    return str;
};

<= ES5 variable

var testVar = "test123Variable";
exports.testVar = testVar;

Type erstellen

ValueType

var Annotation = require('simple-annotation');
Annotation.registerAnnotationValueType(
    'array',
    function(attr){
        return JSON.parse(attr);
    }
);

ReturnType

var Annotation = require('simple-annotation');
Annotation.registerAnnotationReturnType(
    'ES6class',
    function(attr){

        const regex = /^.*class (.*?)$/;
        let a = attr.str.match(regex);

        if(a !== null){
            var s = require(attr.file);
            return new s();
        }

        return null;
    }
);

ToDo

  • findBy() Funktion einfügen
  • Refactoring (DRY, KISS, more Comments)

Tags

©2024 Alexander Malk v0.0.13p