@duplojs/utils 1.0.1 → 1.0.3

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.
@@ -1,6 +1,6 @@
1
- import { type IsEqual, type AnyValue, type EscapeVoid, type FixDeepFunctionInfer } from "../common";
1
+ import { type IsEqual, type AnyValue, type EscapeVoid, type FixDeepFunctionInfer, type BreakGenericLink } from "../common";
2
2
  import { type PatternValue, type Pattern } from "./types/pattern";
3
3
  import { type PatternResult } from "./result";
4
4
  import { type ComplexMatchedValue, type ComplexUnMatchedValue } from "./types";
5
- export declare function match<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, const GenericPattern extends Pattern<GenericInputValue>, GenericPatternValue extends PatternValue<GenericPattern>, GenericOutput extends AnyValue | EscapeVoid, GenericMatchedValue extends Extract<ComplexMatchedValue<GenericInputValue, GenericPatternValue>, any>>(pattern: FixDeepFunctionInfer<Pattern<GenericInputValue>, GenericPattern>, theFunction: (value: Extract<ComplexMatchedValue<GenericInputValue, PatternValue<GenericPattern>>, any>) => GenericOutput): (input: GenericInput | GenericInputValue | GenericInputPatternResult) => ((IsEqual<GenericMatchedValue, never> extends true ? never : PatternResult<GenericOutput>) | GenericInputPatternResult | Extract<ComplexUnMatchedValue<GenericInputValue, GenericPatternValue>, any>);
5
+ export declare function match<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, const GenericPattern extends Pattern<GenericInputValue>, GenericPatternValue extends PatternValue<GenericPattern>, GenericOutput extends AnyValue | EscapeVoid, GenericMatchedValue extends Extract<ComplexMatchedValue<GenericInputValue, GenericPatternValue>, any>>(pattern: FixDeepFunctionInfer<Pattern<GenericInputValue>, GenericPattern>, theFunction: (value: Extract<ComplexMatchedValue<GenericInputValue, PatternValue<GenericPattern>>, any>) => GenericOutput): (input: GenericInput | GenericInputValue | GenericInputPatternResult) => ((IsEqual<GenericMatchedValue, never> extends true ? never : PatternResult<GenericOutput>) | GenericInputPatternResult | (Extract<ComplexUnMatchedValue<GenericInputValue, GenericPatternValue>, any> extends infer InferredResult ? BreakGenericLink<InferredResult> : never));
6
6
  export declare function match<GenericInput extends AnyValue, GenericInputValue extends Exclude<GenericInput, PatternResult>, GenericInputPatternResult extends Extract<GenericInput, PatternResult>, const GenericPattern extends Pattern<GenericInputValue>, GenericPatternValue extends PatternValue<GenericPattern>, GenericOutput extends AnyValue | EscapeVoid, GenericMatchedValue extends Extract<ComplexMatchedValue<GenericInputValue, GenericPatternValue>, any>>(input: GenericInput | GenericInputValue | GenericInputPatternResult, pattern: FixDeepFunctionInfer<Pattern<GenericInputValue>, GenericPattern>, theFunction: (value: Extract<ComplexMatchedValue<GenericInputValue, PatternValue<GenericPattern>>, any>) => GenericOutput): ((IsEqual<GenericMatchedValue, never> extends true ? never : PatternResult<GenericOutput>) | GenericInputPatternResult | Extract<ComplexUnMatchedValue<GenericInputValue, GenericPatternValue>, any>);
@@ -25,10 +25,10 @@ type ComplexMatchedTupleTuple<GenericInput extends unknown, GenericPatternValue
25
25
  ] extends [
26
26
  readonly [infer InferredInputFirst, ...infer inferredInputRest],
27
27
  readonly [infer InferredPatternValueFirst, ...infer inferredPatternValueRest]
28
- ] ? Extract<ComplexMatchedValue<InferredInputFirst, InferredPatternValueFirst>, any> extends infer InferredResult extends InferredInputFirst ? IsEqual<InferredResult, never> extends true ? never : [
28
+ ] ? Extract<ComplexMatchedValue<InferredInputFirst, InferredPatternValueFirst>, any> extends infer InferredResult ? Extract<InferredResult, any> extends InferredInputFirst ? IsEqual<InferredResult, never> extends true ? never : [
29
29
  InferredResult,
30
30
  ...Adaptor<(IsEqual<inferredPatternValueRest[number], never> extends true ? inferredInputRest : ComplexMatchedValue<inferredInputRest, inferredPatternValueRest>), readonly any[]>
31
- ] : never : never : never : never : never : never);
31
+ ] : never : never : never : never : never : never : never);
32
32
  type ComplexMatchedArrayArray<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
33
33
  Exclude<Extract<GenericInput, readonly any[]>, AnyTuple>,
34
34
  Exclude<Extract<GenericPatternValue, readonly any[]>, AnyTuple>
@@ -1,5 +1,6 @@
1
1
  import { type Adaptor, type SimplifyTopLevel, type IsEqual } from "../../../common";
2
2
  import { type ComplexMatchedValue } from ".";
3
+ import { type GetPropsWithValue } from "../../../object";
3
4
  export type ComplexMatchedObject<GenericInput extends unknown, GenericPatternValue extends unknown> = ([
4
5
  Exclude<Extract<GenericInput, object>, readonly any[]>,
5
6
  Exclude<Extract<GenericPatternValue, object>, readonly any[]>
@@ -8,4 +9,4 @@ export type ComplexMatchedObject<GenericInput extends unknown, GenericPatternVal
8
9
  infer InferredPatternValue
9
10
  ] ? InferredInput extends any ? InferredPatternValue extends any ? Extract<InferredInput, InferredPatternValue> extends infer InferredObviousMatchedValue ? IsEqual<InferredObviousMatchedValue, never> extends false ? InferredObviousMatchedValue : IsEqual<Extract<keyof InferredInput, keyof InferredPatternValue>, keyof InferredPatternValue> extends false ? never : SimplifyTopLevel<Omit<InferredInput, keyof InferredPatternValue> & {
10
11
  -readonly [Prop in keyof InferredPatternValue]: Extract<ComplexMatchedValue<InferredInput[Adaptor<Prop, keyof InferredInput>], InferredPatternValue[Prop]>, any>;
11
- }> extends infer InferredResult extends InferredInput ? IsEqual<InferredResult, InferredInput> extends true ? InferredInput : InferredResult : never : never : never : never : never);
12
+ }> extends infer InferredResult extends object ? Extract<InferredResult, any> extends InferredInput ? IsEqual<InferredResult, InferredInput> extends true ? InferredInput : IsEqual<GetPropsWithValue<Pick<InferredResult, Adaptor<keyof InferredPatternValue, keyof InferredResult>>, never>, never> extends true ? InferredResult : never : never : never : never : never : never : never);
@@ -31,6 +31,7 @@ var lastIndexOf = require('./lastIndexOf.cjs');
31
31
  var repeat = require('./repeat.cjs');
32
32
  var normalize = require('./normalize.cjs');
33
33
  var test = require('./test.cjs');
34
+ var isIn = require('./isIn.cjs');
34
35
 
35
36
 
36
37
 
@@ -65,3 +66,4 @@ exports.lastIndexOf = lastIndexOf.lastIndexOf;
65
66
  exports.repeat = repeat.repeat;
66
67
  exports.normalize = normalize.normalize;
67
68
  exports.test = test.test;
69
+ exports.isIn = isIn.isIn;
@@ -26,3 +26,4 @@ export * from "./lastIndexOf";
26
26
  export * from "./repeat";
27
27
  export * from "./normalize";
28
28
  export * from "./test";
29
+ export * from "./isIn";
@@ -29,3 +29,4 @@ export { lastIndexOf } from './lastIndexOf.mjs';
29
29
  export { repeat } from './repeat.mjs';
30
30
  export { normalize } from './normalize.mjs';
31
31
  export { test } from './test.mjs';
32
+ export { isIn } from './isIn.mjs';
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ function isIn(...args) {
4
+ if (args.length === 1) {
5
+ const [array] = args;
6
+ return (input) => isIn(input, array);
7
+ }
8
+ const [input, array] = args;
9
+ return array.includes(input);
10
+ }
11
+
12
+ exports.isIn = isIn;
@@ -0,0 +1,2 @@
1
+ export declare function isIn<GenericInput extends string, GenericValue extends string>(array: readonly GenericValue[]): (input: GenericInput) => input is Extract<GenericInput, GenericValue>;
2
+ export declare function isIn<GenericInput extends string, GenericValue extends string>(input: GenericInput, array: readonly GenericValue[]): input is Extract<GenericInput, GenericValue>;
@@ -0,0 +1,10 @@
1
+ function isIn(...args) {
2
+ if (args.length === 1) {
3
+ const [array] = args;
4
+ return (input) => isIn(input, array);
5
+ }
6
+ const [input, array] = args;
7
+ return array.includes(input);
8
+ }
9
+
10
+ export { isIn };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplojs/utils",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "author": "mathcovax",
5
5
  "license": "MIT",
6
6
  "type": "module",