Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2015, 20:05
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

SweetJS тред
Давайте тут делится годными макросами для SweetJS.

Вот сегодня написал оч полезный макрос:

macro get {
	rule { $obj:expr @ ($property) } => {
		$obj[$property]
	}

	rule { $obj:expr @ ($head $tail ...) } => {
		$obj[$head] || get $obj @ ($tail ...)
	}

	rule infix { $obj:expr:: | [$x (,) ...] } => {
		var tmp = $obj;
		get tmp @ ($x ...)
	}
}


Пример:

really.very.long.namespace::get['someProp', 'someProp2']


Станет

var tmp = really.very.long.namespace;
tmp['someProp'] || tmp['someProp2'];
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.07.2015 в 23:09.
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2015, 22:44
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Валидные декораторы с точки зрения синтаксиса JS для функций (в ES7 декораторы можно вешать только на классы, методы класса и литерала объекта).

macro func {
	rule { $arg => $body:expr }
	rule { $arg => { $body ... } }
	rule { ($args (,) ...) => $body:expr }
	rule { ($args (,) ...) => { $body ... } }
	rule { function ($args (,) ...) { $body ... } }
	rule { function $name:ident ($args (,) ...) { $body ... } }
}

macro decorate {
	rule { $f:expr @ ($decorator) } => {
		$decorator($f)
	}

	rule { $f:func @ ($head $tail ...) } => {
		decorate $head($f) @ ($tail ...)
	}

	rule { ($decorators:expr (,) ...) :: $f:func } => {
		decorate $f @ ($decorators ...)
	}
}


function wrapper(cb) {
	return function () {
		alert(1);
		return cb.apply(this, arguments);
	};
}

let foo = decorate(wrapper) :: function (a, b) {
	return a + b;
};
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 27.07.2015 в 23:10.
Ответить с цитированием
  #3 (permalink)  
Старый 30.07.2015, 14:18
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

https://github.com/kobezzza/SweetHelpers
__________________
kobezzza
code monkey
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обсуждений тред cyber Оффтопик 2135 03.10.2018 08:10
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
MySQL вопроса тред UIjs Оффтопик 30 02.05.2015 22:17
треда тред // поэтическое nverv Оффтопик 4 09.07.2014 11:38