@julikhris/astro-fastify
Advanced tools
Weekly downloads
Readme
Fastify Server Side Rendering provider for the AstroBuild Framework. This is being built out as a plugin to be used as part of the JuliKhris lowcode framework which is being build on top of AstroBuild. To leverage Data Islands, Minimal JS and Server Side Rendering.
Although you can use as adapter for AstroBuild. Currently being used for clients on Azure Windows, Azure Linux, Oracle Cloud, and AWS
Coming Soon:
Special thanks to @matthewp/astro-fastify; this is an extension of that adapter writing in TS with additional parameters for customization.
1 ) Added ability to pass auth plugin as a parameter. New parameter authPluginProvider?: AuthPluginProvider | AuthPluginProviderFromConfig; Pass a authplugin config file.
Example file content of file that can be passed as value
import { pathToFileURL, URL } from "url";
const authPluginConfig = {
"pluginName": "@julikhris/fastify-msal",
"objectName": "fastifyAuthMsal",
"pluginPath": pathToFileURL("Path to a plugin"),
"authActions":pathToFileURL("Path to a file containing actions, must have a function named validate to handle authentication validation, This will be passed to plugin option defined by "),
"decorator": "name of plugin decorator to call",
"functionName": "name of plugin option that the validate function from authActions will be passed to"
See usage below
Install @julikhris/astro-fastify
npm install @julikhris/astro-fastify
//Import the adapter
// Git Repo Comin Soon!
//import adapter from "@julikhris/astro-fastify";
//create a arrow function to build adapter values
// Parameters to pass:
//client relative: variable for relative path to client files example dist\client
// static routes build a colleciton of statice routes css folder etc
// example const
// getStaticRoutes = (clientRoot) => {
// console.log("getting static routes")
// return [
// {
// clientRelative:clientRoot,
// root: "assets",
// prefix: "/assets/",
// setHeaders(res) {
// res.setHeader("Cache-Control", "max-age=31536000,//immutable");
// },
// decorateReply: true,
// }
// ]
// }
// server routes to run in dev only
// server routes to run in prod
// port to listen on Azure windows will default to path as it used named pipes
// plugin hooks that attaches to Fastify onrequest hook: for example inject auth hander
// Example
// const useFastifyAdapter = (
// clientRelative: string,
// staticRoutes: ({ clientRelative: any; root: string; prefix: string; setHeaders(res: any): void; decorateReply: boolean; } | { clientRelative: any; root: string; prefix: string; setHeaders(res: any): void; decorateReply?: undefined; })[],
// devRoutesApi: any,
// productionRoutesApi: URL,
// port: number,
// pluginHooksApi: URL
// ) => {
// return adapter({
// clientRelative,
// staticRoutes,
// devRoutesApi,
// productionRoutesApi,
// port,
// pluginHooksApi,
// authPluginProvider:{config:pathToFileURL(resolvedAuthConfigPlugin)}
// })
// };
// // add adapter to astro.config
// adapter: useFastifyAdapter(
// clientRelative,
// getStaticRoutes(clientRelative),
// await getServerRoutes(),
// pathToFileURL(resolvedServerRoutesPath),
// serverPort,
// pathToFileURL(resolvedServerHooksPath)
// ),
## Documentation
Coming Soon
## Support
Coming Soon
## Contributing
Contributions are always welcome!
Coming Soon
FAQs
ssr fastify
The npm package @julikhris/astro-fastify receives a total of 31 weekly downloads. As such, @julikhris/astro-fastify popularity was classified as not popular.
We found that @julikhris/astro-fastify demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.