@stacksjs/server 0.72.57 → 0.72.60
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/dist/imports.js +2 -1
- package/package.json +5 -5
package/dist/imports.js
CHANGED
|
@@ -6,4 +6,5 @@ export * from './models'
|
|
|
6
6
|
export * from './jobs'
|
|
7
7
|
export * from './controllers'
|
|
8
8
|
`;await Bun.write(`${outputDir}/index.ts`,combinedContent);const globalsPath=`${outputDir}/globals.ts`;await generateGlobalsScript([functionsPath],globalsPath,`${outputDir}/index.ts`);log.debug("Auto-import files generated successfully")}export function initiateImports(){const functionsPath=path.resourcesPath("functions"),defaultFunctionsPath=frameworkDefaultsDir("functions"),userModelsPath=path.userModelsPath(),defaultModelDirs=resolveDefaultModelDirs(),[defaultsRoot,...enabledSubdirs]=defaultModelDirs,userJobsPath=path.userJobsPath(),userControllersPath=path.userControllersPath(),defaultControllersPath=frameworkDefaultsDir("app/Controllers"),defineModelExports=[...scanDefineModelExports(userModelsPath),...defaultsRoot?scanDefineModelExports(defaultsRoot,{recursive:!1}):[],...enabledSubdirs.flatMap((d)=>scanDefineModelExports(d))],jobExports=scanDefineModelExports(userJobsPath),seen=new Set,uniqueDefineModelExports=defineModelExports.filter((exp)=>{if(seen.has(exp.name))return!1;seen.add(exp.name);return!0}),dtsDir=dirname(path.storagePath("framework/types/server-auto-imports.d.ts")),defineModelImports=uniqueDefineModelExports.map((exp)=>({from:`./${relative(dtsDir,exp.file).replace(/\\/g,"/").replace(/\.ts$/,"")}`,name:"default",as:exp.name})),jobImports=jobExports.map((exp)=>({from:`./${relative(dtsDir,exp.file).replace(/\\/g,"/").replace(/\.ts$/,"")}`,name:"default",as:exp.name})),controllerExports=[...scanDefineModelExports(userControllersPath),...defaultControllersPath?scanDefineModelExports(defaultControllersPath):[]],seenControllers=new Set,controllerImports=controllerExports.filter((exp)=>{if(seenControllers.has(exp.name))return!1;seenControllers.add(exp.name);return!0}).map((exp)=>({from:`./${relative(dtsDir,exp.file).replace(/\\/g,"/").replace(/\.ts$/,"")}`,name:"default",as:exp.name})),options={dts:path.storagePath("framework/types/server-auto-imports.d.ts"),imports:[...primitiveAutoImportEntries(),...defineModelImports,...jobImports,...controllerImports],dirs:existingDirs([functionsPath,defaultFunctionsPath]),eslint:{enabled:!0,filepath:path.storagePath("framework/server-auto-imports.json")}};plugin(autoImports(options));generateAutoImportFiles().catch((err)=>{console.error("[Server] Failed to generate auto-import files:",err)})}export async function generateServerAutoImportTypes(){const userModelsPath=path.userModelsPath(),defaultModelsPath=frameworkDefaultsDir("app/Models"),modelExports=[...scanDefineModelExports(userModelsPath),...defaultModelsPath?scanDefineModelExports(defaultModelsPath):[]],jobExports=scanDefineModelExports(path.userJobsPath()),defaultControllersPath=frameworkDefaultsDir("app/Controllers"),controllerExports=[...scanDefineModelExports(path.userControllersPath()),...defaultControllersPath?scanDefineModelExports(defaultControllersPath):[]],seen=new Set,valueExports=[...modelExports,...jobExports,...controllerExports].filter((exp)=>!GLOBAL_SHADOW_BLOCKLIST.has(exp.name)).filter((exp)=>{if(seen.has(exp.name))return!1;seen.add(exp.name);return!0}),outputPath=path.storagePath("framework/types/server-auto-imports.d.ts"),outputDir=dirname(outputPath),declaredValues=new Set(valueExports.map((exp)=>exp.name)),lines=["// Generated by Stacks server auto-imports","// This file is regenerated automatically when the API starts.","export {}","declare global {"];for(const{from,name,as}of primitiveAutoImportEntries())if(!declaredValues.has(as))lines.push(` const ${as}: typeof import('${from}')['${name}']`);for(const exp of valueExports){const importPath=relative(outputDir,exp.file).replace(/\\/g,"/").replace(/\.ts$/,""),relativePath=importPath.startsWith(".")?importPath:`./${importPath}`;lines.push(` const ${exp.name}: typeof import('${relativePath}')['default']`)}lines.push("}","");await Bun.write(outputPath,lines.join(`
|
|
9
|
-
`))
|
|
9
|
+
`));const globals={};for(const{as}of primitiveAutoImportEntries())if(!declaredValues.has(as))globals[as]=!0;for(const exp of valueExports)globals[exp.name]=!0;await Bun.write(path.storagePath("framework/server-auto-imports.json"),`${JSON.stringify({globals:Object.fromEntries(Object.keys(globals).sort().map((k)=>[k,!0]))},null,2)}
|
|
10
|
+
`)}export async function injectGlobalAutoImports(){if(globalThis.__stacksAutoImportsInjected)return;globalThis.__stacksAutoImportsInjected=!0;const errors=[],importWithTimeout=async(pkg)=>{return Promise.race([import(pkg),new Promise((_,reject)=>setTimeout(()=>reject(Error(`auto-import timed out: ${pkg}`)),4000))])};await Promise.all(primitiveModules.map(async([pkg,names])=>{try{const mod=await importWithTimeout(pkg);for(const name of names)if(mod[name]!==void 0)globalThis[name]=mod[name]}catch(err){errors.push(err)}}));try{const{ensureLocalesLoaded}=await import("@stacksjs/i18n");await ensureLocalesLoaded()}catch(err){errors.push(err)}const barrels=["functions","models","jobs","controllers"],injected=[];for(const barrel of barrels){const barrelPath=path.storagePath(`framework/auto-imports/${barrel}.ts`);if(!existsSync(barrelPath))continue;try{const mod=await import(barrelPath);Object.assign(globalThis,mod);injected.push(barrel)}catch(err){log.warn(`[auto-imports] ${barrel}.ts failed to load, so nothing it exports is available. Views and actions referencing them will throw "is not defined". Cause: ${err.message}`)}}if(!injected.includes("models")&&existsSync(path.storagePath("framework/auto-imports/models.ts")))log.warn("[auto-imports] No models were injected. Every model reference in stx views and actions will be undefined.");try{const{registerAppListeners}=await import("@stacksjs/events");await registerAppListeners()}catch(err){errors.push(err)}if(errors.length)for(const err of errors)console.warn("[auto-imports]",err.message)}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@stacksjs/server",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.72.
|
|
5
|
+
"version": "0.72.60",
|
|
6
6
|
"description": "Local development and production-ready.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"contributors": [
|
|
@@ -58,11 +58,11 @@
|
|
|
58
58
|
"prepublishOnly": "bun run build"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@stacksjs/config": "0.72.
|
|
61
|
+
"@stacksjs/config": "0.72.60",
|
|
62
62
|
"better-dx": "^0.2.24",
|
|
63
|
-
"@stacksjs/path": "0.72.
|
|
64
|
-
"@stacksjs/router": "0.72.
|
|
65
|
-
"@stacksjs/validation": "0.72.
|
|
63
|
+
"@stacksjs/path": "0.72.60",
|
|
64
|
+
"@stacksjs/router": "0.72.60",
|
|
65
|
+
"@stacksjs/validation": "0.72.60"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"bun-plugin-auto-imports": "^0.4.0"
|