Skip to content

Instantly share code, notes, and snippets.

View spac3unit's full-sized avatar

Denis spac3unit

View GitHub Profile
@spac3unit
spac3unit / telegramChannelBot.md
Created October 21, 2021 20:34 — forked from zmts/telegramChannelBot.md
Используем Telegram канал в качестве системы оповещения

Используем Telegram канал в качестве системы оповещения

  • Создаем бота через глобального бота телеграма @BotFather
  • Создаем публичный канал через обычный клиент(desktop/mobile) с публичным именем
  • Добавляем бота в администраторы канала (с правами отправлять сообщения)
  • Отправляем тестовое сообщение в канал от имени только что созданного бота
#POST: https://api.telegram.org/bot<token>/sendMessage
{
  "chat_id": "@mysuperchannel",
@spac3unit
spac3unit / aboutNodeJsArchitecture.md
Created October 21, 2021 19:55 — forked from zmts/aboutNodeJsArchitecture.md
A little bit about Node.js API Architecture

A little bit about Node.js API Architecture (Архитектура/паттерны организации кода Node.js приложений)

node.js

TL;DR

code: https://github.com/zmts/supra-api-nodejs

Предисловие

Одной из болезней Node.js комьюнити это отсутствие каких либо крупных фреймворков, действительно крупных уровня Symphony/Django/RoR/Spring. Что является причиной все ещё достаточно юного возраста данной технологии. И каждый кузнец кует как умеет ну или как в интернетах посоветовали. Собственно это моя попытка выковать некий свой подход к построению Node.js приложений.

@spac3unit
spac3unit / forVarLetClosure.md
Created October 21, 2021 19:52 — forked from zmts/forVarLetClosure.md
Javascipt. For. Var. Let. Closure. Event loop.

Javascipt. For. Var. Let. Closure. Event loop.

var

for(var i = 0; i < 5; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
@spac3unit
spac3unit / permissions.md
Created October 21, 2021 19:51 — forked from zmts/permissions.md
Управление правами/ролями в Node.js приложениях (Permissions/ACL)

Управление правами/ролями в Node.js приложениях (Permissions/ACL)

Допустим у наc есть такой CRUD и мы хотим проверять права доступа к каждому екшену.

class PostsController extends BaseController {
  static get router () {
    router.get('/', actionRunner(actions.ListAction))
    router.get('/:id', actionRunner(actions.GetByIdAction))
    router.post('/', actionRunner(actions.CreateAction))
    router.patch('/', actionRunner(actions.UpdateAction))
@spac3unit
spac3unit / start_end.md
Created October 21, 2021 19:50 — forked from zmts/start_end.md
Start/End day. Native JavaScript

Start/End day. Native JavaScript

new Date(new Date().setHours(0,0,0,0)).toISOString()
new Date(new Date().setHours(23,59,59,999)).toISOString()
@spac3unit
spac3unit / docker.md
Created October 21, 2021 19:45 — forked from zmts/docker.md
Docker, TypeScript, Node.js

Docker, TypeScript, Node.js

Preconditions:

  • TS application listening port: 7777
|-- dist
|-- src
|-- .dockerignore
|-- Dockerfile
@spac3unit
spac3unit / dockerToLocalhost.md
Created October 21, 2021 19:42 — forked from zmts/dockerToLocalhost.md
Get access to localhost database from docker container

Get access to localhost database from docker container

  • Run containerized application on 0.0.0.0 address
  • Use host.docker.internal as database hostname
@spac3unit
spac3unit / .gitconfig
Created July 4, 2021 16:19 — forked from johnpolacek/.gitconfig
My current .gitconfig aliases
[alias]
co = checkout
cob = checkout -b
coo = !git fetch && git checkout
br = branch
brd = branch -d
brD = branch -D
merged = branch --merged
st = status
aa = add -A .
@spac3unit
spac3unit / parseStringIntoChunks.js
Created March 13, 2021 11:02 — forked from CyberAP/parseStringIntoChunks.js
Convert html-like translation strings into scoped-slot-compatible chunks
/*
* "foo<bar>baz</bar>qux" => ['foo', ['bar', 'baz'], 'qux']
* "<bar/>" => [['bar', '']]
* */
function parseStringIntoChunks(string) {
const chunks = [];
let buffer = '';
let currentTag = '';
let currentTagContent = '';
import Vue from 'vue';
import getScrollbarWidth from "@modules/utils/getScrollbarWidth.js";
import { getDocument, getWindow } from "@modules/utils/dom.js";
const window = getWindow();
const document = getDocument();
const mobileWidth = parseInt(
window
.getComputedStyle(document.documentElement)