mdast-util-mdx-jsx
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -12,21 +12,13 @@ /** @type {FromMarkdownExtension} */ | ||
export type ToMarkdownHandle = import('mdast-util-to-markdown').Handle | ||
export type Estree = import('estree-jsx').Program | ||
export type MDXJsxAttributeValueExpression = Literal & { | ||
type: 'mdxJsxAttributeValueExpression' | ||
data?: { | ||
estree?: Estree | ||
} | ||
} | ||
export type MDXJsxAttribute = Omit<Literal, 'value'> & { | ||
type: 'mdxJsxAttribute' | ||
name: string | ||
value: MDXJsxAttributeValueExpression | string | null | ||
} | ||
export type MDXJsxExpressionAttribute = Literal & { | ||
type: 'mdxJsxExpressionAttribute' | ||
} | ||
export type Attribute = MDXJsxAttribute | MDXJsxExpressionAttribute | ||
export type Program = import('estree-jsx').Program | ||
export type MDXJsxAttributeValueExpression = | ||
import('./complex-types').MDXJsxAttributeValueExpression | ||
export type MDXJsxAttribute = import('./complex-types').MDXJsxAttribute | ||
export type MDXJsxExpressionAttribute = | ||
import('./complex-types').MDXJsxExpressionAttribute | ||
export type MDXJsxFlowElement = import('./complex-types').MDXJsxFlowElement | ||
export type MDXJsxTextElement = import('./complex-types').MDXJsxTextElement | ||
export type Tag = { | ||
name: string | null | ||
attributes: Attribute[] | ||
attributes: (MDXJsxAttribute | MDXJsxExpressionAttribute)[] | ||
close?: boolean | ||
@@ -37,16 +29,1 @@ selfClosing?: boolean | ||
} | ||
export type MDXJsxElement = { | ||
name: string | null | ||
attributes: Attribute[] | ||
} | ||
export type MDXJsxFlowElement = Parent & | ||
MDXJsxElement & { | ||
type: 'mdxJsxFlowElement' | ||
} | ||
export type MDXJsxTextElement = Parent & | ||
MDXJsxElement & { | ||
type: 'mdxJsxTextElement' | ||
} | ||
/** @type {FromMarkdownHandle} */ | ||
declare function data(token: import('micromark-util-types').Token): void | ||
export {} |
138
index.js
@@ -9,13 +9,9 @@ /** | ||
* @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle | ||
* @typedef {import('estree-jsx').Program} Estree | ||
* | ||
* @typedef {Literal & {type: 'mdxJsxAttributeValueExpression', data?: {estree?: Estree}}} MDXJsxAttributeValueExpression | ||
* @typedef {Omit<Literal, 'value'> & {type: 'mdxJsxAttribute', name: string, value: MDXJsxAttributeValueExpression|string|null}} MDXJsxAttribute | ||
* @typedef {Literal & {type: 'mdxJsxExpressionAttribute'}} MDXJsxExpressionAttribute | ||
* @typedef {MDXJsxAttribute|MDXJsxExpressionAttribute} Attribute | ||
* @typedef {{name: string|null, attributes: Attribute[], close?: boolean, selfClosing?: boolean, start: Token['start'], end: Token['start']}} Tag | ||
* | ||
* @typedef {{name: string|null, attributes: Attribute[]}} MDXJsxElement | ||
* @typedef {Parent & MDXJsxElement & {type: 'mdxJsxFlowElement'}} MDXJsxFlowElement | ||
* @typedef {Parent & MDXJsxElement & {type: 'mdxJsxTextElement'}} MDXJsxTextElement | ||
* @typedef {import('estree-jsx').Program} Program | ||
* @typedef {import('./complex-types').MDXJsxAttributeValueExpression} MDXJsxAttributeValueExpression | ||
* @typedef {import('./complex-types').MDXJsxAttribute} MDXJsxAttribute | ||
* @typedef {import('./complex-types').MDXJsxExpressionAttribute} MDXJsxExpressionAttribute | ||
* @typedef {import('./complex-types').MDXJsxFlowElement} MDXJsxFlowElement | ||
* @typedef {import('./complex-types').MDXJsxTextElement} MDXJsxTextElement | ||
* @typedef {{name: string|null, attributes: (MDXJsxAttribute|MDXJsxExpressionAttribute)[], close?: boolean, selfClosing?: boolean, start: Token['start'], end: Token['start']}} Tag | ||
*/ | ||
@@ -126,5 +122,3 @@ | ||
function enterMdxJsxTagClosingMarker(token) { | ||
/** @type {Tag[]} */ | ||
// @ts-expect-error: hush | ||
const stack = this.getData('mdxJsxTagStack') | ||
const stack = /** @type {Tag[]} */ (this.getData('mdxJsxTagStack')) | ||
@@ -142,5 +136,3 @@ if (stack.length === 0) { | ||
function enterMdxJsxTagAnyAttribute(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
@@ -158,5 +150,3 @@ if (tag.close) { | ||
function enterMdxJsxTagSelfClosingMarker(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
@@ -174,5 +164,3 @@ if (tag.close) { | ||
function exitMdxJsxTagClosingMarker() { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
tag.close = true | ||
@@ -183,5 +171,3 @@ } | ||
function exitMdxJsxTagNamePrimary(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
tag.name = this.sliceSerialize(token) | ||
@@ -192,5 +178,3 @@ } | ||
function exitMdxJsxTagNameMember(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
tag.name += '.' + this.sliceSerialize(token) | ||
@@ -201,5 +185,3 @@ } | ||
function exitMdxJsxTagNameLocal(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
tag.name += ':' + this.sliceSerialize(token) | ||
@@ -210,5 +192,3 @@ } | ||
function enterMdxJsxTagAttribute(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
enterMdxJsxTagAnyAttribute.call(this, token) | ||
@@ -220,5 +200,3 @@ tag.attributes.push({type: 'mdxJsxAttribute', name: '', value: null}) | ||
function enterMdxJsxTagExpressionAttribute(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
enterMdxJsxTagAnyAttribute.call(this, token) | ||
@@ -231,9 +209,7 @@ tag.attributes.push({type: 'mdxJsxExpressionAttribute', value: ''}) | ||
function exitMdxJsxTagExpressionAttribute(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
/** @type {MDXJsxExpressionAttribute} */ | ||
// @ts-expect-error: hush | ||
const tail = tag.attributes[tag.attributes.length - 1] | ||
/** @type {Estree?} */ | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
const tail = /** @type {MDXJsxExpressionAttribute} */ ( | ||
tag.attributes[tag.attributes.length - 1] | ||
) | ||
/** @type {Program|undefined} */ | ||
// @ts-expect-error: custom. | ||
@@ -251,6 +227,7 @@ const estree = token.estree | ||
function exitMdxJsxTagAttributeNamePrimary(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
tag.attributes[tag.attributes.length - 1].name = this.sliceSerialize(token) | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
const node = /** @type {MDXJsxAttribute} */ ( | ||
tag.attributes[tag.attributes.length - 1] | ||
) | ||
node.name = this.sliceSerialize(token) | ||
} | ||
@@ -260,7 +237,7 @@ | ||
function exitMdxJsxTagAttributeNameLocal(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
tag.attributes[tag.attributes.length - 1].name += | ||
':' + this.sliceSerialize(token) | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
const node = /** @type {MDXJsxAttribute} */ ( | ||
tag.attributes[tag.attributes.length - 1] | ||
) | ||
node.name += ':' + this.sliceSerialize(token) | ||
} | ||
@@ -270,5 +247,3 @@ | ||
function exitMdxJsxTagAttributeValueLiteral() { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
tag.attributes[tag.attributes.length - 1].value = parseEntities( | ||
@@ -282,11 +257,9 @@ this.resume(), | ||
function exitMdxJsxTagAttributeValueExpression(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
/** @type {MDXJsxAttribute} */ | ||
// @ts-expect-error: hush | ||
const tail = tag.attributes[tag.attributes.length - 1] | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
const tail = /** @type {MDXJsxAttribute} */ ( | ||
tag.attributes[tag.attributes.length - 1] | ||
) | ||
/** @type {MDXJsxAttributeValueExpression} */ | ||
const node = {type: 'mdxJsxAttributeValueExpression', value: this.resume()} | ||
/** @type {Estree?} */ | ||
/** @type {Program|undefined} */ | ||
// @ts-expect-error: custom. | ||
@@ -304,5 +277,3 @@ const estree = token.estree | ||
function exitMdxJsxTagSelfClosingMarker() { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
@@ -314,8 +285,4 @@ tag.selfClosing = true | ||
function exitMdxJsxTag(token) { | ||
/** @type {Tag} */ | ||
// @ts-expect-error: hush | ||
const tag = this.getData('mdxJsxTag') | ||
/** @type {Tag[]} */ | ||
// @ts-expect-error: hush | ||
const stack = this.getData('mdxJsxTagStack') | ||
const tag = /** @type {Tag} */ (this.getData('mdxJsxTag')) | ||
const stack = /** @type {Tag[]} */ (this.getData('mdxJsxTagStack')) | ||
const tail = stack[stack.length - 1] | ||
@@ -343,15 +310,14 @@ | ||
} else { | ||
/** @type {MDXJsxFlowElement|MDXJsxTextElement} */ | ||
const node = { | ||
type: | ||
token.type === 'mdxJsxTextTag' | ||
? 'mdxJsxTextElement' | ||
: 'mdxJsxFlowElement', | ||
name: tag.name, | ||
attributes: tag.attributes, | ||
children: [] | ||
} | ||
// @ts-expect-error: custom | ||
this.enter(node, token) | ||
this.enter( | ||
{ | ||
type: | ||
token.type === 'mdxJsxTextTag' | ||
? 'mdxJsxTextElement' | ||
: 'mdxJsxFlowElement', | ||
name: tag.name, | ||
attributes: tag.attributes, | ||
children: [] | ||
}, | ||
token | ||
) | ||
} | ||
@@ -358,0 +324,0 @@ |
{ | ||
"name": "mdast-util-mdx-jsx", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "mdast extension to parse and serialize MDX or MDX.js JSX", | ||
@@ -34,2 +34,3 @@ "license": "MIT", | ||
"files": [ | ||
"complex-types.d.ts", | ||
"index.d.ts", | ||
@@ -40,3 +41,3 @@ "index.js" | ||
"@types/estree-jsx": "^0.0.1", | ||
"@types/mdast": "^3.0.3", | ||
"@types/mdast": "^3.0.0", | ||
"mdast-util-to-markdown": "^1.0.0", | ||
@@ -62,6 +63,6 @@ "parse-entities": "^3.0.0", | ||
"typescript": "^4.0.0", | ||
"xo": "^0.39.0" | ||
"xo": "^0.42.0" | ||
}, | ||
"scripts": { | ||
"build": "rimraf \"*.d.ts\" && tsc && type-coverage", | ||
"build": "rimraf \"{index,test}.d.ts\" && tsc && type-coverage", | ||
"format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix", | ||
@@ -68,0 +69,0 @@ "test-api": "node --conditions development test.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
30046
6
0
447
Updated@types/mdast@^3.0.0