MCPcopy Create free account
hub / github.com/tinyplex/tinybase / ExecutableProject

Function ExecutableProject

site/ui/ExecutableProject.tsx:216–286  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

214 );
215
216export 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 : {

Callers

nothing calls this directly

Calls 9

usePackageDataFunction · 0.90
getDependenciesFunction · 0.85
getViteConfigFunction · 0.85
getHtmlFunction · 0.85
getLessFunction · 0.85
getSourceFunction · 0.85
getPackageJsonFunction · 0.85
getImportMapFunction · 0.70
getEntryFileNameFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…