Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
19fca0c
feat: remove solid-js adapter package
ps73 Aug 12, 2026
d82a83a
chore: drop solid-js lint dependencies
ps73 Aug 12, 2026
8c12b37
docs: remove solid-js from the package list
ps73 Aug 12, 2026
51588cd
chore: remove solid-js commit scope
ps73 Aug 12, 2026
a0a5747
fix(core): read Intl formatter caches with the key they are written with
ps73 Aug 12, 2026
ac774c1
Merge branch 'worktree-agent-af1f03e8786db84a5' into worktree-agent-a…
ps73 Aug 12, 2026
62b25ec
test(react): add vitest harness and useIntl/Translate tests
ps73 Aug 12, 2026
29d88d5
test(preact): add vitest harness and useIntl/Translate tests
ps73 Aug 12, 2026
ac90142
chore: add root test and lint:all scripts
ps73 Aug 12, 2026
a6f686b
ci: run lint and tests for all packages on supported Node versions
ps73 Aug 12, 2026
970254c
fix(react): render Translate correctly for zero count and number
ps73 Aug 12, 2026
0f2a901
fix(preact): render Translate correctly for zero count and number
ps73 Aug 12, 2026
ad1e1ab
fix(core): point exports types at the emitted declaration files
ps73 Aug 12, 2026
48c2441
fix(core): exclude vite-env.d.ts from the tsup entry glob
ps73 Aug 12, 2026
25e3210
chore(core): drop the unused vite library build
ps73 Aug 12, 2026
5deaf59
fix(react): order exports conditions with types first
ps73 Aug 12, 2026
3a26fc1
fix(preact): order exports conditions with types first
ps73 Aug 12, 2026
49bd556
fix(preact): emit type declarations for useIntl
ps73 Aug 12, 2026
c03760d
perf(react): shrink Translate guards
ps73 Aug 12, 2026
308c270
perf(preact): shrink Translate guards
ps73 Aug 12, 2026
a616fb5
fix(react): point require at the CJS build
ps73 Aug 12, 2026
98ffdf0
fix(preact): point require at the CJS build
ps73 Aug 12, 2026
f5abd18
docs: add advisor audit record and implementation plans
ps73 Aug 12, 2026
365bbbb
fix(react): annotate useIntl return type
ps73 Aug 12, 2026
f7628ff
fix(react): use explicit extensions in the entry re-exports
ps73 Aug 12, 2026
0fd03c6
fix(preact): use explicit extensions in the entry re-exports
ps73 Aug 12, 2026
04343df
fix(react): split types conditions for import and require
ps73 Aug 12, 2026
375d2ac
fix(preact): split types conditions for import and require
ps73 Aug 12, 2026
f37d4c7
docs: record plan 008 and close three deferred findings
ps73 Aug 12, 2026
0f68590
chore: add publint and attw as devDependencies
ps73 Aug 13, 2026
fc3330c
chore: add a bundle-size budget check
ps73 Aug 13, 2026
f95e054
chore: add publint and attw scripts
ps73 Aug 13, 2026
30d2a79
ci: enforce package metadata and bundle size
ps73 Aug 13, 2026
763142a
fix: make scripts/bundle-size.mjs actually reachable by lint:all
ps73 Aug 13, 2026
bd386af
docs: record plan 009 and the CI gates it added
ps73 Aug 13, 2026
05ddff1
fix(core): use the zero plural entry when count is 0
ps73 Aug 15, 2026
5afc2ca
docs: record plan 010, the zero plural key fix
ps73 Aug 15, 2026
b841cc6
chore: gitignore agent scratch and record plan 011
ps73 Aug 15, 2026
6829df1
fix(core): guard change() against lost updates and make mount() re-en…
ps73 Aug 15, 2026
2cc4f9d
docs: record plan 011 and close the last two core correctness findings
ps73 Aug 15, 2026
ffc8803
ci: build before running tests
ps73 Aug 15, 2026
7f5fdba
docs: record plan 012, the CI build-before-test fix
ps73 Aug 15, 2026
e910640
fix(core): treat empty strings as present values
ps73 Aug 15, 2026
ec3baf4
fix(core): allow mount() to be retried after a failed load
ps73 Aug 15, 2026
5f63bd1
docs: fix stale "removed in the next release" wording
ps73 Aug 15, 2026
6a44efb
docs: record plan 013, from external review of PR #7
ps73 Aug 15, 2026
fc3f699
ci: match branch names containing a slash
ps73 Aug 15, 2026
d5b2d5f
chore: publish the canonical repository URL
ps73 Aug 15, 2026
6bfde93
docs: record plan 014, CI branch filter and repository URL
ps73 Aug 15, 2026
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
28 changes: 22 additions & 6 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -70,19 +70,35 @@ module.exports = {
},

{
files: ['packages/solid-js/**/*.ts', 'packages/solid-js/**/*.tsx'],
files: ['**/*.config.*'],

extends: [
'@gridventures/eslint-config-solid-js/typescript',
'@gridventures/eslint-config-base/prettier',
],
rules: {
'import/no-extraneous-dependencies': 'off',
},
},

{
files: ['**/*.config.*'],
// Standalone build/check scripts: they print their results (that's
// the point), their tooling deps are correctly devDependencies, and
// sequential awaits in a loop are intentional (measuring bundles one
// at a time keeps esbuild's output from interleaving).
files: ['scripts/**/*.mjs'],

rules: {
'no-console': 'off',
'import/no-extraneous-dependencies': 'off',
'no-await-in-loop': 'off',
},
},

{
// Testing Library's `screen` export shadows the browser global of the
// same name; test files legitimately import it, so relax the rule
// only here rather than for the whole codebase.
files: ['packages/*/tests/**'],

rules: {
'no-shadow': 'off',
},
},
],
Expand Down
84 changes: 57 additions & 27 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,68 @@
name: Run unit tests
name: CI

on:
push:
branches: ['*']
branches: ['**']
pull_request:
branches: ['*']
branches: ['**']

jobs:
build:
name: 'Run tests'
test:
name: Lint & test (node ${{ matrix.node-version }})
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
node-version: [16, 18, 20, 21]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [20, 22, 24]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'

- name: Install
run: npm ci

- name: Build
run: npm run build

- name: Lint
run: npm run lint:all

- name: Test
run: npm test

package:
name: Package & size checks
runs-on: ubuntu-latest

steps:
- name: checkout
uses: actions/checkout@v4
- name: restore caches
uses: actions/cache@v2
with:
path: |
./node_modules
./.coverage
./.eslintcache
key: ${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('package-lock.json') }}
- name: Run tests
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm install && cd packages/core && npm run coverage
# - name: Publish code coverage
# uses: paambaati/codeclimate-action@v3.0.0
# env:
# CC_TEST_REPORTER_ID: ${{ secrets.CODE_CLIMATE_REPORTER_ID }}
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24
cache: 'npm'

- name: Install
run: npm ci

- name: Build
run: npm run build

- name: Lint package manifests
run: npm run publint

- name: Check type resolution
run: npm run attw

- name: Check bundle size budget
run: npm run size
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ uploads/*
!uploads/.init

.husky/_

# Claude Code agent scratch (worktrees, session state)
.claude/
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@ A tiny library to translate or transform strings, dates and numbers based on nat
- [@tiny-intl/core](./packages/core) ![Core Size](https://deno.bundlejs.com/badge?q=@tiny-intl/core&treeshake=%5B*%5D)
- [@tiny-intl/react](./packages/react) ![React Adapter Size](https://deno.bundlejs.com/badge?q=@tiny-intl/react&treeshake=%5B*%5D&config=%7B%22esbuild%22:%7B%22external%22:%5B%22react%22%5D%7D%7D)
- [@tiny-intl/preact](./packages/preact) ![Preact Adapter Size](https://deno.bundlejs.com/badge?q=@tiny-intl/preact&treeshake=%5B*%5D&config=%7B%22esbuild%22:%7B%22external%22:%5B%22preact%22,%22preact/compat%22%5D%7D%7D)
- [@tiny-intl/solid](./packages/solid) ![Solid Adater Size](https://deno.bundlejs.com/badge?q=@tiny-intl/solid-js&treeshake=%5B*%5D&config=%7B%22esbuild%22:%7B%22external%22:%5B%22solid-js%22%5D%7D%7D)

> [!NOTE]
> `@tiny-intl/solid-js` has been removed. Published versions up
> to 1.2.0 remain installable from npm but are no longer maintained.
2 changes: 1 addition & 1 deletion commitlint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
// If you want to implement custom scopes uncomment this
rules: {
'scope-enum': async () => {
return [2, 'always', ['core', 'react', 'solid-js', 'preact']];
return [2, 'always', ['core', 'react', 'preact']];
},
},
};
Loading
Loading