• Почему из-за одной буквы вызывается ошибка?

    kosuha
    @kosuha
    Не знаю чистый это пример или взятый из контекста кого-то приложения.
    Но может быть ваш сервер статику раздает и может быть api/clients это директория которая существует
    Ответ написан
    Комментировать
  • Promise executor, почему нельзя уловить ошибку внутри executor с помощью try-catch?

    kosuha
    @kosuha Автор вопроса
    А я кажется и сам понял что throw Error - равносильно вызову reject и это уже идет через очередь промисов

    Значит executor обернут в try-catch внутри реализации Promise.
    И значит всетаки executor - выполняется в обычном call stack
    Просто ошибка внутри обрабабтывается
    Ответ написан
    Комментировать
  • Какая логика работы intersection и union типов?

    kosuha
    @kosuha
    Понимаю что вопрос задан давно, но все-таки оставлю тут свой ответ тоже.

    По поводу пересечения объектных типов да вы запутались.
    Вы посчитали что объектный тип - это множество его свойств, то есть например
    { a: number } & { b: number } по вашей логике не имеет пересечения
    тк у него нету совпадающих свойств

    Но TS работает не так. Тип в TS это множество возможных значений (не свойств).
    Именно поэтому когда мы создаем тип такой
    { a: number } & { b: number } то результатом будет такой новый тип
    { a: number, b:number } потому что именно такой тип подойдет для множества значений
    которые будут и Первым и вторым типами одновременно.
    вот пример таких значений
    [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}]
    {a:1} - уже не подходит в нем нету b свойства.

    Сам сегодня вспомнил эту тему и думал может написать вопрос на тостер.
    но увидел этот вопрос и решил дополнить его.

    По поводу пересения такого number &string результатом будет пустое множество never
    потому что не может быть множества значений которые одновременно и number и string
    Ответ написан
    Комментировать
  • Подвязать доменное имя?

    kosuha
    @kosuha
    Поставь nginx, и настрой в нем вирталхост на перенаправление на localhost:3000.
    так ты и свяжешь доменное имя и свое приложение на Nodejs
    Ответ написан
    Комментировать
  • Codeception как задать шаблон по умолчанию при генерации suite конфигов?

    kosuha
    @kosuha Автор вопроса
    Походу я размечтался, шаблон там захардкодили, видимо мой случай слишком редкий чтобы о нем думать.

    https://github.com/Codeception/Codeception/blob/4....
    Ответ написан
    Комментировать
  • Как в PhpOffice Spreadsheet можно взять таблицу и поместить в PhpWord?

    kosuha
    @kosuha Автор вопроса
    Сделал пока свой метод, который берет Worksheet и переделывает его в Table, с учетом слияния колонок, правда только по ширине, не по высоте

    private function convertXlsToDocTable(Worksheet $sheet, Table $table)
    {
        foreach ($sheet->getRowIterator() as $rowIndex => $row) {
            $table->addRow();
            $prevMergeRange = null;
            $cellIterator = $row->getCellIterator();
            $cellIterator->setIterateOnlyExistingCells(false);
            foreach ($cellIterator as $cellIndex => $cell) {
                $value = $cell->getValue();
                $mergeRange = $cell->getMergeRange();
                if ($mergeRange && $prevMergeRange == $mergeRange) {
                    continue;
                }
                if ($mergeRange) {
                    $mergeCount = 0;
                    foreach ($row as $mergeCell) {
                        if ($mergeRange == $mergeCell['mergeRange']) {
                            $mergeCount++;
                        }
                    }
                    $table->addCell(2000, ['gridSpan' => $mergeCount])->addText($value);
                    $prevMergeRange = $mergeRange;
                } else {
                    $table->addCell(2000, [])->addText($value);
                }
            }
        }
    
        return $table;
    }
    Ответ написан
    Комментировать
  • Как вывести последние записи из двух таблиц и отсортировать их по дате?

    kosuha
    @kosuha
    Такой запрос на мой взгляд будет очень полезен при выполнении поиска, в котором нужно искать в совершенно разных разделах сайта, которые между собой никак не связаны, и мне лично кажется что это достаточно нормальное и оптимальное решение.
    Ответ написан
    Комментировать
  • Yii2 Кастомизация расширений, как подогнать свой вид для чужого расширения?

    kosuha
    @kosuha Автор вопроса
    Отвечу сам на свой вопрос, но если кто-нибудь захочет что-то добавить буду не против...
    По всей видимости вполне достаточно сделать свой контроллера, например app\controllers\ProfileController и унаследовать его от нужного контроллера из расширения, следовательно новый контроллер получит все методы контроллера расширения, но при этом будет искать виды в папке views/profile, это впринципе то что нужно!!! вот.., но это конечно в том случае если в контроллере расширения используются не абсолютные пути для подключения файлов видов... а если абсолютные думаю можно придумать какое-нибудь поведение для обработки этой проблемы, но думаю такое бывает редко..
    Ответ написан
    Комментировать
  • Какое регулярное выражение подойдет для проверки номера телефона?

    kosuha
    @kosuha
    Мне трудно себе представить каким способом вы тестировали это регулярное выражение, но оно начинает срабатывать уже при шестизначном значении, например 232323, а максимально можно ввести 14 цифровых знаков. из за того что у вас стоят знаки ? после групп, которые допускают что эта группа может появиться 1 или 0 раз, из-за этого можно вводить просто кучу цифр.
    Я лично сделал вот такое бы выражение, не такое запутанное как ваше
    ^\+?[78][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$
    Оно уж точно не пропустит лишних цифр, и допускает варианты:
    89103123167
    +7-910-221-22-22
    +7(910)-221-22-22
    ну и в таком духе
    Ответ написан
    1 комментарий