Lint and format src/compiler/compile/render_dom/wrappers/shared/get_slot_definition.js

pull/8569/head
Simon Holthausen 3 years ago
parent a72601d939
commit a8a7cc6d50

@ -6,8 +6,7 @@ import { x, p } from 'code-red';
* @param {import('../../../nodes/Let.js').default[]} lets * @param {import('../../../nodes/Let.js').default[]} lets
*/ */
export function get_slot_definition(block, scope, lets) { export function get_slot_definition(block, scope, lets) {
if (lets.length === 0) if (lets.length === 0) return { block, scope };
return { block, scope };
const context_input = { const context_input = {
type: 'ObjectPattern', type: 'ObjectPattern',
properties: lets.map((l) => ({ properties: lets.map((l) => ({
@ -20,7 +19,6 @@ export function get_slot_definition(block, scope, lets) {
const properties = []; const properties = [];
const value_map = new Map(); const value_map = new Map();
lets.forEach((l) => { lets.forEach((l) => {
/** @type {import('estree').Identifier} */ /** @type {import('estree').Identifier} */
let value; let value;
if (l.names.length > 1) { if (l.names.length > 1) {
@ -28,8 +26,7 @@ export function get_slot_definition(block, scope, lets) {
const unique_name = block.get_unique_name(l.names.join('_')).name; const unique_name = block.get_unique_name(l.names.join('_')).name;
value_map.set(l.value, unique_name); value_map.set(l.value, unique_name);
value = { type: 'Identifier', name: unique_name }; value = { type: 'Identifier', name: unique_name };
} } else {
else {
value = l.value || l.name; value = l.value || l.name;
} }
properties.push({ properties.push({
@ -59,7 +56,9 @@ export function get_slot_definition(block, scope, lets) {
}); });
const context = { const context = {
type: 'ObjectExpression', type: 'ObjectExpression',
properties: Array.from(names).map((name) => p `${block.renderer.context_lookup.get(name).index}: ${name}`) properties: Array.from(names).map(
(name) => p`${block.renderer.context_lookup.get(name).index}: ${name}`
)
}; };
const { context_lookup } = block.renderer; const { context_lookup } = block.renderer;
// i am well aware that this code is gross // i am well aware that this code is gross
@ -73,8 +72,7 @@ export function get_slot_definition(block, scope, lets) {
const i = /** @type {number} */ (context_lookup.get(name).index.value); const i = /** @type {number} */ (context_lookup.get(name).index.value);
const g = Math.floor(i / 31); const g = Math.floor(i / 31);
const lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name; const lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;
if (!grouped[g]) if (!grouped[g]) grouped[g] = [];
grouped[g] = [];
grouped[g].push({ name: lookup_name, n: i % 31 }); grouped[g].push({ name: lookup_name, n: i % 31 });
}); });
const elements = []; const elements = [];
@ -90,13 +88,15 @@ export function get_slot_definition(block, scope, lets) {
elements elements
}; };
} }
return /** @type {import('estree').BinaryExpression} */ (Array.from(names) return /** @type {import('estree').BinaryExpression} */ (
Array.from(names)
.map((name) => { .map((name) => {
const lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name; const lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;
const i = /** @type {number} */ (context_lookup.get(name).index.value); const i = /** @type {number} */ (context_lookup.get(name).index.value);
return x`${lookup_name} ? ${1 << i} : 0`; return x`${lookup_name} ? ${1 << i} : 0`;
}) })
.reduce((lhs, rhs) => x `${lhs} | ${rhs}`)); .reduce((lhs, rhs) => x`${lhs} | ${rhs}`)
);
} }
}; };
return { return {
@ -106,7 +106,3 @@ export function get_slot_definition(block, scope, lets) {
get_changes: x`${changes_input} => ${changes}` get_changes: x`${changes_input} => ${changes}`
}; };
} }

Loading…
Cancel
Save