Size: a a a

JavaScript.Ninja

2020 June 04

VB

Valentin Buryakov in JavaScript.Ninja
O Bogdan
Ребят, а есть чатик по CI/CD или может кто неплохо знаком с github actions?
@devops_ru думаю тут могут помочь
источник

OB

O Bogdan in JavaScript.Ninja
Valentin Buryakov
@devops_ru думаю тут могут помочь
Спасибо)
источник

VS

Vitaliy Stoliarov in JavaScript.Ninja
Подскажите какие-то NPM утилиты для запуска скриптов через одну команду с выбором опций, так как как при увеличении количества окружения растет количество команд, а все возможные значения каждый раз прописывать не хочется
источник

IS

Ihor Sokolov in JavaScript.Ninja
Вы можете подкинуть .env file в зависимости от окружения, чтобы убрать скрипты, в которых отличается только значение переменных окружения
источник

VS

Vitaliy Stoliarov in JavaScript.Ninja
мне так или иначе придется прописывать какое окружение мне нужно, а не выбирать один из представленных вариантов
источник

V

Valentin in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
Привет
Есть класс class CrudRequester, который реализует методы
get, post, put, delete

Для некоторых экземпляров класса нужны все 4 метода, а для некоторых меньшее кол-во.
Например для одного экземпляра нужен только get, для другого get, post

Каким образом мне правильно реализовать класс, чтобы он содержал произвольное количество методов?
Хочется поддержки тс, чтобы в каждом из экземпляров класса он видел только доступные методы
Подели класс на 4 интерфейса. И комбинируй, хоть через фабрику
источник

V

Valentin in JavaScript.Ninja
Vitaliy Stoliarov
Подскажите какие-то NPM утилиты для запуска скриптов через одну команду с выбором опций, так как как при увеличении количества окружения растет количество команд, а все возможные значения каждый раз прописывать не хочется
есть run-p
сейчас комбинирую в одну команду: "build": "yarn build:cjs && yarn build:es && yarn build:copy-types",
источник

V

Valentin in JavaScript.Ninja
А есть хороший гайд как собирать библиотеку на прод? Хорошая связка babel + rollup для ui kita на реакте? Можно это сделать за 3 часа?
источник
2020 June 05

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Valentin
Подели класс на 4 интерфейса. И комбинируй, хоть через фабрику
источник

V

Valentin in JavaScript.Ninja
ну блин SOLID
источник

V

Valentin in JavaScript.Ninja
ща доделаю одну штучку
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
Valentin
ща доделаю одну штучку
🙏
источник

V

Valentin in JavaScript.Ninja
Почитай пока SOLID принцип разделения интерфейсов
источник

PA

Pavel Astahov in JavaScript.Ninja
Vur cli version marker с npm получить не могу
источник

V

Valentin in JavaScript.Ninja
крч, гугли «The Interface Segregation Principle»
источник

V

Valentin in JavaScript.Ninja
должны быть макс понятные примеры)
источник

V

Valentin in JavaScript.Ninja
источник

V

Valentin in JavaScript.Ninja
А возможно при вызове бабеля получить больше инфы при сборке?
источник

VB

Valentin Buryakov in JavaScript.Ninja
Герман (╯°□°)╯︵ ┻━┻
Привет
Есть класс class CrudRequester, который реализует методы
get, post, put, delete

Для некоторых экземпляров класса нужны все 4 метода, а для некоторых меньшее кол-во.
Например для одного экземпляра нужен только get, для другого get, post

Каким образом мне правильно реализовать класс, чтобы он содержал произвольное количество методов?
Хочется поддержки тс, чтобы в каждом из экземпляров класса он видел только доступные методы
Возможно тебе нужно что-то типа mixin'ов как во Vue, и миксен тебе вернёт класс вкотором будут твои реализации, типа такого
https://mariusschulz.com/blog/mixin-classes-in-typescript#:~:text=Mixins%20in%20JavaScript%2FTypeScript,is%20based%20on%20composing%20behavior.
источник

Г(

Герман (╯°□°)╯︵ ┻━┻... in JavaScript.Ninja
спасибо большое, но ведь при таких раскладах прийдется писать реализацию методов у каждого класса, который использует эти интерфейсы. Я делаю сейчас так: допустим есть на беке user-controller с методами get, post, put, delete. В базовом классе CrudRequester у меня все эти методы реализованы, мне остается сделать так:
export const userController = new CrudRequester('/api/users')
В userController у меня уже будут все методы

Если появятся новые эндпоинты в user-controller на беке, я могу сделать так
class UserController extends CrudRequester {
 someOtherMethod() {...}
}
export const userController = new UserController('/api/users')

Если делать с разбитием на 4 интерфейса код будет таким
interface IUserController extends GetRequest, PutRequest, PostRequest, DeleteRequest

class UserController implements IUserController {
   constructor(private url: string) {};
   get() {...}
   post() {... }
   put() {... }
   delete() {...}
}

И так для каждого контроллера (эндпоинта) на беке, а у меня их очень много. Получается много повторений или я туплю?
источник