Socket
Socket
Sign inDemoInstall

@appliedblockchain/assert-combinators

Package Overview
Dependencies
Maintainers
43
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@appliedblockchain/assert-combinators - npm Package Compare versions

Comparing version 5.2.0 to 5.3.0

5

Changelog.md
# Changelog
## [v5.3.0](../../compare/v5.2.0...v5.3.0) (2022-03-28)
* Allow primitives in objects.
* Updating changelog.
## [v5.2.0](../../compare/v5.1.1...v5.2.0) (2022-03-28)

@@ -4,0 +9,0 @@

4

cjs/object.d.ts

@@ -1,3 +0,3 @@

import type { Assert, Asserted } from './prelude.js';
declare const object: <T extends Record<string, Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]: Asserted<T[k]>; }>;
import type { Assert, Asserted, Primitive } from './prelude.js';
declare const object: <T extends Record<string, Primitive | Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]: Asserted<T[k]>; }>;
export default object;

@@ -1,3 +0,3 @@

import type { Assert, Asserted } from './prelude.js';
declare const partial: <T extends Record<string, Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]?: Asserted<T[k]> | undefined; }>;
import type { Assert, Asserted, Primitive } from './prelude.js';
declare const partial: <T extends Record<string, Primitive | Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]?: Asserted<T[k]> | undefined; }>;
export default partial;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("util");
const partial = (kvs) => value => {

@@ -11,3 +12,14 @@ if (typeof value !== 'object' || value == null) {

}
kvs[k](value[k]);
const v = kvs[k];
if (typeof v === 'function') {
try {
v(value[k]);
}
catch (err) {
throw new TypeError(`[${k}] ${err instanceof Error ? err.message : err}`);
}
}
else if (v !== value[k]) {
throw new TypeError(`Expected ${(0, util_1.inspect)(k)} to be ${(0, util_1.inspect)(v)}, got ${(0, util_1.inspect)(value[k])} in ${(0, util_1.inspect)(value)} object.`);
}
}

@@ -14,0 +26,0 @@ return value;

@@ -6,3 +6,3 @@ /** Helper no-op, parametric type to expand intellisense for alias types. */

export declare type Assert<R> = (value: unknown) => R;
export declare type Asserted<A> = A extends (value: unknown) => infer U ? U : never;
export declare type Asserted<A> = A extends (value: unknown) => infer U ? U : A extends Primitive ? A : never;
export declare type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;

@@ -9,0 +9,0 @@ export declare type Keyed<T = unknown> = Record<string, T | undefined>;

@@ -1,3 +0,3 @@

import type { Assert, Asserted } from './prelude.js';
declare const object: <T extends Record<string, Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]: Asserted<T[k]>; }>;
import type { Assert, Asserted, Primitive } from './prelude.js';
declare const object: <T extends Record<string, Primitive | Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]: Asserted<T[k]>; }>;
export default object;

@@ -1,3 +0,3 @@

import type { Assert, Asserted } from './prelude.js';
declare const partial: <T extends Record<string, Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]?: Asserted<T[k]> | undefined; }>;
import type { Assert, Asserted, Primitive } from './prelude.js';
declare const partial: <T extends Record<string, Primitive | Assert<unknown>>>(kvs: T) => Assert<{ [k in keyof T]?: Asserted<T[k]> | undefined; }>;
export default partial;

@@ -0,1 +1,2 @@

import { inspect } from 'util';
const partial = (kvs) => value => {

@@ -9,3 +10,14 @@ if (typeof value !== 'object' || value == null) {

}
kvs[k](value[k]);
const v = kvs[k];
if (typeof v === 'function') {
try {
v(value[k]);
}
catch (err) {
throw new TypeError(`[${k}] ${err instanceof Error ? err.message : err}`);
}
}
else if (v !== value[k]) {
throw new TypeError(`Expected ${inspect(k)} to be ${inspect(v)}, got ${inspect(value[k])} in ${inspect(value)} object.`);
}
}

@@ -12,0 +24,0 @@ return value;

@@ -6,3 +6,3 @@ /** Helper no-op, parametric type to expand intellisense for alias types. */

export declare type Assert<R> = (value: unknown) => R;
export declare type Asserted<A> = A extends (value: unknown) => infer U ? U : never;
export declare type Asserted<A> = A extends (value: unknown) => infer U ? U : A extends Primitive ? A : never;
export declare type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;

@@ -9,0 +9,0 @@ export declare type Keyed<T = unknown> = Record<string, T | undefined>;

{
"name": "@appliedblockchain/assert-combinators",
"version": "5.2.0",
"version": "5.3.0",
"description": "Assertion combinators.",

@@ -5,0 +5,0 @@ "type": "module",

import { inspect } from 'util'
import type { Assert, Asserted } from './prelude.js'
import type { Assert, Asserted, Primitive } from './prelude.js'
const object =
<T extends Record<string, Assert<unknown>>>(kvs: T): Assert<{ [k in keyof T]: Asserted<T[k]> }> =>
<T extends Record<string, Primitive | Assert<unknown>>>(kvs: T): Assert<{ [k in keyof T]: Asserted<T[k]> }> =>
value => {

@@ -7,0 +7,0 @@ if (typeof value !== 'object' || value === null) {

@@ -1,5 +0,6 @@

import type { Assert, Asserted } from './prelude.js'
import { inspect } from 'util'
import type { Assert, Asserted, Primitive } from './prelude.js'
const partial =
<T extends Record<string, Assert<unknown>>>(kvs: T): Assert<{ [k in keyof T]?: Asserted<T[k]> }> =>
<T extends Record<string, Primitive | Assert<unknown>>>(kvs: T): Assert<{ [k in keyof T]?: Asserted<T[k]> }> =>
value => {

@@ -13,3 +14,12 @@ if (typeof value !== 'object' || value == null) {

}
kvs[k]((value as Record<string, unknown>)[k])
const v = kvs[k]
if (typeof v === 'function') {
try {
v((value as Record<string, unknown>)[k])
} catch (err: unknown) {
throw new TypeError(`[${k}] ${err instanceof Error ? err.message : err}`)
}
} else if (v !== (value as Record<string, unknown>)[k]) {
throw new TypeError(`Expected ${inspect(k)} to be ${inspect(v)}, got ${inspect((value as Record<string, unknown>)[k])} in ${inspect(value)} object.`)
}
}

@@ -16,0 +26,0 @@ return value

@@ -13,3 +13,5 @@ /** Helper no-op, parametric type to expand intellisense for alias types. */

U :
never
A extends Primitive ?
A :
never

@@ -16,0 +18,0 @@ export type Awaited<T> =

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc