diff --git a/.gitignore b/.gitignore index f3b7825..53e7358 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,linux,visualstudiocode -# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,linux,visualstudiocode +# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,linux,visualstudiocode,node +# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,linux,visualstudiocode,node ### Linux ### *~ @@ -49,6 +49,146 @@ Temporary Items # iCloud generated files *.icloud +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + ### VisualStudioCode ### .vscode/* !.vscode/settings.json @@ -94,7 +234,4 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -# End of https://www.toptal.com/developers/gitignore/api/macos,windows,linux,visualstudiocode - -# NodeJs -node_modules/ +# End of https://www.toptal.com/developers/gitignore/api/macos,windows,linux,visualstudiocode,node \ No newline at end of file diff --git a/lib/metro-ior-resolver.js b/lib/metro-ior-resolver.js index 0d7bddc..dc62dfc 100644 --- a/lib/metro-ior-resolver.js +++ b/lib/metro-ior-resolver.js @@ -31,7 +31,13 @@ const processedTypes = new Set(); /** * Remote cache configuration */ -const CACHE_TTL = 3600000; // 1 hour default TTL +// Cache TTL: Use environment variable or default to 1 hour +// Set IOR_CACHE_TTL=0 to always fetch fresh +// Set IOR_CACHE_TTL=60000 for 1 minute cache (useful during development) +const CACHE_TTL = process.env.IOR_CACHE_TTL !== undefined + ? parseInt(process.env.IOR_CACHE_TTL) + : 3600000; // 1 hour default + // Use project-local cache directory instead of temp directory to avoid watchman issues const CACHE_DIR = path.join(process.cwd(), '.ior-cache', 'remote'); @@ -102,7 +108,12 @@ function getCachedRemoteComponent(ior) { } // Check if cache entry is still valid - if (Date.now() - entry.timestamp > entry.ttl) { + if (CACHE_TTL === 0 || Date.now() - entry.timestamp > entry.ttl) { + if (CACHE_TTL === 0) { + console.log(`[IOR Resolver] Cache disabled (IOR_CACHE_TTL=0), fetching fresh: ${ior}`); + } else { + console.log(`[IOR Resolver] Cache expired for: ${ior}`); + } remoteCache.delete(ior); // Try to delete the directory (non-blocking) if (entry.directory) {