Socket
Socket
Sign inDemoInstall

@arktype/util

Package Overview
Dependencies
Maintainers
1
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@arktype/util - npm Package Compare versions

Comparing version 0.0.58 to 0.1.0

21

out/describe.d.ts
import type { array } from "./arrays.js";
import type { describeDomainOf, domainOf, inferDomain } from "./domain.js";
import type { Stringifiable, isAny, isNever } from "./generics.js";
import type { isAny, isNever, satisfy, Stringifiable } from "./generics.js";
import type { describeObject } from "./objectKinds.js";
import type { stringifyUnion } from "./unionToTuple.js";
export type describe<t, branchDelimiter extends string = " or "> = stringifyUnion<isAny<t> extends true ? "any" : isNever<t> extends true ? "never" : unknown extends t ? "unknown" : t extends array ? "an array" : t extends object ? describeObject<t> : t extends Stringifiable ? inferDomain<domainOf<t>> extends t ? describeDomainOf<t> : `${t}` : describeDomainOf<t>, branchDelimiter>;
export type describeExpression<t> = describe<t, " | ">;
export type DescribeOptions = {
includeArticles?: boolean;
branchDelimiter?: string;
};
export type typeToString<t, opts extends DescribeOptions = {}> = stringifyUnion<isAny<t> extends true ? "any" : isNever<t> extends true ? "never" : unknown extends t ? "unknown" : boolean extends t ? "boolean" | ([t] extends [boolean] ? never : typeToString<Exclude<t, boolean>, opts>) : t extends array ? arrayTypeToString<t, opts> : t extends object ? describeObject<t, opts> : t extends Stringifiable ? inferDomain<domainOf<t>> extends t ? describeDomainOf<t, opts> : `${t}` : describeDomainOf<t, opts>, opts["branchDelimiter"] extends string ? opts["branchDelimiter"] : describeDefaults["branchDelimiter"]>;
export type describe<t> = typeToString<t, {
includeArticles: true;
branchDelimiter: " or ";
}>;
type arrayTypeToString<t extends array, opts extends DescribeOptions> = typeToString<t[number], opts> extends infer element extends string ? opts["includeArticles"] extends true ? describeArrayOf<element> : includesDelimiter<element, opts> extends true ? `(${element})[]` : `${element}[]` : never;
type describeArrayOf<element extends string> = element extends "unknown" ? "an array" : `an array of ${element}`;
type includesDelimiter<s extends string, opts extends DescribeOptions> = s extends (`${string}${opts["branchDelimiter"] extends string ? opts["branchDelimiter"] : describeDefaults["branchDelimiter"]}${string}`) ? true : false;
export type describeDefaults = satisfy<Required<DescribeOptions>, {
includeArticles: false;
branchDelimiter: " | ";
}>;
export {};

3

out/domain.d.ts

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

import type { describeDefaults, DescribeOptions } from "./describe.js";
import type { show } from "./generics.js";

@@ -42,3 +43,3 @@ import type { stringifyUnion } from "./unionToTuple.js";

export type domainDescriptions = typeof domainDescriptions;
export type describeDomainOf<t> = stringifyUnion<domainDescriptions[domainOf<t>], " or ">;
export type describeDomainOf<t, opts extends DescribeOptions = {}> = stringifyUnion<opts["includeArticles"] extends true ? domainDescriptions[domainOf<t>] : domainOf<t>, opts["branchDelimiter"] extends string ? opts["branchDelimiter"] : describeDefaults["branchDelimiter"]>;
export {};
import type { array } from "./arrays.js";
import type { DescribeOptions } from "./describe.js";
import { type Domain, type domainDescriptions, domainOf } from "./domain.js";

@@ -26,3 +27,5 @@ import { type Key } from "./records.js";

export type objectKindOf<data extends object> = object extends data ? keyof builtinConstructors | undefined : data extends (...args: never[]) => unknown ? "Function" : instantiableObjectKind<data> extends never ? keyof builtinConstructors | undefined : instantiableObjectKind<data>;
export type describeObject<o extends object> = objectKindOf<o> extends string ? objectKindDescriptions[objectKindOf<o>] : domainDescriptions["object"];
export type describeObject<o extends object, opts extends DescribeOptions = {}> = objectKindOf<o> extends string ? [
opts["includeArticles"]
] extends [true] ? objectKindDescriptions[objectKindOf<o>] : objectKindOf<o> : [opts["includeArticles"]] extends [true] ? domainDescriptions["object"] : "object";
type instantiableObjectKind<data extends object> = {

@@ -29,0 +32,0 @@ [kind in keyof builtinConstructors]: data extends (InstanceType<builtinConstructors[kind]>) ? kind : never;

{
"name": "@arktype/util",
"version": "0.0.58",
"version": "0.1.0",
"author": {

@@ -21,2 +21,5 @@ "name": "David Blass",

],
"publishConfig": {
"access": "public"
},
"scripts": {

@@ -23,0 +26,0 @@ "build": "tsx ../repo/build.ts",

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