bupkis 0.18.0 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/package.json +1 -4
- package/src/assertion/assertion-types.ts +4 -4
- package/src/assertion/impl/async-parametric.ts +4 -21
- package/src/assertion/impl/sync-parametric.ts +5 -17
- package/src/expect.ts +0 -4
- package/src/guards.ts +24 -24
- package/src/internal-schema.ts +16 -32
- package/src/value-to-schema.ts +1 -1
- package/dist/assertion/assertion-async.cjs +0 -268
- package/dist/assertion/assertion-async.cjs.map +0 -1
- package/dist/assertion/assertion-async.d.cts +0 -40
- package/dist/assertion/assertion-async.d.cts.map +0 -1
- package/dist/assertion/assertion-async.d.ts +0 -40
- package/dist/assertion/assertion-async.d.ts.map +0 -1
- package/dist/assertion/assertion-async.js +0 -259
- package/dist/assertion/assertion-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.cjs +0 -132
- package/dist/assertion/assertion-standard-schema-async.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-async.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-async.js +0 -128
- package/dist/assertion/assertion-standard-schema-async.js.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.cjs +0 -141
- package/dist/assertion/assertion-standard-schema-sync.cjs.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.cts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.d.ts +0 -52
- package/dist/assertion/assertion-standard-schema-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-standard-schema-sync.js +0 -137
- package/dist/assertion/assertion-standard-schema-sync.js.map +0 -1
- package/dist/assertion/assertion-sync.cjs +0 -284
- package/dist/assertion/assertion-sync.cjs.map +0 -1
- package/dist/assertion/assertion-sync.d.cts +0 -60
- package/dist/assertion/assertion-sync.d.cts.map +0 -1
- package/dist/assertion/assertion-sync.d.ts +0 -60
- package/dist/assertion/assertion-sync.d.ts.map +0 -1
- package/dist/assertion/assertion-sync.js +0 -275
- package/dist/assertion/assertion-sync.js.map +0 -1
- package/dist/assertion/assertion-types.cjs +0 -20
- package/dist/assertion/assertion-types.cjs.map +0 -1
- package/dist/assertion/assertion-types.d.cts +0 -1086
- package/dist/assertion/assertion-types.d.cts.map +0 -1
- package/dist/assertion/assertion-types.d.ts +0 -1086
- package/dist/assertion/assertion-types.d.ts.map +0 -1
- package/dist/assertion/assertion-types.js +0 -19
- package/dist/assertion/assertion-types.js.map +0 -1
- package/dist/assertion/assertion.cjs +0 -382
- package/dist/assertion/assertion.cjs.map +0 -1
- package/dist/assertion/assertion.d.cts +0 -109
- package/dist/assertion/assertion.d.cts.map +0 -1
- package/dist/assertion/assertion.d.ts +0 -109
- package/dist/assertion/assertion.d.ts.map +0 -1
- package/dist/assertion/assertion.js +0 -375
- package/dist/assertion/assertion.js.map +0 -1
- package/dist/assertion/create.cjs +0 -148
- package/dist/assertion/create.cjs.map +0 -1
- package/dist/assertion/create.d.cts +0 -85
- package/dist/assertion/create.d.cts.map +0 -1
- package/dist/assertion/create.d.ts +0 -85
- package/dist/assertion/create.d.ts.map +0 -1
- package/dist/assertion/create.js +0 -143
- package/dist/assertion/create.js.map +0 -1
- package/dist/assertion/format-assertion-failure.cjs +0 -63
- package/dist/assertion/format-assertion-failure.cjs.map +0 -1
- package/dist/assertion/format-assertion-failure.d.cts +0 -21
- package/dist/assertion/format-assertion-failure.d.cts.map +0 -1
- package/dist/assertion/format-assertion-failure.d.ts +0 -21
- package/dist/assertion/format-assertion-failure.d.ts.map +0 -1
- package/dist/assertion/format-assertion-failure.js +0 -59
- package/dist/assertion/format-assertion-failure.js.map +0 -1
- package/dist/assertion/impl/assertion-util.cjs +0 -68
- package/dist/assertion/impl/assertion-util.cjs.map +0 -1
- package/dist/assertion/impl/assertion-util.d.cts +0 -36
- package/dist/assertion/impl/assertion-util.d.cts.map +0 -1
- package/dist/assertion/impl/assertion-util.d.ts +0 -36
- package/dist/assertion/impl/assertion-util.d.ts.map +0 -1
- package/dist/assertion/impl/assertion-util.js +0 -62
- package/dist/assertion/impl/assertion-util.js.map +0 -1
- package/dist/assertion/impl/async-iterable.cjs +0 -627
- package/dist/assertion/impl/async-iterable.cjs.map +0 -1
- package/dist/assertion/impl/async-iterable.d.cts +0 -406
- package/dist/assertion/impl/async-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/async-iterable.d.ts +0 -406
- package/dist/assertion/impl/async-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/async-iterable.js +0 -624
- package/dist/assertion/impl/async-iterable.js.map +0 -1
- package/dist/assertion/impl/async-parametric.cjs +0 -423
- package/dist/assertion/impl/async-parametric.cjs.map +0 -1
- package/dist/assertion/impl/async-parametric.d.cts +0 -278
- package/dist/assertion/impl/async-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/async-parametric.d.ts +0 -278
- package/dist/assertion/impl/async-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/async-parametric.js +0 -420
- package/dist/assertion/impl/async-parametric.js.map +0 -1
- package/dist/assertion/impl/async.cjs +0 -56
- package/dist/assertion/impl/async.cjs.map +0 -1
- package/dist/assertion/impl/async.d.cts +0 -179
- package/dist/assertion/impl/async.d.cts.map +0 -1
- package/dist/assertion/impl/async.d.ts +0 -179
- package/dist/assertion/impl/async.d.ts.map +0 -1
- package/dist/assertion/impl/async.js +0 -39
- package/dist/assertion/impl/async.js.map +0 -1
- package/dist/assertion/impl/index.cjs +0 -37
- package/dist/assertion/impl/index.cjs.map +0 -1
- package/dist/assertion/impl/index.d.cts +0 -21
- package/dist/assertion/impl/index.d.cts.map +0 -1
- package/dist/assertion/impl/index.d.ts +0 -21
- package/dist/assertion/impl/index.d.ts.map +0 -1
- package/dist/assertion/impl/index.js +0 -21
- package/dist/assertion/impl/index.js.map +0 -1
- package/dist/assertion/impl/iteration-util.cjs +0 -297
- package/dist/assertion/impl/iteration-util.cjs.map +0 -1
- package/dist/assertion/impl/iteration-util.d.cts +0 -12
- package/dist/assertion/impl/iteration-util.d.cts.map +0 -1
- package/dist/assertion/impl/iteration-util.d.ts +0 -12
- package/dist/assertion/impl/iteration-util.d.ts.map +0 -1
- package/dist/assertion/impl/iteration-util.js +0 -282
- package/dist/assertion/impl/iteration-util.js.map +0 -1
- package/dist/assertion/impl/snapshot.cjs +0 -276
- package/dist/assertion/impl/snapshot.cjs.map +0 -1
- package/dist/assertion/impl/snapshot.d.cts +0 -278
- package/dist/assertion/impl/snapshot.d.cts.map +0 -1
- package/dist/assertion/impl/snapshot.d.ts +0 -278
- package/dist/assertion/impl/snapshot.d.ts.map +0 -1
- package/dist/assertion/impl/snapshot.js +0 -273
- package/dist/assertion/impl/snapshot.js.map +0 -1
- package/dist/assertion/impl/sync-basic.cjs +0 -553
- package/dist/assertion/impl/sync-basic.cjs.map +0 -1
- package/dist/assertion/impl/sync-basic.d.cts +0 -528
- package/dist/assertion/impl/sync-basic.d.cts.map +0 -1
- package/dist/assertion/impl/sync-basic.d.ts +0 -528
- package/dist/assertion/impl/sync-basic.d.ts.map +0 -1
- package/dist/assertion/impl/sync-basic.js +0 -550
- package/dist/assertion/impl/sync-basic.js.map +0 -1
- package/dist/assertion/impl/sync-collection.cjs +0 -856
- package/dist/assertion/impl/sync-collection.cjs.map +0 -1
- package/dist/assertion/impl/sync-collection.d.cts +0 -607
- package/dist/assertion/impl/sync-collection.d.cts.map +0 -1
- package/dist/assertion/impl/sync-collection.d.ts +0 -607
- package/dist/assertion/impl/sync-collection.d.ts.map +0 -1
- package/dist/assertion/impl/sync-collection.js +0 -850
- package/dist/assertion/impl/sync-collection.js.map +0 -1
- package/dist/assertion/impl/sync-date.cjs +0 -341
- package/dist/assertion/impl/sync-date.cjs.map +0 -1
- package/dist/assertion/impl/sync-date.d.cts +0 -209
- package/dist/assertion/impl/sync-date.d.cts.map +0 -1
- package/dist/assertion/impl/sync-date.d.ts +0 -209
- package/dist/assertion/impl/sync-date.d.ts.map +0 -1
- package/dist/assertion/impl/sync-date.js +0 -338
- package/dist/assertion/impl/sync-date.js.map +0 -1
- package/dist/assertion/impl/sync-esoteric.cjs +0 -214
- package/dist/assertion/impl/sync-esoteric.cjs.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.cts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.d.ts +0 -191
- package/dist/assertion/impl/sync-esoteric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-esoteric.js +0 -211
- package/dist/assertion/impl/sync-esoteric.js.map +0 -1
- package/dist/assertion/impl/sync-iterable.cjs +0 -512
- package/dist/assertion/impl/sync-iterable.cjs.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.cts +0 -334
- package/dist/assertion/impl/sync-iterable.d.cts.map +0 -1
- package/dist/assertion/impl/sync-iterable.d.ts +0 -334
- package/dist/assertion/impl/sync-iterable.d.ts.map +0 -1
- package/dist/assertion/impl/sync-iterable.js +0 -509
- package/dist/assertion/impl/sync-iterable.js.map +0 -1
- package/dist/assertion/impl/sync-parametric.cjs +0 -812
- package/dist/assertion/impl/sync-parametric.cjs.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.cts +0 -560
- package/dist/assertion/impl/sync-parametric.d.cts.map +0 -1
- package/dist/assertion/impl/sync-parametric.d.ts +0 -560
- package/dist/assertion/impl/sync-parametric.d.ts.map +0 -1
- package/dist/assertion/impl/sync-parametric.js +0 -809
- package/dist/assertion/impl/sync-parametric.js.map +0 -1
- package/dist/assertion/impl/sync.cjs +0 -214
- package/dist/assertion/impl/sync.cjs.map +0 -1
- package/dist/assertion/impl/sync.d.cts +0 -512
- package/dist/assertion/impl/sync.d.cts.map +0 -1
- package/dist/assertion/impl/sync.d.ts +0 -512
- package/dist/assertion/impl/sync.d.ts.map +0 -1
- package/dist/assertion/impl/sync.js +0 -197
- package/dist/assertion/impl/sync.js.map +0 -1
- package/dist/assertion/index.cjs +0 -38
- package/dist/assertion/index.cjs.map +0 -1
- package/dist/assertion/index.d.cts +0 -18
- package/dist/assertion/index.d.cts.map +0 -1
- package/dist/assertion/index.d.ts +0 -18
- package/dist/assertion/index.d.ts.map +0 -1
- package/dist/assertion/index.js +0 -17
- package/dist/assertion/index.js.map +0 -1
- package/dist/assertion/slotify.cjs +0 -165
- package/dist/assertion/slotify.cjs.map +0 -1
- package/dist/assertion/slotify.d.cts +0 -11
- package/dist/assertion/slotify.d.cts.map +0 -1
- package/dist/assertion/slotify.d.ts +0 -11
- package/dist/assertion/slotify.d.ts.map +0 -1
- package/dist/assertion/slotify.js +0 -161
- package/dist/assertion/slotify.js.map +0 -1
- package/dist/bootstrap.cjs +0 -43
- package/dist/bootstrap.cjs.map +0 -1
- package/dist/bootstrap.d.cts +0 -27
- package/dist/bootstrap.d.cts.map +0 -1
- package/dist/bootstrap.d.ts +0 -27
- package/dist/bootstrap.d.ts.map +0 -1
- package/dist/bootstrap.js +0 -40
- package/dist/bootstrap.js.map +0 -1
- package/dist/constant.cjs +0 -82
- package/dist/constant.cjs.map +0 -1
- package/dist/constant.d.cts +0 -69
- package/dist/constant.d.cts.map +0 -1
- package/dist/constant.d.ts +0 -69
- package/dist/constant.d.ts.map +0 -1
- package/dist/constant.js +0 -79
- package/dist/constant.js.map +0 -1
- package/dist/diff.cjs +0 -340
- package/dist/diff.cjs.map +0 -1
- package/dist/diff.d.cts +0 -51
- package/dist/diff.d.cts.map +0 -1
- package/dist/diff.d.ts +0 -51
- package/dist/diff.d.ts.map +0 -1
- package/dist/diff.js +0 -334
- package/dist/diff.js.map +0 -1
- package/dist/error.cjs +0 -204
- package/dist/error.cjs.map +0 -1
- package/dist/error.d.cts +0 -212
- package/dist/error.d.cts.map +0 -1
- package/dist/error.d.ts +0 -212
- package/dist/error.d.ts.map +0 -1
- package/dist/error.js +0 -191
- package/dist/error.js.map +0 -1
- package/dist/expect.cjs +0 -590
- package/dist/expect.cjs.map +0 -1
- package/dist/expect.d.cts +0 -138
- package/dist/expect.d.cts.map +0 -1
- package/dist/expect.d.ts +0 -138
- package/dist/expect.d.ts.map +0 -1
- package/dist/expect.js +0 -582
- package/dist/expect.js.map +0 -1
- package/dist/guards.cjs +0 -297
- package/dist/guards.cjs.map +0 -1
- package/dist/guards.d.cts +0 -231
- package/dist/guards.d.cts.map +0 -1
- package/dist/guards.d.ts +0 -231
- package/dist/guards.d.ts.map +0 -1
- package/dist/guards.js +0 -277
- package/dist/guards.js.map +0 -1
- package/dist/index.cjs +0 -111
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -448
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts +0 -448
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -71
- package/dist/index.js.map +0 -1
- package/dist/internal-schema.cjs +0 -253
- package/dist/internal-schema.cjs.map +0 -1
- package/dist/internal-schema.d.cts +0 -8
- package/dist/internal-schema.d.cts.map +0 -1
- package/dist/internal-schema.d.ts +0 -8
- package/dist/internal-schema.d.ts.map +0 -1
- package/dist/internal-schema.js +0 -248
- package/dist/internal-schema.js.map +0 -1
- package/dist/metadata.cjs +0 -57
- package/dist/metadata.cjs.map +0 -1
- package/dist/metadata.d.cts +0 -27
- package/dist/metadata.d.cts.map +0 -1
- package/dist/metadata.d.ts +0 -27
- package/dist/metadata.d.ts.map +0 -1
- package/dist/metadata.js +0 -54
- package/dist/metadata.js.map +0 -1
- package/dist/schema.cjs +0 -1522
- package/dist/schema.cjs.map +0 -1
- package/dist/schema.d.cts +0 -1196
- package/dist/schema.d.cts.map +0 -1
- package/dist/schema.d.ts +0 -1196
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -1516
- package/dist/schema.js.map +0 -1
- package/dist/snapshot/adapter.cjs +0 -31
- package/dist/snapshot/adapter.cjs.map +0 -1
- package/dist/snapshot/adapter.d.cts +0 -258
- package/dist/snapshot/adapter.d.cts.map +0 -1
- package/dist/snapshot/adapter.d.ts +0 -258
- package/dist/snapshot/adapter.d.ts.map +0 -1
- package/dist/snapshot/adapter.js +0 -27
- package/dist/snapshot/adapter.js.map +0 -1
- package/dist/snapshot/adapters/fallback.cjs +0 -453
- package/dist/snapshot/adapters/fallback.cjs.map +0 -1
- package/dist/snapshot/adapters/fallback.d.cts +0 -185
- package/dist/snapshot/adapters/fallback.d.cts.map +0 -1
- package/dist/snapshot/adapters/fallback.d.ts +0 -185
- package/dist/snapshot/adapters/fallback.d.ts.map +0 -1
- package/dist/snapshot/adapters/fallback.js +0 -446
- package/dist/snapshot/adapters/fallback.js.map +0 -1
- package/dist/snapshot/adapters/node-test.cjs +0 -301
- package/dist/snapshot/adapters/node-test.cjs.map +0 -1
- package/dist/snapshot/adapters/node-test.d.cts +0 -131
- package/dist/snapshot/adapters/node-test.d.cts.map +0 -1
- package/dist/snapshot/adapters/node-test.d.ts +0 -131
- package/dist/snapshot/adapters/node-test.d.ts.map +0 -1
- package/dist/snapshot/adapters/node-test.js +0 -297
- package/dist/snapshot/adapters/node-test.js.map +0 -1
- package/dist/snapshot/index.cjs +0 -61
- package/dist/snapshot/index.cjs.map +0 -1
- package/dist/snapshot/index.d.cts +0 -40
- package/dist/snapshot/index.d.cts.map +0 -1
- package/dist/snapshot/index.d.ts +0 -40
- package/dist/snapshot/index.d.ts.map +0 -1
- package/dist/snapshot/index.js +0 -44
- package/dist/snapshot/index.js.map +0 -1
- package/dist/snapshot/node-version.cjs +0 -49
- package/dist/snapshot/node-version.cjs.map +0 -1
- package/dist/snapshot/node-version.d.cts +0 -34
- package/dist/snapshot/node-version.d.cts.map +0 -1
- package/dist/snapshot/node-version.d.ts +0 -34
- package/dist/snapshot/node-version.d.ts.map +0 -1
- package/dist/snapshot/node-version.js +0 -44
- package/dist/snapshot/node-version.js.map +0 -1
- package/dist/snapshot/select-adapter.cjs +0 -170
- package/dist/snapshot/select-adapter.cjs.map +0 -1
- package/dist/snapshot/select-adapter.d.cts +0 -128
- package/dist/snapshot/select-adapter.d.cts.map +0 -1
- package/dist/snapshot/select-adapter.d.ts +0 -128
- package/dist/snapshot/select-adapter.d.ts.map +0 -1
- package/dist/snapshot/select-adapter.js +0 -164
- package/dist/snapshot/select-adapter.js.map +0 -1
- package/dist/snapshot/serializer.cjs +0 -246
- package/dist/snapshot/serializer.cjs.map +0 -1
- package/dist/snapshot/serializer.d.cts +0 -126
- package/dist/snapshot/serializer.d.cts.map +0 -1
- package/dist/snapshot/serializer.d.ts +0 -126
- package/dist/snapshot/serializer.d.ts.map +0 -1
- package/dist/snapshot/serializer.js +0 -238
- package/dist/snapshot/serializer.js.map +0 -1
- package/dist/standard-schema.cjs +0 -13
- package/dist/standard-schema.cjs.map +0 -1
- package/dist/standard-schema.d.cts +0 -192
- package/dist/standard-schema.d.cts.map +0 -1
- package/dist/standard-schema.d.ts +0 -192
- package/dist/standard-schema.d.ts.map +0 -1
- package/dist/standard-schema.js +0 -12
- package/dist/standard-schema.js.map +0 -1
- package/dist/types.cjs +0 -22
- package/dist/types.cjs.map +0 -1
- package/dist/types.d.cts +0 -905
- package/dist/types.d.cts.map +0 -1
- package/dist/types.d.ts +0 -905
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
- package/dist/use.cjs +0 -240
- package/dist/use.cjs.map +0 -1
- package/dist/use.d.cts +0 -8
- package/dist/use.d.cts.map +0 -1
- package/dist/use.d.ts +0 -8
- package/dist/use.d.ts.map +0 -1
- package/dist/use.js +0 -236
- package/dist/use.js.map +0 -1
- package/dist/util.cjs +0 -255
- package/dist/util.cjs.map +0 -1
- package/dist/util.d.cts +0 -141
- package/dist/util.d.cts.map +0 -1
- package/dist/util.d.ts +0 -141
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -234
- package/dist/util.js.map +0 -1
- package/dist/value-to-schema.cjs +0 -537
- package/dist/value-to-schema.cjs.map +0 -1
- package/dist/value-to-schema.d.cts +0 -144
- package/dist/value-to-schema.d.cts.map +0 -1
- package/dist/value-to-schema.d.ts +0 -144
- package/dist/value-to-schema.d.ts.map +0 -1
- package/dist/value-to-schema.js +0 -533
- package/dist/value-to-schema.js.map +0 -1
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Node.js version utilities for snapshot testing.
|
|
3
|
-
*
|
|
4
|
-
* @packageDocumentation
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Minimum Node.js major version required for snapshot testing with node:test.
|
|
8
|
-
*
|
|
9
|
-
* Node.js v22 is the first version with stable `assert.snapshot()` support in
|
|
10
|
-
* the native test runner.
|
|
11
|
-
*/
|
|
12
|
-
export const MIN_NODE_MAJOR_VERSION = 22;
|
|
13
|
-
/**
|
|
14
|
-
* Get the current Node.js major version.
|
|
15
|
-
*
|
|
16
|
-
* @function
|
|
17
|
-
* @returns Major version number (e.g., 20, 22, 24)
|
|
18
|
-
*/
|
|
19
|
-
export const getNodeMajorVersion = () => {
|
|
20
|
-
const parts = process.versions.node.split('.');
|
|
21
|
-
return Number(parts[0]) || 0;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Check if the current Node.js version supports snapshot testing with
|
|
25
|
-
* node:test.
|
|
26
|
-
*
|
|
27
|
-
* @returns `true` if Node.js version >= {@link MIN_NODE_MAJOR_VERSION}
|
|
28
|
-
*/
|
|
29
|
-
export const supportsNodeTestSnapshots = getNodeMajorVersion() >= MIN_NODE_MAJOR_VERSION;
|
|
30
|
-
/**
|
|
31
|
-
* Assert that the Node.js version supports snapshot testing.
|
|
32
|
-
*
|
|
33
|
-
* @function
|
|
34
|
-
* @throws {Error} If Node.js version is less than {@link MIN_NODE_MAJOR_VERSION}
|
|
35
|
-
*/
|
|
36
|
-
export const assertNodeVersion = () => {
|
|
37
|
-
const major = getNodeMajorVersion();
|
|
38
|
-
if (major < MIN_NODE_MAJOR_VERSION) {
|
|
39
|
-
throw new Error(`Snapshot testing with node:test requires Node.js v${MIN_NODE_MAJOR_VERSION} or later. ` +
|
|
40
|
-
`Current version: v${process.versions.node}. ` +
|
|
41
|
-
`Please upgrade Node.js or use a different snapshot adapter (e.g., pass an explicit snapshot name string instead of a test context).`);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=node-version.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node-version.js","sourceRoot":"","sources":["../../src/snapshot/node-version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GACpC,mBAAmB,EAAE,IAAI,sBAAsB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAS,EAAE;IAC1C,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAC;IACpC,IAAI,KAAK,GAAG,sBAAsB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,qDAAqD,sBAAsB,aAAa;YACtF,qBAAqB,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;YAC9C,qIAAqI,CACxI,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Adapter selection logic for choosing the appropriate snapshot adapter.
|
|
4
|
-
*
|
|
5
|
-
* This module manages the registry of snapshot adapters and provides logic for
|
|
6
|
-
* selecting the correct adapter based on the test context.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.selectAdapter = exports.registerAdapter = exports.getRegisteredAdapters = void 0;
|
|
12
|
-
const fallback_js_1 = require("./adapters/fallback.cjs");
|
|
13
|
-
const node_test_js_1 = require("./adapters/node-test.cjs");
|
|
14
|
-
/**
|
|
15
|
-
* Registered adapters in priority order.
|
|
16
|
-
*
|
|
17
|
-
* Adapters are checked in order, and the first adapter that can handle the
|
|
18
|
-
* context is selected. The fallback adapter should always be last as it accepts
|
|
19
|
-
* most inputs.
|
|
20
|
-
*
|
|
21
|
-
* **Default order:**
|
|
22
|
-
*
|
|
23
|
-
* 1. Node:test adapter (most specific)
|
|
24
|
-
* 2. Fallback adapter (always matches)
|
|
25
|
-
*/
|
|
26
|
-
const adapters = [
|
|
27
|
-
node_test_js_1.nodeTestAdapter,
|
|
28
|
-
// jestVitestAdapter will be added in Phase 2
|
|
29
|
-
fallback_js_1.fallbackAdapter, // Always last
|
|
30
|
-
];
|
|
31
|
-
/**
|
|
32
|
-
* Get all registered adapters (for debugging).
|
|
33
|
-
*
|
|
34
|
-
* Returns a read-only copy of the adapter list in priority order. This is
|
|
35
|
-
* useful for debugging adapter selection or verifying that custom adapters have
|
|
36
|
-
* been registered correctly.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
*
|
|
40
|
-
* ```typescript
|
|
41
|
-
* import { getRegisteredAdapters } from 'bupkis/snapshot';
|
|
42
|
-
*
|
|
43
|
-
* const adapters = getRegisteredAdapters();
|
|
44
|
-
* console.log(
|
|
45
|
-
* 'Registered adapters:',
|
|
46
|
-
* adapters.map((a) => a.name),
|
|
47
|
-
* );
|
|
48
|
-
* // Output: ['node:test', 'fallback']
|
|
49
|
-
* ```
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
*
|
|
53
|
-
* ```typescript
|
|
54
|
-
* // After registering custom adapter
|
|
55
|
-
* registerAdapter(customAdapter, 0);
|
|
56
|
-
* const adapters = getRegisteredAdapters();
|
|
57
|
-
* console.log(adapters.map((a) => a.name));
|
|
58
|
-
* // Output: ['my-custom', 'node:test', 'fallback']
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* @function
|
|
62
|
-
* @returns Read-only array of registered adapters
|
|
63
|
-
*/
|
|
64
|
-
const getRegisteredAdapters = () => {
|
|
65
|
-
return [...adapters];
|
|
66
|
-
};
|
|
67
|
-
exports.getRegisteredAdapters = getRegisteredAdapters;
|
|
68
|
-
/**
|
|
69
|
-
* Register a custom snapshot adapter.
|
|
70
|
-
*
|
|
71
|
-
* This allows plugins or custom code to add new snapshot adapters for
|
|
72
|
-
* frameworks not supported out of the box.
|
|
73
|
-
*
|
|
74
|
-
* **Important:** If an adapter with the same name is already registered, it
|
|
75
|
-
* will be removed before the new adapter is inserted.
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
*
|
|
79
|
-
* ```typescript
|
|
80
|
-
* import { registerAdapter } from 'bupkis/snapshot';
|
|
81
|
-
*
|
|
82
|
-
* const customAdapter = {
|
|
83
|
-
* name: 'my-framework',
|
|
84
|
-
* canHandle: (context) => {
|
|
85
|
-
* return (
|
|
86
|
-
* context &&
|
|
87
|
-
* typeof context === 'object' &&
|
|
88
|
-
* 'myFrameworkMarker' in context
|
|
89
|
-
* );
|
|
90
|
-
* },
|
|
91
|
-
* getContext: (context) => {
|
|
92
|
-
* // Extract context from custom framework
|
|
93
|
-
* },
|
|
94
|
-
* assertSnapshot: (value, context, options) => {
|
|
95
|
-
* // Perform snapshot assertion
|
|
96
|
-
* },
|
|
97
|
-
* };
|
|
98
|
-
*
|
|
99
|
-
* // Register with high priority (before node:test)
|
|
100
|
-
* registerAdapter(customAdapter, 0);
|
|
101
|
-
* ```
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
*
|
|
105
|
-
* ```typescript
|
|
106
|
-
* // Register Jest adapter (Phase 2)
|
|
107
|
-
* import { jestAdapter } from './adapters/jest.js';
|
|
108
|
-
* registerAdapter(jestAdapter, 1); // After node:test, before fallback
|
|
109
|
-
* ```
|
|
110
|
-
*
|
|
111
|
-
* @function
|
|
112
|
-
* @param adapter - Custom adapter to register
|
|
113
|
-
* @param priority - Priority index (lower = higher priority). Defaults to
|
|
114
|
-
* inserting before fallback.
|
|
115
|
-
*/
|
|
116
|
-
const registerAdapter = (adapter, priority = adapters.length - 1) => {
|
|
117
|
-
// Remove if already registered
|
|
118
|
-
const index = adapters.findIndex((a) => a.name === adapter.name);
|
|
119
|
-
if (index !== -1) {
|
|
120
|
-
adapters.splice(index, 1);
|
|
121
|
-
}
|
|
122
|
-
// Insert at specified priority
|
|
123
|
-
adapters.splice(priority, 0, adapter);
|
|
124
|
-
};
|
|
125
|
-
exports.registerAdapter = registerAdapter;
|
|
126
|
-
/**
|
|
127
|
-
* Select the appropriate snapshot adapter for the given context.
|
|
128
|
-
*
|
|
129
|
-
* Iterates through registered adapters in priority order and returns the first
|
|
130
|
-
* adapter whose `canHandle()` method returns `true` for the context.
|
|
131
|
-
*
|
|
132
|
-
* Since the fallback adapter is always last and accepts most inputs, this
|
|
133
|
-
* function is guaranteed to return a valid adapter.
|
|
134
|
-
*
|
|
135
|
-
* @example
|
|
136
|
-
*
|
|
137
|
-
* ```typescript
|
|
138
|
-
* import test from 'node:test';
|
|
139
|
-
* import { selectAdapter } from 'bupkis/snapshot';
|
|
140
|
-
*
|
|
141
|
-
* test('my test', (t) => {
|
|
142
|
-
* const adapter = selectAdapter(t);
|
|
143
|
-
* console.log(adapter.name); // 'node:test'
|
|
144
|
-
* adapter.assertSnapshot({ foo: 'bar' }, t);
|
|
145
|
-
* });
|
|
146
|
-
* ```
|
|
147
|
-
*
|
|
148
|
-
* @example
|
|
149
|
-
*
|
|
150
|
-
* ```typescript
|
|
151
|
-
* // With explicit name (selects fallback)
|
|
152
|
-
* const adapter = selectAdapter('my-snapshot-name');
|
|
153
|
-
* console.log(adapter.name); // 'fallback'
|
|
154
|
-
* ```
|
|
155
|
-
*
|
|
156
|
-
* @function
|
|
157
|
-
* @param context - Test context object or explicit snapshot name
|
|
158
|
-
* @returns Adapter that can handle the context
|
|
159
|
-
*/
|
|
160
|
-
const selectAdapter = (context) => {
|
|
161
|
-
for (const adapter of adapters) {
|
|
162
|
-
if (adapter.canHandle(context)) {
|
|
163
|
-
return adapter;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// This should never happen since fallback always handles
|
|
167
|
-
return fallback_js_1.fallbackAdapter;
|
|
168
|
-
};
|
|
169
|
-
exports.selectAdapter = selectAdapter;
|
|
170
|
-
//# sourceMappingURL=select-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-adapter.js","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAIH,yDAAyD;AACzD,2DAA0D;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,QAAQ,GAAsB;IAClC,8BAAe;IACf,6CAA6C;IAC7C,6BAAe,EAAE,cAAc;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACI,MAAM,qBAAqB,GAAG,GAAmC,EAAE;IACxE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACI,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,WAAmB,QAAQ,CAAC,MAAM,GAAG,CAAC,EAChC,EAAE;IACR,+BAA+B;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACI,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAmB,EAAE;IACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,OAAO,6BAAe,CAAC;AACzB,CAAC,CAAC;AATW,QAAA,aAAa,iBASxB"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapter selection logic for choosing the appropriate snapshot adapter.
|
|
3
|
-
*
|
|
4
|
-
* This module manages the registry of snapshot adapters and provides logic for
|
|
5
|
-
* selecting the correct adapter based on the test context.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { SnapshotAdapter } from "./adapter.cjs";
|
|
10
|
-
/**
|
|
11
|
-
* Get all registered adapters (for debugging).
|
|
12
|
-
*
|
|
13
|
-
* Returns a read-only copy of the adapter list in priority order. This is
|
|
14
|
-
* useful for debugging adapter selection or verifying that custom adapters have
|
|
15
|
-
* been registered correctly.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { getRegisteredAdapters } from 'bupkis/snapshot';
|
|
21
|
-
*
|
|
22
|
-
* const adapters = getRegisteredAdapters();
|
|
23
|
-
* console.log(
|
|
24
|
-
* 'Registered adapters:',
|
|
25
|
-
* adapters.map((a) => a.name),
|
|
26
|
-
* );
|
|
27
|
-
* // Output: ['node:test', 'fallback']
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
*
|
|
32
|
-
* ```typescript
|
|
33
|
-
* // After registering custom adapter
|
|
34
|
-
* registerAdapter(customAdapter, 0);
|
|
35
|
-
* const adapters = getRegisteredAdapters();
|
|
36
|
-
* console.log(adapters.map((a) => a.name));
|
|
37
|
-
* // Output: ['my-custom', 'node:test', 'fallback']
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* @function
|
|
41
|
-
* @returns Read-only array of registered adapters
|
|
42
|
-
*/
|
|
43
|
-
export declare const getRegisteredAdapters: () => ReadonlyArray<SnapshotAdapter>;
|
|
44
|
-
/**
|
|
45
|
-
* Register a custom snapshot adapter.
|
|
46
|
-
*
|
|
47
|
-
* This allows plugins or custom code to add new snapshot adapters for
|
|
48
|
-
* frameworks not supported out of the box.
|
|
49
|
-
*
|
|
50
|
-
* **Important:** If an adapter with the same name is already registered, it
|
|
51
|
-
* will be removed before the new adapter is inserted.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
*
|
|
55
|
-
* ```typescript
|
|
56
|
-
* import { registerAdapter } from 'bupkis/snapshot';
|
|
57
|
-
*
|
|
58
|
-
* const customAdapter = {
|
|
59
|
-
* name: 'my-framework',
|
|
60
|
-
* canHandle: (context) => {
|
|
61
|
-
* return (
|
|
62
|
-
* context &&
|
|
63
|
-
* typeof context === 'object' &&
|
|
64
|
-
* 'myFrameworkMarker' in context
|
|
65
|
-
* );
|
|
66
|
-
* },
|
|
67
|
-
* getContext: (context) => {
|
|
68
|
-
* // Extract context from custom framework
|
|
69
|
-
* },
|
|
70
|
-
* assertSnapshot: (value, context, options) => {
|
|
71
|
-
* // Perform snapshot assertion
|
|
72
|
-
* },
|
|
73
|
-
* };
|
|
74
|
-
*
|
|
75
|
-
* // Register with high priority (before node:test)
|
|
76
|
-
* registerAdapter(customAdapter, 0);
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
*
|
|
81
|
-
* ```typescript
|
|
82
|
-
* // Register Jest adapter (Phase 2)
|
|
83
|
-
* import { jestAdapter } from './adapters/jest.js';
|
|
84
|
-
* registerAdapter(jestAdapter, 1); // After node:test, before fallback
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* @function
|
|
88
|
-
* @param adapter - Custom adapter to register
|
|
89
|
-
* @param priority - Priority index (lower = higher priority). Defaults to
|
|
90
|
-
* inserting before fallback.
|
|
91
|
-
*/
|
|
92
|
-
export declare const registerAdapter: (adapter: SnapshotAdapter, priority?: number) => void;
|
|
93
|
-
/**
|
|
94
|
-
* Select the appropriate snapshot adapter for the given context.
|
|
95
|
-
*
|
|
96
|
-
* Iterates through registered adapters in priority order and returns the first
|
|
97
|
-
* adapter whose `canHandle()` method returns `true` for the context.
|
|
98
|
-
*
|
|
99
|
-
* Since the fallback adapter is always last and accepts most inputs, this
|
|
100
|
-
* function is guaranteed to return a valid adapter.
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
*
|
|
104
|
-
* ```typescript
|
|
105
|
-
* import test from 'node:test';
|
|
106
|
-
* import { selectAdapter } from 'bupkis/snapshot';
|
|
107
|
-
*
|
|
108
|
-
* test('my test', (t) => {
|
|
109
|
-
* const adapter = selectAdapter(t);
|
|
110
|
-
* console.log(adapter.name); // 'node:test'
|
|
111
|
-
* adapter.assertSnapshot({ foo: 'bar' }, t);
|
|
112
|
-
* });
|
|
113
|
-
* ```
|
|
114
|
-
*
|
|
115
|
-
* @example
|
|
116
|
-
*
|
|
117
|
-
* ```typescript
|
|
118
|
-
* // With explicit name (selects fallback)
|
|
119
|
-
* const adapter = selectAdapter('my-snapshot-name');
|
|
120
|
-
* console.log(adapter.name); // 'fallback'
|
|
121
|
-
* ```
|
|
122
|
-
*
|
|
123
|
-
* @function
|
|
124
|
-
* @param context - Test context object or explicit snapshot name
|
|
125
|
-
* @returns Adapter that can handle the context
|
|
126
|
-
*/
|
|
127
|
-
export declare const selectAdapter: (context: unknown) => SnapshotAdapter;
|
|
128
|
-
//# sourceMappingURL=select-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-adapter.d.ts","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAqB;AAuBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,qBAAqB,QAAO,aAAa,CAAC,eAAe,CAErE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,eAAe,EACxB,WAAU,MAA4B,KACrC,IASF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,KAAG,eAShD,CAAC"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapter selection logic for choosing the appropriate snapshot adapter.
|
|
3
|
-
*
|
|
4
|
-
* This module manages the registry of snapshot adapters and provides logic for
|
|
5
|
-
* selecting the correct adapter based on the test context.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { SnapshotAdapter } from "./adapter.js";
|
|
10
|
-
/**
|
|
11
|
-
* Get all registered adapters (for debugging).
|
|
12
|
-
*
|
|
13
|
-
* Returns a read-only copy of the adapter list in priority order. This is
|
|
14
|
-
* useful for debugging adapter selection or verifying that custom adapters have
|
|
15
|
-
* been registered correctly.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
*
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import { getRegisteredAdapters } from 'bupkis/snapshot';
|
|
21
|
-
*
|
|
22
|
-
* const adapters = getRegisteredAdapters();
|
|
23
|
-
* console.log(
|
|
24
|
-
* 'Registered adapters:',
|
|
25
|
-
* adapters.map((a) => a.name),
|
|
26
|
-
* );
|
|
27
|
-
* // Output: ['node:test', 'fallback']
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
*
|
|
32
|
-
* ```typescript
|
|
33
|
-
* // After registering custom adapter
|
|
34
|
-
* registerAdapter(customAdapter, 0);
|
|
35
|
-
* const adapters = getRegisteredAdapters();
|
|
36
|
-
* console.log(adapters.map((a) => a.name));
|
|
37
|
-
* // Output: ['my-custom', 'node:test', 'fallback']
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* @function
|
|
41
|
-
* @returns Read-only array of registered adapters
|
|
42
|
-
*/
|
|
43
|
-
export declare const getRegisteredAdapters: () => ReadonlyArray<SnapshotAdapter>;
|
|
44
|
-
/**
|
|
45
|
-
* Register a custom snapshot adapter.
|
|
46
|
-
*
|
|
47
|
-
* This allows plugins or custom code to add new snapshot adapters for
|
|
48
|
-
* frameworks not supported out of the box.
|
|
49
|
-
*
|
|
50
|
-
* **Important:** If an adapter with the same name is already registered, it
|
|
51
|
-
* will be removed before the new adapter is inserted.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
*
|
|
55
|
-
* ```typescript
|
|
56
|
-
* import { registerAdapter } from 'bupkis/snapshot';
|
|
57
|
-
*
|
|
58
|
-
* const customAdapter = {
|
|
59
|
-
* name: 'my-framework',
|
|
60
|
-
* canHandle: (context) => {
|
|
61
|
-
* return (
|
|
62
|
-
* context &&
|
|
63
|
-
* typeof context === 'object' &&
|
|
64
|
-
* 'myFrameworkMarker' in context
|
|
65
|
-
* );
|
|
66
|
-
* },
|
|
67
|
-
* getContext: (context) => {
|
|
68
|
-
* // Extract context from custom framework
|
|
69
|
-
* },
|
|
70
|
-
* assertSnapshot: (value, context, options) => {
|
|
71
|
-
* // Perform snapshot assertion
|
|
72
|
-
* },
|
|
73
|
-
* };
|
|
74
|
-
*
|
|
75
|
-
* // Register with high priority (before node:test)
|
|
76
|
-
* registerAdapter(customAdapter, 0);
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
*
|
|
81
|
-
* ```typescript
|
|
82
|
-
* // Register Jest adapter (Phase 2)
|
|
83
|
-
* import { jestAdapter } from './adapters/jest.js';
|
|
84
|
-
* registerAdapter(jestAdapter, 1); // After node:test, before fallback
|
|
85
|
-
* ```
|
|
86
|
-
*
|
|
87
|
-
* @function
|
|
88
|
-
* @param adapter - Custom adapter to register
|
|
89
|
-
* @param priority - Priority index (lower = higher priority). Defaults to
|
|
90
|
-
* inserting before fallback.
|
|
91
|
-
*/
|
|
92
|
-
export declare const registerAdapter: (adapter: SnapshotAdapter, priority?: number) => void;
|
|
93
|
-
/**
|
|
94
|
-
* Select the appropriate snapshot adapter for the given context.
|
|
95
|
-
*
|
|
96
|
-
* Iterates through registered adapters in priority order and returns the first
|
|
97
|
-
* adapter whose `canHandle()` method returns `true` for the context.
|
|
98
|
-
*
|
|
99
|
-
* Since the fallback adapter is always last and accepts most inputs, this
|
|
100
|
-
* function is guaranteed to return a valid adapter.
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
*
|
|
104
|
-
* ```typescript
|
|
105
|
-
* import test from 'node:test';
|
|
106
|
-
* import { selectAdapter } from 'bupkis/snapshot';
|
|
107
|
-
*
|
|
108
|
-
* test('my test', (t) => {
|
|
109
|
-
* const adapter = selectAdapter(t);
|
|
110
|
-
* console.log(adapter.name); // 'node:test'
|
|
111
|
-
* adapter.assertSnapshot({ foo: 'bar' }, t);
|
|
112
|
-
* });
|
|
113
|
-
* ```
|
|
114
|
-
*
|
|
115
|
-
* @example
|
|
116
|
-
*
|
|
117
|
-
* ```typescript
|
|
118
|
-
* // With explicit name (selects fallback)
|
|
119
|
-
* const adapter = selectAdapter('my-snapshot-name');
|
|
120
|
-
* console.log(adapter.name); // 'fallback'
|
|
121
|
-
* ```
|
|
122
|
-
*
|
|
123
|
-
* @function
|
|
124
|
-
* @param context - Test context object or explicit snapshot name
|
|
125
|
-
* @returns Adapter that can handle the context
|
|
126
|
-
*/
|
|
127
|
-
export declare const selectAdapter: (context: unknown) => SnapshotAdapter;
|
|
128
|
-
//# sourceMappingURL=select-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-adapter.d.ts","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB;AAuBpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,qBAAqB,QAAO,aAAa,CAAC,eAAe,CAErE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,eAAe,GAC1B,SAAS,eAAe,EACxB,WAAU,MAA4B,KACrC,IASF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,OAAO,KAAG,eAShD,CAAC"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapter selection logic for choosing the appropriate snapshot adapter.
|
|
3
|
-
*
|
|
4
|
-
* This module manages the registry of snapshot adapters and provides logic for
|
|
5
|
-
* selecting the correct adapter based on the test context.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import { fallbackAdapter } from "./adapters/fallback.js";
|
|
10
|
-
import { nodeTestAdapter } from "./adapters/node-test.js";
|
|
11
|
-
/**
|
|
12
|
-
* Registered adapters in priority order.
|
|
13
|
-
*
|
|
14
|
-
* Adapters are checked in order, and the first adapter that can handle the
|
|
15
|
-
* context is selected. The fallback adapter should always be last as it accepts
|
|
16
|
-
* most inputs.
|
|
17
|
-
*
|
|
18
|
-
* **Default order:**
|
|
19
|
-
*
|
|
20
|
-
* 1. Node:test adapter (most specific)
|
|
21
|
-
* 2. Fallback adapter (always matches)
|
|
22
|
-
*/
|
|
23
|
-
const adapters = [
|
|
24
|
-
nodeTestAdapter,
|
|
25
|
-
// jestVitestAdapter will be added in Phase 2
|
|
26
|
-
fallbackAdapter, // Always last
|
|
27
|
-
];
|
|
28
|
-
/**
|
|
29
|
-
* Get all registered adapters (for debugging).
|
|
30
|
-
*
|
|
31
|
-
* Returns a read-only copy of the adapter list in priority order. This is
|
|
32
|
-
* useful for debugging adapter selection or verifying that custom adapters have
|
|
33
|
-
* been registered correctly.
|
|
34
|
-
*
|
|
35
|
-
* @example
|
|
36
|
-
*
|
|
37
|
-
* ```typescript
|
|
38
|
-
* import { getRegisteredAdapters } from 'bupkis/snapshot';
|
|
39
|
-
*
|
|
40
|
-
* const adapters = getRegisteredAdapters();
|
|
41
|
-
* console.log(
|
|
42
|
-
* 'Registered adapters:',
|
|
43
|
-
* adapters.map((a) => a.name),
|
|
44
|
-
* );
|
|
45
|
-
* // Output: ['node:test', 'fallback']
|
|
46
|
-
* ```
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
*
|
|
50
|
-
* ```typescript
|
|
51
|
-
* // After registering custom adapter
|
|
52
|
-
* registerAdapter(customAdapter, 0);
|
|
53
|
-
* const adapters = getRegisteredAdapters();
|
|
54
|
-
* console.log(adapters.map((a) => a.name));
|
|
55
|
-
* // Output: ['my-custom', 'node:test', 'fallback']
|
|
56
|
-
* ```
|
|
57
|
-
*
|
|
58
|
-
* @function
|
|
59
|
-
* @returns Read-only array of registered adapters
|
|
60
|
-
*/
|
|
61
|
-
export const getRegisteredAdapters = () => {
|
|
62
|
-
return [...adapters];
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Register a custom snapshot adapter.
|
|
66
|
-
*
|
|
67
|
-
* This allows plugins or custom code to add new snapshot adapters for
|
|
68
|
-
* frameworks not supported out of the box.
|
|
69
|
-
*
|
|
70
|
-
* **Important:** If an adapter with the same name is already registered, it
|
|
71
|
-
* will be removed before the new adapter is inserted.
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
*
|
|
75
|
-
* ```typescript
|
|
76
|
-
* import { registerAdapter } from 'bupkis/snapshot';
|
|
77
|
-
*
|
|
78
|
-
* const customAdapter = {
|
|
79
|
-
* name: 'my-framework',
|
|
80
|
-
* canHandle: (context) => {
|
|
81
|
-
* return (
|
|
82
|
-
* context &&
|
|
83
|
-
* typeof context === 'object' &&
|
|
84
|
-
* 'myFrameworkMarker' in context
|
|
85
|
-
* );
|
|
86
|
-
* },
|
|
87
|
-
* getContext: (context) => {
|
|
88
|
-
* // Extract context from custom framework
|
|
89
|
-
* },
|
|
90
|
-
* assertSnapshot: (value, context, options) => {
|
|
91
|
-
* // Perform snapshot assertion
|
|
92
|
-
* },
|
|
93
|
-
* };
|
|
94
|
-
*
|
|
95
|
-
* // Register with high priority (before node:test)
|
|
96
|
-
* registerAdapter(customAdapter, 0);
|
|
97
|
-
* ```
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
*
|
|
101
|
-
* ```typescript
|
|
102
|
-
* // Register Jest adapter (Phase 2)
|
|
103
|
-
* import { jestAdapter } from './adapters/jest.js';
|
|
104
|
-
* registerAdapter(jestAdapter, 1); // After node:test, before fallback
|
|
105
|
-
* ```
|
|
106
|
-
*
|
|
107
|
-
* @function
|
|
108
|
-
* @param adapter - Custom adapter to register
|
|
109
|
-
* @param priority - Priority index (lower = higher priority). Defaults to
|
|
110
|
-
* inserting before fallback.
|
|
111
|
-
*/
|
|
112
|
-
export const registerAdapter = (adapter, priority = adapters.length - 1) => {
|
|
113
|
-
// Remove if already registered
|
|
114
|
-
const index = adapters.findIndex((a) => a.name === adapter.name);
|
|
115
|
-
if (index !== -1) {
|
|
116
|
-
adapters.splice(index, 1);
|
|
117
|
-
}
|
|
118
|
-
// Insert at specified priority
|
|
119
|
-
adapters.splice(priority, 0, adapter);
|
|
120
|
-
};
|
|
121
|
-
/**
|
|
122
|
-
* Select the appropriate snapshot adapter for the given context.
|
|
123
|
-
*
|
|
124
|
-
* Iterates through registered adapters in priority order and returns the first
|
|
125
|
-
* adapter whose `canHandle()` method returns `true` for the context.
|
|
126
|
-
*
|
|
127
|
-
* Since the fallback adapter is always last and accepts most inputs, this
|
|
128
|
-
* function is guaranteed to return a valid adapter.
|
|
129
|
-
*
|
|
130
|
-
* @example
|
|
131
|
-
*
|
|
132
|
-
* ```typescript
|
|
133
|
-
* import test from 'node:test';
|
|
134
|
-
* import { selectAdapter } from 'bupkis/snapshot';
|
|
135
|
-
*
|
|
136
|
-
* test('my test', (t) => {
|
|
137
|
-
* const adapter = selectAdapter(t);
|
|
138
|
-
* console.log(adapter.name); // 'node:test'
|
|
139
|
-
* adapter.assertSnapshot({ foo: 'bar' }, t);
|
|
140
|
-
* });
|
|
141
|
-
* ```
|
|
142
|
-
*
|
|
143
|
-
* @example
|
|
144
|
-
*
|
|
145
|
-
* ```typescript
|
|
146
|
-
* // With explicit name (selects fallback)
|
|
147
|
-
* const adapter = selectAdapter('my-snapshot-name');
|
|
148
|
-
* console.log(adapter.name); // 'fallback'
|
|
149
|
-
* ```
|
|
150
|
-
*
|
|
151
|
-
* @function
|
|
152
|
-
* @param context - Test context object or explicit snapshot name
|
|
153
|
-
* @returns Adapter that can handle the context
|
|
154
|
-
*/
|
|
155
|
-
export const selectAdapter = (context) => {
|
|
156
|
-
for (const adapter of adapters) {
|
|
157
|
-
if (adapter.canHandle(context)) {
|
|
158
|
-
return adapter;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// This should never happen since fallback always handles
|
|
162
|
-
return fallbackAdapter;
|
|
163
|
-
};
|
|
164
|
-
//# sourceMappingURL=select-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-adapter.js","sourceRoot":"","sources":["../../src/snapshot/select-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,eAAe,EAAE,+BAA+B;AACzD,OAAO,EAAE,eAAe,EAAE,gCAAgC;AAE1D;;;;;;;;;;;GAWG;AACH,MAAM,QAAQ,GAAsB;IAClC,eAAe;IACf,6CAA6C;IAC7C,eAAe,EAAE,cAAc;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAmC,EAAE;IACxE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,WAAmB,QAAQ,CAAC,MAAM,GAAG,CAAC,EAChC,EAAE;IACR,+BAA+B;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAmB,EAAE;IACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
|