chunks.push(e.data)
на отправку blob'а в web-socket. The setting you are looking for is "compact folders". You can get there by going to: File → Preferences → Settings → explorer.compactFolders and then unchecking the box.
Параметр, который вы ищете, это «компактные папки». Вы можете попасть туда, выбрав: Файл → Настройки → Настройки → explorer.compactFolders, а затем сняв флажок.
<div itemscope itemtype="http://schema.org/Product">
<span itemprop="name">Название продукта</span>
<span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
Рейтинг:
<span itemprop="ratingValue">4.5</span> из
<span itemprop="bestRating">5</span>
на основе
<span itemprop="ratingCount">10</span> оценок
</span>
</div>
<article itemscope itemtype="http://schema.org/Article">
<header>
<h1 itemprop="headline">Заголовок статьи</h1>
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
Рейтинг:
<span itemprop="ratingValue">4.5</span> из
<span itemprop="bestRating">5</span>
на основе
<span itemprop="ratingCount">10</span> оценок
</div>
</header>
<div itemprop="articleBody">
<!-- Текст статьи -->
</div>
</article>
<html>
<head>
<title>Название страницы</title>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Название продукта",
"image": "https://example.com/product-image.jpg",
"description": "Описание продукта",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"bestRating": "5",
"ratingCount": "10"
},
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "19.99",
"availability": "http://schema.org/InStock"
}
}
</script>
</head>
<body>
<!-- Содержимое страницы -->
</body>
</html>
<html>
<head>
<title>Название страницы</title>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CreativeWork",
"name": "Название статьи",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"bestRating": "5",
"ratingCount": "10"
}
}
</script>
</head>
<body>
<!-- Содержимое страницы -->
</body>
</html>
strapi.db.lifecycles.subscribe({
models: ["api::post.post"],
async beforeCreate(event) {
const ctx = strapi.requestContext.get();
event.params.data = {
...event.params.data,
author: ctx.state.user.id
}
}
})
@Injectable()
export class ValidationPipe implements PipeTransform<any> {
async transform(value, metadata: ArgumentMetadata) {
if (!value) {
throw new BadRequestException('No data submitted');
}
const { metatype } = metadata;
if (!metatype || !this.toValidate(metatype)) {
return value;
}
const object = plainToClass(metatype, value);
console.dir(object);
const errors = await validate(object);
if (errors.length > 0) {
throw new HttpException({message: 'Input data validation failed', errors: this.buildError(errors)}, HttpStatus.BAD_REQUEST);
}
return value;
}
private buildError(errors) {
const result = {};
errors.forEach(el => {
const prop = el.property;
Object.entries(el.constraints).forEach(constraint => {
result[prop] = constraint[0];
});
});
return result;
}
private toValidate(metatype): boolean {
const types = [String, Boolean, Number, Array, Object];
return !types.find((type) => metatype === type);
}
}
@UsePipes(new ValidationPipe())
@Post()
async create(@Body() createPostDto: CreatePostDto) {
console.dir(createPostDto)
}
const { filledColor: F, emptyColor: E, ...props } = defineProps({
value: Number,
maxValue: Number,
segments: {
type: Number,
default: 5,
},
filledColor: {
type: String,
default: 'red',
},
emptyColor: {
type: String,
default: 'black',
},
});
const background = val =>
val >= 1 ? F :
val <= 0 ? E :
`linear-gradient(to right, ${F}, ${F}, ${val * 100}%, ${E} ${val * 100}%)`;
<div class="rating">
<div
v-for="i in segments"
:style="{ background: background(value / maxValue * segments - i + 1) }"
class="rating-segment"
></div>
</div>
git config core.hooksPath .githooks
const dateByWeekNumber = (year, week) => {
// Cоздаём дату, гарантированно входящую в первую неделю.
const date = new Date(year, 0, 7);
// Откатываемся до первого четверга года
// По ГОСТ ИСО 8601-2001 первая неделя года должна содержать четверг
date.setDate(date.getDate() - (date.getDay() + 10) % 7);
// Переходим в нужную неделю
date.setDate(date.getDate() + (week - 1) * 7);
// Откатываемся до понедельника
date.setDate(date.getDate() - 3);
return date;
};
dateByWeekNumber(2023, 10);
// Date Mon Mar 06 2023 00:00:00 GMT+0300 (Москва, стандартное время)
dateByWeekNumber(2020, 1);
// Date Mon Dec 30 2019 00:00:00 GMT+0300 (Москва, стандартное время)
Хук get не позволяет получить параметры вызова метода
function sequence(functions) {
return new Proxy(functions, {
get(target, key) {
const val = target[key];
return val instanceof Function
? (...args) => {
console.log(`${key} called with arguments: `, args);
return val.apply(target, args);
}
: val;
},
});
}
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
// ...
}
const collectTree = (itemSelector, elementSelector, root = document) =>
[...root.querySelectorAll(itemSelector)].map((element) => ({
name: element.querySelector(elementSelector)?.textContent.trim(),
child: collectTree(itemSelector, elementSelector, element),
}));
collectTree('ul > li', 'a');
// или
collectTree(':scope > ul > li', 'a');
[
{
"name": "Вегетотропные средства",
"child": [
{
"name": "Адренолитические средства",
"child": [
{
"name": "Альфа- и бета-адреноблокаторы",
"child": []
},
{
"name": "Альфа-адреноблокаторы",
"child": [
{
"name": "Альфа-адреноблокаторы в комбинациях",
"child": []
}
]
},
{
"name": "Бета-адреноблокаторы",
"child": [
{
"name": "Бета-адреноблокаторы в комбинациях",
"child": []
}
]
},
{
"name": "Симпатолитики",
"child": [
{
"name": "Симпатолитики в комбинациях",
"child": []
}
]
}
]
},
{
"name": "Противоопухолевые средства",
"child": [
{
"name": "Алкилирующие средства",
"child": []
},
{
"name": "Антиметаболиты",
"child": []
},
{
"name": "Другие противоопухолевые средства",
"child": []
},
{
"name": "Противоопухолевые антибиотики",
"child": []
},
{
"name": "Противоопухолевые гормональные средства и антагонисты гормонов",
"child": []
},
{
"name": "Противоопухолевые средства — ингибиторы протеинкиназ",
"child": []
},
{
"name": "Противоопухолевые средства — моноклональные антитела",
"child": [
{
"name": "Противоопухолевые средства — моноклональные антитела в\n комбинациях",
"child": []
}
]
},
{
"name": "Противоопухолевые средства растительного происхождения",
"child": [
{
"name": "Противоопухолевые средства растительного происхождения в\n комбинациях",
"child": []
}
]
}
]
},
{
"name": "Разные средства",
"child": [
{
"name": "Вспомогательные вещества, реактивы и полупродукты",
"child": []
},
{
"name": "Детское питание (включая смеси)",
"child": []
},
{
"name": "Другие разные средства",
"child": []
},
{
"name": "Радиопрофилактические и радиотерапевтические средства",
"child": []
},
{
"name": "Склерозирующие средства",
"child": []
},
{
"name": "Средства для коррекции нарушений при алкоголизме, токсико- и\n наркомании",
"child": [
{
"name": "Средства для коррекции нарушений при алкоголизме, токсико-\n и наркомании в комбинациях",
"child": []
}
]
}
]
},
{
"name": "Регенеранты и репаранты",
"child": [
{
"name": "Регенеранты и репаранты в комбинациях",
"child": []
}
]
}
]
}
]