()
| 214 | ); |
| 215 | |
| 216 | export const ExecutableProject: NoPropComponent = (): any => { |
| 217 | const {name: title, summary: description = '', executables} = usePageNode(); |
| 218 | const {devDependencies, version} = usePackageData(); |
| 219 | if (executables == null) { |
| 220 | return null; |
| 221 | } |
| 222 | const cleanDescription = description.replaceAll(/\s+/g, ' ').trim(); |
| 223 | const {html = '', less = '', tsx = ''} = executables; |
| 224 | const files = executables.files ?? {}; |
| 225 | |
| 226 | const imports = getImportMap(html); |
| 227 | const dependencies = getDependencies(imports, version, devDependencies); |
| 228 | const svelte = Object.keys(files).some((path) => path.endsWith('.svelte')); |
| 229 | const react = |
| 230 | imports.react != null || |
| 231 | imports['react-dom/client'] != null || |
| 232 | imports['react/jsx-runtime'] != null; |
| 233 | const solid = imports['solid-js'] != null || imports['solid-js/web'] != null; |
| 234 | const framework: Framework = svelte |
| 235 | ? 'svelte' |
| 236 | : react |
| 237 | ? 'react' |
| 238 | : solid |
| 239 | ? 'solid' |
| 240 | : 'none'; |
| 241 | const entryFileName = |
| 242 | getEntryFileName(files) ?? |
| 243 | (react || solid ? 'src/main.jsx' : 'src/main.js'); |
| 244 | const styleFileName = less.trim() == '' ? undefined : 'src/index.less'; |
| 245 | const viteConfig = getViteConfig(framework, devDependencies); |
| 246 | const project = { |
| 247 | title, |
| 248 | description: cleanDescription, |
| 249 | template: 'node', |
| 250 | files: { |
| 251 | '.npmrc': 'legacy-peer-deps=true\n', |
| 252 | ...files, |
| 253 | ...(html == '' && files['index.html'] != null |
| 254 | ? {} |
| 255 | : {'index.html': getHtml(title, html, entryFileName)}), |
| 256 | ...(styleFileName == null ? {} : {[styleFileName]: getLess(less)}), |
| 257 | ...(tsx == '' |
| 258 | ? {} |
| 259 | : { |
| 260 | [entryFileName]: getSource( |
| 261 | (styleFileName == null ? '' : `import './index.less';\n\n`) + tsx, |
| 262 | ), |
| 263 | }), |
| 264 | 'package.json': getPackageJson( |
| 265 | title, |
| 266 | dependencies, |
| 267 | framework, |
| 268 | devDependencies, |
| 269 | styleFileName != null, |
| 270 | ), |
| 271 | ...(viteConfig == null |
| 272 | ? {} |
| 273 | : { |
nothing calls this directly
no test coverage detected
searching dependent graphs…