Skip to content
PluginStats

@ata-project/unplugin weekly downloads statistics

By ata-project · npm · Webpack plugins

Build-time JSON Schema for Vite, Webpack, Rollup, Rolldown, esbuild and Rspack. compileAway takes the runtime compiler out of the bundle.

View on npm Fresh · Oct 17, 2026

@ata-project/unplugin has 174 recorded weekly downloads on npm, a decrease of 41.8% over the past 30 days.

It ranks #1616 of 2,256 tracked npm listings by weekly downloads.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
174
Official API · Oct 17, 2026
7-day growth
+216%
+119 weekly downloads
30-day growth
-41.8%
-125 weekly downloads
90-day growth
—
Insufficient history
Rank
#1616
Among tracked npm listings

About @ata-project/unplugin

@ata-project/unplugin

Compiles JSON Schema files into self-contained ata-validator modules at build time, with TypeScript declarations, in Vite, Webpack, Rollup, Rolldown, esbuild and Rspack. One plugin, built on unplugin.

The generated module imports nothing. A small schema compiles to about 1.3 KB gzipped and a ten-field one to about 2.6 KB, full error detail included, on ata-validator 1.36.0; the module exports validate, isValid and the inferred type, and runs anywhere plain JavaScript runs.

Schemas can be authored as .json, .js or .ts.

It also compiles away new Validator(schema) in your own code wherever the schema is known at build time and the result is the same, so the runtime compiler stays out of the bundle: for the test entry, 122.5 KB gzipped becomes 16.7 KB. See compileAway.

Install

ata-validator is a peer dependency and is only used at build time.

Setup

Vite:

Webpack:

Rollup:

esbuild:

Rspack:

Rolldown:

Next.js uses Webpack, so the Webpack entry goes into next.config.js:

Turbopack has no plugin interface this could attach to. Run the compile as a step before the build instead: ata build 'schemas/**/*.schema.json' from ata-validator's CLI, or the compile() function below in a script.

The .schema.json convention

Name a schema user.schema.json and import a typed validator by its name:

The plugin writes user.schema.js and user.schema.d.ts next to the schema. The default export is the validate function; validate, isValid and the inferred type are also named exports. The type name comes from the schema's title, then its $id, then the file name.

Add the generated files to .gitignore:

Other sources (.json without the .schema suffix, .js, .ts) produce .validator.mjs and .validator.d.mts.

Options

| Option | Default | Description |

| schemas | **/*.schema.json | Glob or globs, relative to the root. node_modules is skipped. | | outDir | next to each schema | Directory for generated files, mirroring the source layout. | | format | 'esm' | 'esm' or 'cjs'. | | abortEarly | false | Emit the smaller validator that stops at the first failure. | | types | true | Emit a .d.ts next to each validator. | | nameFromFile | file name in PascalCase | Type name for schemas without title or $id. | | root | from the bundler | Where the globs resolve from. Vite's root, Webpack's and Rspack's context and esbuild's absWorkingDir are read; Rollup and Rolldown need it passed. | | alias | Vite's resolve.alias | Import aliases inside .ts schema files. tsconfig paths work without configuration. | | compileAway | true | Replace new Validator(schema) in your code with a validator compiled at build time, where that gives the same results. See below. Needs ata-validator 1.36.0; with an older version the runtime stays, and a warning is printed only if you set the option yourself. | | sharedErrors | 'auto' | Where a compiled validator's error detail comes from. A compact module carries its verdict and its schema and takes its errors from ata-validator/error-runtime, which the bundle holds once. 'auto' scans the project's sources at build start (skipping node_modules, build output and test files), adds up what every replaceable call would save, and uses the runtime when the total pays for it; a file the scan did not see decides alone, which takes a schema of several hundred properties. Measured on projects of 1 to 40 SchemaStore schemas, no bundle came out bigger than with false, and 40 schemas went from 724 KB to 405 KB gzipped, on ata-validator 1.51.0. true writes every schema that allows it compact, and false never. The scan adds little to the build, measured in separate processes with esbuild: 84 to 85 ms for three validators, 681 to 715 ms for forty. Errors and verdicts are the same either way; a rejected document costs more, since its errors come from an interpreted walk. Needs ata-validator 1.50.0; with an older one every module stays self-contained, as before. |

compileAway: keep new Validator, drop the compiler

Code written against the runtime API is compiled at build time without being changed. This is on by default; compileAway: false turns it off.

The plugin puts a compiled validator in place of the new Validator(...) call, and once nothing else in the file uses the ata-validator import, the import goes with it, so the runtime compiler is not in the bundle. For the three-schema entry in test/fixtures/compile-away, one of them with defaults, a minified Vite library build is 122.5 KB gzipped without it and 16.7 KB with it (gzip level 9), on ata-validator 1.39.2. Across the 977 schemas of SchemaStore, 725 can be compiled away this way.

Where the code only ever calls isValidObject() or isValidJSON(), the plugin uses a smaller wrapper without the error machinery (needs ata-validator 1.40.0): a small app that only asks for a boolean bundles to 2.6 KB gzipped, against 12.1 KB with the full wrapper and 102.0 KB for the runtime, on 0.5.0 with ata-validator 1.40.0.

The replacement answers validate(), isValidObject(), validateJSON() and isValidJSON() as a Validator with default options does: the same verdicts, defaults filled in, data on success, and the same errors, enriched the same way, since they come from the same code in ata-validator. ata-validator's own tests hold that over every case of the official JSON Schema test suite and over seeded schemas with defaults at every depth.

A call is replaced only when all of this is true, and left to the runtime otherwise:…

Description from the npm listing.

  • unplugin
  • vite-plugin
  • webpack-plugin
  • rollup-plugin
  • esbuild-plugin
  • rspack-plugin
  • json-schema
  • ata-validator
  • typescript
  • codegen

Where @ata-project/unplugin sits in the listing

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

All npm2,256 listings · 113 pages · page 81, #17 (overall #1617)
All npm: every listing in weekly downloads order
PNG SVG
Webpack plugins247 listings · 13 pages · page 5, #11 (overall #91)
Webpack plugins: every listing in weekly downloads order
PNG SVG

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@ata-project/unplugin weekly downloads on npm, last 90 days: 174 weekly downloads as of Oct 17, 2026.@ata-project/unpluginWeekly downloads on npm · Last 90 days174downloads / week02004006008001KJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
@ata-project/unplugin weekly downloads on npm, last 90 days: 174 weekly downloads as of Oct 17, 2026.
PNG SVG

7/30/90-day growth

@ata-project/unplugin weekly downloads growth on npm: +216% over 7 days, -41.8% over 30 days, 90-day growth unavailable.@ata-project/unpluginWeekly downloads growth on npm174downloads / week now7-day growth+119 weekly downloads+216%30-day growth-125 weekly downloads-41.8%90-day growth+174 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@ata-project/unplugin weekly downloads growth on npm: +216% over 7 days, -41.8% over 30 days, 90-day growth unavailable.
PNG SVG

Ranking history

@ata-project/unplugin npm ranking history: currently #1616 (by weekly downloads).@ata-project/unpluginnpm ranking · by weekly downloads · Last 90 days#1616current rank#1608#1610#1612#1614#1616#1618Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
@ata-project/unplugin npm ranking history: currently #1616 (by weekly downloads).
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Recent observations

Full history (121)
Recent weekly downloads observations for @ata-project/unplugin
Date (UTC)Weekly downloadsChange vs. previous
1740
174-8
182-8
190-12
2020
202+1
201+146
55-11
66-14
80-48
128-481
609-207
816-143
959—

Similar npm Webpack plugins plugins

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@ata-project/unplugin. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.