@mongez/gnz
Version:
Generator Z, the next generation of scaffolding tools.
57 lines (51 loc) • 1.82 kB
JavaScript
;require('os');var prettifier=require('../../../utils/prettifier.js');async function gnQwikPage(options) {
//
const { name: componentName, imports: incomingImports = [], withRouteLoader = false, withHead = false, renderContent = `
<>
<h1>Hello, World!</h1>
</>
`, } = options;
const imports = incomingImports;
imports.unshift("import { component$ } from '@builder.io/qwik';");
let routeLoaderContent = "";
let beforeContent = "";
if (withRouteLoader) {
imports.push(`import { routeLoader$ } from '@builder.io/qwik-city';`);
routeLoaderContent = `
export const use${componentName} = routeLoader$(async (requestEvent) => {
// This code runs only on the server, after every navigation
// your logic goes here
});
`;
beforeContent = `
const data = use${componentName}();
`;
}
let headContent = "";
if (withHead) {
imports.push(`import type { DocumentHead } from '@builder.io/qwik-city';`);
const param = withRouteLoader ? "{ resolveValue }" : "";
headContent = `
export const head: DocumentHead = (${param}) => {
${withRouteLoader ? `const data = resolveValue(use${componentName});` : ""}
return {
title: "${componentName}",
// other meta data goes here
};
};
`;
}
const importsString = imports.join("\n");
const content = `
${importsString}
${routeLoaderContent}
export default component$(() => {
${beforeContent}
return (
${renderContent}
);
});
${headContent}
`;
return await prettifier.format.typescript(content);
}exports.gnQwikPage=gnQwikPage;//# sourceMappingURL=template.js.map