@jcayzac/astro-build-cache
TypeScript icon, indicating that this package has built-in type declarations

0.1.10 • Public • Published

@jcayzac/astro-build-cache

This module provides a simple build cache for artifacts you may be generating during an Astro build.

As with Astro's own build artifacts, the cache is stored under node_modules/.astro where it can be easily ignored by version control systems and cached by cloud providers.

$ ls -1 node_modules/.astro/
assets
build-cache.development     # dev cache
build-cache.development-shm
build-cache.development-wal
build-cache.production      # prod cache
build-cache.production-shm
build-cache.production-wal
bundle
chunks
content
data-store.json

To clear the cache, simply delete node_modules/.astro/build-cache.*.

Installation

# pnpm
pnpm add @jcayzac/astro-build-cache

# bun
bunx add @jcayzac/astro-build-cache

# npm
npx add @jcayzac/astro-build-cache

# yarn
yarn add @jcayzac/astro-build-cache

# deno
deno add npm:@jcayzac/astro-build-cache

Usage

import { Cache } from '@jcayzac/astro-build-cache'

// Create a cache instance. Name is optional. Values are scoped by name.
const { cached } = new Cache('name')

// Now you can get values, with cache support, from anywhere.
const value = cached<Uint8Array>(
  // keyable material
  {
    format: 'png',
    options,
    fonts,
    element: serializeJsx(node),
  },
  // generator
  async () =>
  new Resvg(
    (await satori(node, options)),
    {
      fitTo: {
          mode: 'width',
          value: options.width,
      },
    },
  )
    .render()
    .asPng(),
)

[!TIP] To avoid any build error when using this module, you should add it to the list of externalized packages:

// astro.config.mjs
export default defineConfig({
  /* ...other options... */
  vite: {
    build: {
      rollupOptions: {
        external: [
          '@jcayzac/astro-build-cache',
        ],
      },
    }
  },
})

Like it? Buy me a coffee!

If you like anything here, consider buying me a coffee using one of the following platforms:

GitHub Sponsors Revolut Wise Ko-Fi PayPal

Package Sidebar

Install

npm i @jcayzac/astro-build-cache

Weekly Downloads

10

Version

0.1.10

License

MIT

Unpacked Size

11.5 kB

Total Files

7

Last publish

Collaborators

  • jcayzac