diff --git a/packages/imagetools_3/astroViteConfigs.js b/packages/imagetools_3/astroViteConfigs.js index 8b2d327..2f7b5cc 100644 --- a/packages/imagetools_3/astroViteConfigs.js +++ b/packages/imagetools_3/astroViteConfigs.js @@ -1,12 +1,12 @@ export default { - "environment": "dev", + "environment": "build", "isSsrBuild": false, "projectBase": "", "publicDir": "C:\\Users\\zx\\Desktop\\polymech\\site2\\public\\", "rootDir": "C:\\Users\\zx\\Desktop\\polymech\\site2\\", - "mode": "dev", - "outDir": "dist", - "assetsDir": "/_astro", + "mode": "production", + "outDir": "C:\\Users\\zx\\Desktop\\polymech\\site2\\dist\\", + "assetsDir": "_astro", "sourcemap": false, "assetFileNames": "/_astro/[name]@[width].[hash][extname]" } \ No newline at end of file diff --git a/packages/imagetools_3/utils/runtimeChecks.js b/packages/imagetools_3/utils/runtimeChecks.js index 5c22c60..2be5c08 100644 --- a/packages/imagetools_3/utils/runtimeChecks.js +++ b/packages/imagetools_3/utils/runtimeChecks.js @@ -4,9 +4,7 @@ import path from "node:path"; import findCacheDir from "find-cache-dir"; import filterConfigs from "./filterConfigs.js"; import { findUpSync } from "find-up" - -import { cache_path } from "@polymech/cache" -import { get_var, DEFAULT_ROOTS } from "@polymech/commons/config" +import { get_var } from "@polymech/commons/config" import { resolve } from "@polymech/commons" import { sync as mkdir } from "@polymech/fs/dir" import { sync as exists } from "@polymech/fs/exists" diff --git a/packages/polymech/scripts/test-config-loader.ts b/packages/polymech/scripts/test-config-loader.ts deleted file mode 100644 index 1134f48..0000000 --- a/packages/polymech/scripts/test-config-loader.ts +++ /dev/null @@ -1,11 +0,0 @@ - -import { loadConfig } from '../src/app/config-loader.js'; -import { I18N_SOURCE_LANGUAGE } from "../src/app/constants.js"; - -try { - const config = loadConfig(I18N_SOURCE_LANGUAGE); - console.log('LOGGING_NAMESPACE:', config.core.logging_namespace); - console.log('SHOW_GALLERY:', config.features.show_gallery); -} catch (e) { - console.error(e); -} diff --git a/packages/polymech/src/app/config-loader.ts b/packages/polymech/src/app/config-loader.ts index 6a1f859..e1c2fd3 100644 --- a/packages/polymech/src/app/config-loader.ts +++ b/packages/polymech/src/app/config-loader.ts @@ -41,11 +41,18 @@ function deepMerge(target: any, source: any): any { return result; } +const configCache = new Map(); + export function loadConfig( locale: string = I18N_SOURCE_LANGUAGE, config: string = LIBRARY_CONFIG_PATH, schema: z.ZodType = appConfigSchema, ): AppConfig { + const cacheKey = `${locale}:${config}`; + if (configCache.has(cacheKey)) { + return configCache.get(cacheKey)!; + } + // 1. Load Library Config (Defaults) let rawLibraryContent: string; try { @@ -98,6 +105,6 @@ export function loadConfig( // @todo 6. Validate // const result = schema.parse(mergedConfig); - write('./app-c2.json', JSON.stringify(mergedConfig)); + configCache.set(cacheKey, mergedConfig); return mergedConfig; } diff --git a/packages/polymech/src/app/config.ts b/packages/polymech/src/app/config.ts index b05140c..6fc2619 100644 --- a/packages/polymech/src/app/config.ts +++ b/packages/polymech/src/app/config.ts @@ -1,14 +1,16 @@ import * as path from 'path' + +export const I18N_SOURCE_LANGUAGE = 'en' + import { IMAGE_PRESET, E_BROADBAND_SPEED } from "./network.js" import { resolve, template } from '@polymech/commons' import { sync as read } from '@polymech/fs/read' import { sanitizeUri } from 'micromark-util-sanitize-uri' import { loadConfig } from './config-loader.js' -export const I18N_SOURCE_LANGUAGE = 'en' // Load config -const config = loadConfig(I18N_SOURCE_LANGUAGE) +const config = loadConfig() export const OSR_ROOT = () => path.resolve(resolve(config.core.osr_root)) export const FILE_SERVER_DEV = config.dev.file_server diff --git a/packages/polymech/src/app/network.ts b/packages/polymech/src/app/network.ts index 7d7cb5c..ce498fa 100644 --- a/packages/polymech/src/app/network.ts +++ b/packages/polymech/src/app/network.ts @@ -1,4 +1,6 @@ import { z } from "zod" +import { loadConfig } from './config-loader.js' +const config = loadConfig() ///////////////////////////////////////////// // // Optimizations @@ -24,11 +26,9 @@ const imagesSchema = z.object({ type Images = z.infer; -import { loadConfig } from './config-loader.js' -import { I18N_SOURCE_LANGUAGE } from "./config.js" -// Load config -const config = loadConfig(I18N_SOURCE_LANGUAGE) + + export const IMAGE_PRESET: Images = { diff --git a/packages/polymech/src/base/index.ts b/packages/polymech/src/base/index.ts index 1ad909d..6f9c938 100644 --- a/packages/polymech/src/base/index.ts +++ b/packages/polymech/src/base/index.ts @@ -34,17 +34,7 @@ export const render = async (string) => { const html = `${unescapeHTML(string)}` return createComponent(() => renderTemplate(html as any, [])) } -/* -export const component = async (str: string = "", locale, data = {}) => { - const content = await translate( - (str || "").trim(), - I18N_SOURCE_LANGUAGE, - locale - ) - const markup = ((await renderMarkup(content, data)) as any) || { html: "" } - return await render(markup.html) -} -*/ + export const item_defaults = async (itemDir) => { return await findUp('defaults.json', { stopAt: PRODUCT_ROOT(), diff --git a/packages/polymech/src/components/MasonryGallery.astro b/packages/polymech/src/components/MasonryGallery.astro index 99a661e..4fa1ea4 100644 --- a/packages/polymech/src/components/MasonryGallery.astro +++ b/packages/polymech/src/components/MasonryGallery.astro @@ -3,7 +3,7 @@ import { Img } from "imagetools/components"; import { globBase, pathInfo } from "@polymech/commons"; import Translate from "./i18n.astro"; -import { IMAGE_SETTINGS } from "../app/config.js"; +import { IMAGE_SETTINGS } from "../app/config.js"; import path from "node:path"; import { glob } from 'glob'; import { extractImageMetadata, groupByYear, groupByMonth, GroupInfo } from "../base/media"; @@ -57,16 +57,16 @@ const { } = Astro.props; const mergedGallerySettings = { - SIZES_REGULAR: gallerySettings.SIZES_REGULAR || IMAGE_SETTINGS.GALLERY.SIZES_REGULAR, - SIZES_THUMB: gallerySettings.SIZES_THUMB || IMAGE_SETTINGS.GALLERY.SIZES_THUMB, - SHOW_TITLE: gallerySettings.SHOW_TITLE ?? IMAGE_SETTINGS.GALLERY.SHOW_TITLE, - SHOW_DESCRIPTION: gallerySettings.SHOW_DESCRIPTION ?? IMAGE_SETTINGS.GALLERY.SHOW_DESCRIPTION, + SIZES_REGULAR: gallerySettings.SIZES_REGULAR || IMAGE_SETTINGS.gallery.sizes_regular, + SIZES_THUMB: gallerySettings.SIZES_THUMB || IMAGE_SETTINGS.gallery.sizes_thumb, + SHOW_TITLE: gallerySettings.SHOW_TITLE ?? IMAGE_SETTINGS.gallery.show_title, + SHOW_DESCRIPTION: gallerySettings.SHOW_DESCRIPTION ?? IMAGE_SETTINGS.gallery.show_description, }; const mergedLightboxSettings = { - SIZES_LARGE: lightboxSettings.SIZES_LARGE || IMAGE_SETTINGS.LIGHTBOX.SIZES_LARGE, - SHOW_TITLE: lightboxSettings.SHOW_TITLE ?? IMAGE_SETTINGS.LIGHTBOX.SHOW_TITLE, - SHOW_DESCRIPTION: lightboxSettings.SHOW_DESCRIPTION ?? IMAGE_SETTINGS.LIGHTBOX.SHOW_DESCRIPTION, + SIZES_LARGE: lightboxSettings.SIZES_LARGE || IMAGE_SETTINGS.lightbox.sizes_large, + SHOW_TITLE: lightboxSettings.SHOW_TITLE ?? IMAGE_SETTINGS.lightbox.show_title, + SHOW_DESCRIPTION: lightboxSettings.SHOW_DESCRIPTION ?? IMAGE_SETTINGS.lightbox.show_description, }; const locale = Astro.currentLocale || "en";