Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/publish-cache-server.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Publish @nimpl/cache-server

on:
push:
tags:
- nimpl/cache-server@*

jobs:
publish:
runs-on: ubuntu-latest

steps:
- uses: olegtarasov/get-tag@v2.1.3
id: tagName
with:
tagRegex: "nimpl/cache-server@(?<version>.*)"

- name: Checkout code
uses: actions/checkout@v5

- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "24"

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Install deps and Build package
run: |
pnpm install
pnpm run build
cp ../../LICENSE .
working-directory: ./packages/cache-server

- name: Publish on main
if: "!contains(github.ref_name, 'canary')"
run: |
npm set //registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}
npm version --no-git-tag-version ${{steps.tagName.outputs.version}}
npm publish --access public
working-directory: ./packages/cache-server

- name: Publish on canary
if: contains(github.ref_name, 'canary')
run: |
npm set //registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}
npm version --no-git-tag-version ${{steps.tagName.outputs.version}}
npm publish --tag canary --access public
working-directory: ./packages/cache-server
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ yarn-error.log*
# typescript
*.tsbuildinfo
next-env.d.ts

# cache
.cache
12 changes: 12 additions & 0 deletions examples/external-store-server/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/* eslint-disable @typescript-eslint/no-require-imports */
// @ts-check

const { run } = require("@nimpl/cache-server");
const { CacheHandler, LruLayer, FsLayer } = require("@nimpl/cache");

const cacheHandler = new CacheHandler({
ephemeralLayer: new LruLayer(),
persistentLayer: new FsLayer(),
});

run(cacheHandler);
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"start": "node index"
},
"dependencies": {
"@nimpl/cache-adapter": "latest",
"@nimpl/cache-in-memory": "latest"
"@nimpl/cache-server": "workspace:*",
"@nimpl/cache": "workspace:*"
}
}
10 changes: 10 additions & 0 deletions examples/external-store-site/cache-handler.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// @ts-check
/* eslint-disable @typescript-eslint/no-require-imports */
const { CacheHandler, LruLayer, FetchLayer } = require("@nimpl/cache");

global.cacheHandler ||= new CacheHandler({
ephemeralLayer: new LruLayer({ ttl: 10 }),
persistentLayer: new FetchLayer(),
});

module.exports = global.cacheHandler;
11 changes: 11 additions & 0 deletions examples/external-store-site/next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
cacheMaxMemorySize: 0,
cacheHandlers: {
default: require.resolve("./cache-handler.js"),
},
cacheComponents: true,
distDir: process.env.DIST_DIR || ".next",
};

module.exports = nextConfig;
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
"lint": "next lint"
},
"dependencies": {
"@nimpl/cache-adapter": "latest",
"@nimpl/cache-in-memory": "latest",
"@nimpl/cache": "workspace:*",
"next": "16.0.10",
"react": "19.2.3",
"react-dom": "19.2.3"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import { cacheLife } from "next/cache";
import RevalidateButton from "./revalidate-button";

export default function Home() {
export default async function Home() {
"use cache";
cacheLife({ stale: 30, revalidate: 60, expire: 300 });
return (
<main>
<div>
Expand All @@ -10,5 +13,3 @@ export default function Home() {
</main>
);
}

export const dynamic = "force-static";
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
Expand All @@ -10,18 +11,24 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"checkJs": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "cache-handler.js", "test.js"],
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts",
"**/*.mts"
],
"exclude": ["node_modules"]
}
11 changes: 0 additions & 11 deletions examples/external-store/server/index.js

This file was deleted.

20 changes: 0 additions & 20 deletions examples/external-store/site/cache-handler.js

This file was deleted.

8 changes: 0 additions & 8 deletions examples/external-store/site/next.config.mjs

This file was deleted.

3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
"lint-staged": {
"*.{ts,tsx,js,jsx}": ["eslint"]
},
"resolutions": {
"@nimpl/cache-adapter>@nimpl/cache": "workspace:*"
},
"license": "MIT",
"packageManager": "pnpm@10.24.0+sha512.01ff8ae71b4419903b65c60fb2dc9d34cf8bb6e06d03bde112ef38f7a34d6904c424ba66bea5cdcf12890230bf39f9580473140ed9c946fef328b6e5238a345a"
}
Loading