- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
/**
|
|
* @import {Comment, Parents} from 'hast'
|
|
* @import {State} from '../index.js'
|
|
*/
|
|
|
|
import {stringifyEntities} from 'stringify-entities'
|
|
|
|
const htmlCommentRegex = /^>|^->|<!--|-->|--!>|<!-$/g
|
|
|
|
// Declare arrays as variables so it can be cached by `stringifyEntities`
|
|
const bogusCommentEntitySubset = ['>']
|
|
const commentEntitySubset = ['<', '>']
|
|
|
|
/**
|
|
* Serialize a comment.
|
|
*
|
|
* @param {Comment} node
|
|
* Node to handle.
|
|
* @param {number | undefined} _1
|
|
* Index of `node` in `parent.
|
|
* @param {Parents | undefined} _2
|
|
* Parent of `node`.
|
|
* @param {State} state
|
|
* Info passed around about the current state.
|
|
* @returns {string}
|
|
* Serialized node.
|
|
*/
|
|
export function comment(node, _1, _2, state) {
|
|
// See: <https://html.spec.whatwg.org/multipage/syntax.html#comments>
|
|
return state.settings.bogusComments
|
|
? '<?' +
|
|
stringifyEntities(
|
|
node.value,
|
|
Object.assign({}, state.settings.characterReferences, {
|
|
subset: bogusCommentEntitySubset
|
|
})
|
|
) +
|
|
'>'
|
|
: '<!--' + node.value.replace(htmlCommentRegex, encode) + '-->'
|
|
|
|
/**
|
|
* @param {string} $0
|
|
*/
|
|
function encode($0) {
|
|
return stringifyEntities(
|
|
$0,
|
|
Object.assign({}, state.settings.characterReferences, {
|
|
subset: commentEntitySubset
|
|
})
|
|
)
|
|
}
|
|
}
|