8221c180a5
This upgrades to ncc@0.25.0 and fixes the previous bugs including: * ncc not referenced correctly in build * Babel type errors * node-fetch, etag, chalk and raw-body dependencies not building with ncc - these have been "un-ncc'd" for now. As they are relatively small dependencies, this doesn't seem too much of an issue and we can follow up in the tracking ncc issue at https://github.com/vercel/ncc/issues/612. * `yarn dev` issues Took a lot of bisecting, but the overall diff isn't too bad here in the end.
30 lines
749 B
TypeScript
30 lines
749 B
TypeScript
import { NodePath, PluginObj, types } from 'next/dist/compiled/babel/core'
|
|
|
|
export default function AmpAttributePatcher(): PluginObj {
|
|
return {
|
|
visitor: {
|
|
JSXOpeningElement(path: NodePath<types.JSXOpeningElement>) {
|
|
const openingElement = path.node
|
|
|
|
const { name, attributes } = openingElement
|
|
if (!(name && name.type === 'JSXIdentifier')) {
|
|
return
|
|
}
|
|
|
|
if (!name.name.startsWith('amp-')) {
|
|
return
|
|
}
|
|
|
|
for (const attribute of attributes) {
|
|
if (attribute.type !== 'JSXAttribute') {
|
|
continue
|
|
}
|
|
|
|
if (attribute.name.name === 'className') {
|
|
attribute.name.name = 'class'
|
|
}
|
|
}
|
|
},
|
|
},
|
|
}
|
|
}
|