@lomray/vite-ssr-boost 2.2.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -66,7 +66,7 @@ declare class ServerConfig {
|
|
|
66
66
|
/**
|
|
67
67
|
* Default root dir
|
|
68
68
|
*/
|
|
69
|
-
protected
|
|
69
|
+
protected defaultBuildRoots: string[];
|
|
70
70
|
/**
|
|
71
71
|
* @constructor
|
|
72
72
|
*/
|
|
@@ -81,6 +81,13 @@ declare class ServerConfig {
|
|
|
81
81
|
* Initialize service
|
|
82
82
|
*/
|
|
83
83
|
static init(options?: IConfigOptions, prodOptions?: Partial<IConfigParams>): ServerConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Lookup build folder
|
|
86
|
+
*/
|
|
87
|
+
/**
|
|
88
|
+
* Lookup build folder
|
|
89
|
+
*/
|
|
90
|
+
protected getBuildDir(root?: string): string;
|
|
84
91
|
/**
|
|
85
92
|
* Make config params
|
|
86
93
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import i from"node:
|
|
1
|
+
import i from"node:fs";import t from"node:path";import s from"../helpers/plugin-config.js";import r from"./logger.js";class e{isProd;isHost;isModulePreload;isSPA;mode;vite;app;params;prodParams;logger;defaultBuildRoots=["./build","./dist"];constructor({isProd:i=!1,isHost:t=!1,isOnlyClient:s=!1,isModulePreload:r=!1,mode:e="production"},o){this.isProd=i,this.isHost=t,this.isSPA=s,this.isModulePreload=r,this.mode=e,this.prodParams={publicDir:"/client",indexFile:"/client/index.html",serverFile:"/server/server.js",host:"127.0.0.1",port:3e3,...o},this.makeParams()}static init(i={},t={}){return new e(i,t)}getBuildDir(t){for(const s of[t,...this.defaultBuildRoots])if(s&&i.existsSync(s))return s;return t??this.defaultBuildRoots[0]}makeParams(){const i=this.getPluginConfig()??{},{config:s}=this.vite??{},e=s?.root??this.getBuildDir(this.prodParams.root),o=s?.publicDir??this.prodParams.publicDir,a=new URL(import.meta.url),l=i.pluginPath??t.resolve(t.dirname(a.pathname),"../"),h=i.indexFile??this.prodParams.indexFile,d=i.serverFile??this.prodParams.serverFile,p="boolean"==typeof s?.server.host||this.isHost?"0.0.0.0":s?.server.host??this.prodParams.host,n=s?.server.port??(this.isProd?this.prodParams.port:5173);this.params={root:e,publicDir:o,pluginPath:l,indexFile:h,serverFile:d,host:p,port:n,isSPA:this.isSPA,isProd:this.isProd},this.logger=this.vite?.config.logger??new r}setVite(i){this.vite=i,this.makeParams()}setApp(i){this.app=i}getVite(){return this.vite}getApp(){return this.app}getPluginConfig(){return this.vite?s(this.vite.config):void 0}getParams(){return this.params}getLogger(){return this.logger}}export{e as default};
|
|
2
2
|
//# sourceMappingURL=server-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-config.js","sources":["../../src/services/server-config.ts"],"sourcesContent":["import path from 'node:path';\nimport type { Express } from 'express';\nimport type { Logger, ViteDevServer } from 'vite';\nimport type { IPluginConfig } from '@helpers/plugin-config';\nimport getPluginConfig from '@helpers/plugin-config';\nimport DefaultLogger from '@services/logger';\n\ninterface IConfigOptions {\n isProd?: boolean;\n isHost?: boolean;\n isOnlyClient?: boolean; // SPA mode\n isModulePreload?: boolean;\n mode?: string;\n}\n\ninterface IConfigParams {\n root: string;\n publicDir: string;\n pluginPath: string;\n isProd: boolean;\n isSPA: boolean;\n indexFile: string;\n serverFile: string;\n host: string;\n port: number;\n}\n\n/**\n * Server config\n */\nclass ServerConfig {\n /**\n * Production build\n */\n public readonly isProd: boolean;\n\n /**\n * Server host mode\n */\n public readonly isHost: boolean;\n\n /**\n * Add module preload scripts to server output\n */\n public readonly isModulePreload: boolean;\n\n /**\n * SPA mode\n */\n public readonly isSPA: boolean;\n\n /**\n * Env mode\n */\n public readonly mode: string;\n\n /**\n * Vite config - only for development\n */\n protected vite?: ViteDevServer;\n\n /**\n * Express application\n */\n protected app?: Express;\n\n /**\n * Config params\n */\n protected params: IConfigParams;\n\n /**\n * Default production params\n */\n protected prodParams: Partial<IConfigParams>;\n\n /**\n * Vite logger for dev mode or console for production\n */\n protected logger: Logger;\n\n /**\n * Default root dir\n */\n protected
|
|
1
|
+
{"version":3,"file":"server-config.js","sources":["../../src/services/server-config.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport type { Express } from 'express';\nimport type { Logger, ViteDevServer } from 'vite';\nimport type { IPluginConfig } from '@helpers/plugin-config';\nimport getPluginConfig from '@helpers/plugin-config';\nimport DefaultLogger from '@services/logger';\n\ninterface IConfigOptions {\n isProd?: boolean;\n isHost?: boolean;\n isOnlyClient?: boolean; // SPA mode\n isModulePreload?: boolean;\n mode?: string;\n}\n\ninterface IConfigParams {\n root: string;\n publicDir: string;\n pluginPath: string;\n isProd: boolean;\n isSPA: boolean;\n indexFile: string;\n serverFile: string;\n host: string;\n port: number;\n}\n\n/**\n * Server config\n */\nclass ServerConfig {\n /**\n * Production build\n */\n public readonly isProd: boolean;\n\n /**\n * Server host mode\n */\n public readonly isHost: boolean;\n\n /**\n * Add module preload scripts to server output\n */\n public readonly isModulePreload: boolean;\n\n /**\n * SPA mode\n */\n public readonly isSPA: boolean;\n\n /**\n * Env mode\n */\n public readonly mode: string;\n\n /**\n * Vite config - only for development\n */\n protected vite?: ViteDevServer;\n\n /**\n * Express application\n */\n protected app?: Express;\n\n /**\n * Config params\n */\n protected params: IConfigParams;\n\n /**\n * Default production params\n */\n protected prodParams: Partial<IConfigParams>;\n\n /**\n * Vite logger for dev mode or console for production\n */\n protected logger: Logger;\n\n /**\n * Default root dir\n */\n protected defaultBuildRoots = ['./build', './dist'];\n\n /**\n * @constructor\n */\n protected constructor(\n {\n isProd = false,\n isHost = false,\n isOnlyClient = false,\n isModulePreload = false,\n mode = 'production',\n }: IConfigOptions,\n prodParams: Partial<IConfigParams>,\n ) {\n this.isProd = isProd;\n this.isHost = isHost;\n this.isSPA = isOnlyClient;\n this.isModulePreload = isModulePreload;\n this.mode = mode;\n this.prodParams = {\n publicDir: '/client', // default for production,\n indexFile: '/client/index.html',\n serverFile: '/server/server.js',\n host: '127.0.0.1',\n port: 3000,\n ...prodParams,\n };\n\n this.makeParams();\n }\n\n /**\n * Initialize service\n */\n public static init(\n options: IConfigOptions = {},\n prodOptions: Partial<IConfigParams> = {},\n ): ServerConfig {\n return new ServerConfig(options, prodOptions);\n }\n\n /**\n * Lookup build folder\n */\n protected getBuildDir(root?: string): string {\n for (const dir of [root, ...this.defaultBuildRoots]) {\n if (dir && fs.existsSync(dir)) {\n return dir;\n }\n }\n\n return root ?? this.defaultBuildRoots[0];\n }\n\n /**\n * Make config params\n */\n protected makeParams(): void {\n const pluginConfig = (this.getPluginConfig() ?? {}) as Partial<IPluginConfig>;\n const { config } = this.vite ?? {};\n\n const root = config?.root ?? this.getBuildDir(this.prodParams.root);\n const publicDir = config?.publicDir ?? this.prodParams.publicDir!;\n const dirInfo = new URL(import.meta.url);\n const pluginPath =\n pluginConfig.pluginPath ?? path.resolve(path.dirname(dirInfo.pathname), '../');\n const indexFile = pluginConfig.indexFile ?? this.prodParams.indexFile!;\n const serverFile = pluginConfig.serverFile ?? this.prodParams.serverFile!;\n const host =\n typeof config?.server.host === 'boolean' || this.isHost\n ? '0.0.0.0'\n : config?.server.host ?? this.prodParams.host!;\n const port = config?.server.port ?? (this.isProd ? this.prodParams.port! : 5173);\n\n this.params = {\n root,\n publicDir,\n pluginPath,\n indexFile,\n serverFile,\n host,\n port,\n isSPA: this.isSPA,\n isProd: this.isProd,\n };\n this.logger = this.vite?.config.logger ?? new DefaultLogger();\n }\n\n /**\n * Set vite server\n */\n public setVite(vite: ViteDevServer): void {\n this.vite = vite;\n\n this.makeParams();\n }\n\n /**\n * Set express server\n */\n public setApp(express: Express): void {\n this.app = express;\n }\n\n /**\n * Return vite dev server\n * NOTE: only on development mode\n */\n public getVite(): ViteDevServer | undefined {\n return this.vite;\n }\n\n /**\n * Return express server\n */\n public getApp(): Express | undefined {\n return this.app;\n }\n\n /**\n * return plugin config\n * NOTE: only on development mode\n */\n public getPluginConfig(): IPluginConfig | undefined {\n return this.vite ? getPluginConfig(this.vite.config) : undefined;\n }\n\n /**\n * Return config params\n */\n public getParams(): IConfigParams {\n return this.params;\n }\n\n /**\n * Get server logger\n */\n public getLogger(): Logger {\n return this.logger;\n }\n}\n\nexport default ServerConfig;\n"],"names":["ServerConfig","isProd","isHost","isModulePreload","isSPA","mode","vite","app","params","prodParams","logger","defaultBuildRoots","constructor","isOnlyClient","this","publicDir","indexFile","serverFile","host","port","makeParams","static","options","prodOptions","getBuildDir","root","dir","fs","existsSync","pluginConfig","getPluginConfig","config","dirInfo","URL","url","pluginPath","path","resolve","dirname","pathname","server","DefaultLogger","setVite","setApp","express","getVite","getApp","undefined","getParams","getLogger"],"mappings":"sHA+BA,MAAMA,EAIYC,OAKAC,OAKAC,gBAKAC,MAKAC,KAKNC,KAKAC,IAKAC,OAKAC,WAKAC,OAKAC,kBAAoB,CAAC,UAAW,UAK1CC,aACEX,OACEA,GAAS,EAAKC,OACdA,GAAS,EAAKW,aACdA,GAAe,EAAKV,gBACpBA,GAAkB,EAAKE,KACvBA,EAAO,cAETI,GAEAK,KAAKb,OAASA,EACda,KAAKZ,OAASA,EACdY,KAAKV,MAAQS,EACbC,KAAKX,gBAAkBA,EACvBW,KAAKT,KAAOA,EACZS,KAAKL,WAAa,CAChBM,UAAW,UACXC,UAAW,qBACXC,WAAY,oBACZC,KAAM,YACNC,KAAM,OACHV,GAGLK,KAAKM,YACN,CAKMC,YACLC,EAA0B,GAC1BC,EAAsC,CAAA,GAEtC,OAAO,IAAIvB,EAAasB,EAASC,EAClC,CAKSC,YAAYC,GACpB,IAAK,MAAMC,IAAO,CAACD,KAASX,KAAKH,mBAC/B,GAAIe,GAAOC,EAAGC,WAAWF,GACvB,OAAOA,EAIX,OAAOD,GAAQX,KAAKH,kBAAkB,EACvC,CAKSS,aACR,MAAMS,EAAgBf,KAAKgB,mBAAqB,CAAE,GAC5CC,OAAEA,GAAWjB,KAAKR,MAAQ,CAAA,EAE1BmB,EAAOM,GAAQN,MAAQX,KAAKU,YAAYV,KAAKL,WAAWgB,MACxDV,EAAYgB,GAAQhB,WAAaD,KAAKL,WAAWM,UACjDiB,EAAU,IAAIC,gBAAgBC,KAC9BC,EACJN,EAAaM,YAAcC,EAAKC,QAAQD,EAAKE,QAAQN,EAAQO,UAAW,OACpEvB,EAAYa,EAAab,WAAaF,KAAKL,WAAWO,UACtDC,EAAaY,EAAaZ,YAAcH,KAAKL,WAAWQ,WACxDC,EAC2B,kBAAxBa,GAAQS,OAAOtB,MAAsBJ,KAAKZ,OAC7C,UACA6B,GAAQS,OAAOtB,MAAQJ,KAAKL,WAAWS,KACvCC,EAAOY,GAAQS,OAAOrB,OAASL,KAAKb,OAASa,KAAKL,WAAWU,KAAQ,MAE3EL,KAAKN,OAAS,CACZiB,OACAV,YACAoB,aACAnB,YACAC,aACAC,OACAC,OACAf,MAAOU,KAAKV,MACZH,OAAQa,KAAKb,QAEfa,KAAKJ,OAASI,KAAKR,MAAMyB,OAAOrB,QAAU,IAAI+B,CAC/C,CAKMC,QAAQpC,GACbQ,KAAKR,KAAOA,EAEZQ,KAAKM,YACN,CAKMuB,OAAOC,GACZ9B,KAAKP,IAAMqC,CACZ,CAMMC,UACL,OAAO/B,KAAKR,IACb,CAKMwC,SACL,OAAOhC,KAAKP,GACb,CAMMuB,kBACL,OAAOhB,KAAKR,KAAOwB,EAAgBhB,KAAKR,KAAKyB,aAAUgB,CACxD,CAKMC,YACL,OAAOlC,KAAKN,MACb,CAKMyC,YACL,OAAOnC,KAAKJ,MACb"}
|