commit 8fa615212c0570cb0d4d9efbf0b9ca8d9df7d3eb Author: FullGreaM Date: Mon Sep 26 15:16:13 2022 +0300 upload files into repos diff --git a/codeExample.js b/codeExample.js new file mode 100644 index 0000000..3704c77 --- /dev/null +++ b/codeExample.js @@ -0,0 +1,79 @@ +const backend = require('index'); + +// Создаём экземпляр класса backend.Main +var server = new backend.Main( + false // Отобразить в заголовках информацию о текущем фреймворке +); +// Настраиваем сессию (опционально) +server.session = (params, sessionData) => { + sessionData._setValue('example', 1); // Задать значение + console.log(sessionData.example); // Получить значение из сессии + sessionData._remove('example'); // Убрать значение + return 1; // Успешно + return 'Example error'; // Пример ошибки +}; +// Настраиваем вывод +server.error = (error) => ({ + mainbody : { error }, + headers : { + errored : 1 + }, + cookies : { + avava : 1 + }, + // redirect_uri: ''; // if want redirect to another url + code: 400 +}); +server.resposne = (response) => ({ + mainbody : { response }, + headers : { + errored: 0 + }, + cookies : {}, + // redirect_uri: ''; // if want redirect to another url + code: 200 +}); +server.paramsError = (required, additional) => ({ required, additional }); + +// Создаём класс группы методов +class ExampleMethodGroup extends backend.Group { + handler (params, session) { // Путевая обработка + session._setValue('example', 1); // Задать значение + console.log(session.example); // Получить значение из сессии + session._remove('example'); // Убрать значение + return 1; // Успешно + return 'Example error' // Пример ошибки + } +} +// Создаём класс метода +class ExampleMethod extends backend.Method { + /* + var result = this.MainObject.call(method : string, params : object) // Вызов подключённого метода + */ + + // Обработчик параметров + execute (params) { + return params.text; + throw { code: 'EXAMPLE_ERROR', details: new Object() }; + } +} +var exampleMethod = new ExampleMethod('/example', { + text: { + required : true, + type : backend.types.string, + conversion : false, + // values : [], + min_length : 1, + max_length : 255, + // allow_methods : ['post'], + // allow_params : ['json'], + + } +}); +// Привяжем метод к группе +exampleMethod.group(ExampleMethodGroup); +// Привяжем метод к основному проекту +server.method(exampleMethod); + +// Запускаем сервер +server.server().listen(8080); \ No newline at end of file diff --git a/components/Main.js b/components/Main.js new file mode 100644 index 0000000..8758e80 --- /dev/null +++ b/components/Main.js @@ -0,0 +1,8 @@ +class Main { + constructor (send_headers = true) { + this.send_headers = send_headers; + } +} + + +module.exports = Main; \ No newline at end of file diff --git a/components/Method.js b/components/Method.js new file mode 100644 index 0000000..140fcad --- /dev/null +++ b/components/Method.js @@ -0,0 +1 @@ +// # \ No newline at end of file diff --git a/components/Session.js b/components/Session.js new file mode 100644 index 0000000..ab0c014 --- /dev/null +++ b/components/Session.js @@ -0,0 +1 @@ +// \ No newline at end of file diff --git a/components/types.js b/components/types.js new file mode 100644 index 0000000..24c8fa5 --- /dev/null +++ b/components/types.js @@ -0,0 +1,14 @@ +module.exports = { + string : { + long_name : 'string', + short_name : 'str', + syntax : (value, needs_convert = true) => { + if (typeof(value) == 'string') { + return true, value; + } + else { + return false, needs_convert ? value.toString() : undefined; + } + } + } +} \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..225a7e6 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +module.exports = { + Main: require('./components/Main'), +}; \ No newline at end of file