@mapcss/core
Version:
Tiny, composable Atomic CSS engine
59 lines (58 loc) • 4.09 kB
TypeScript
export { isEmptyObject, isFunction, isLength0, isNumber, isObject, isString, isSymbol, } from "./deps/deno.land/x/isx@v1.0.0-beta.17/mod.js";
import { isUndefined } from "./deps/deno.land/x/isx@v1.0.0-beta.17/mod.js";
export { deepMerge } from "./deps/deno.land/std@0.122.0/collections/deep_merge.js";
export { associateWith } from "./deps/deno.land/std@0.123.0/collections/associate_with.js";
export { mapEntries } from "./deps/deno.land/std@0.123.0/collections/map_entries.js";
export { filterValues } from "./deps/deno.land/std@0.123.0/collections/filter_values.js";
export { distinctBy } from "./deps/deno.land/std@0.125.0/collections/distinct_by.js";
export { union } from "./deps/deno.land/std@0.125.0/collections/union.js";
export { sortBy } from "./deps/deno.land/std@0.125.0/collections/sort_by.js";
export { curry } from "./deps/deno.land/x/curry@v1.0.0/mod.js";
export { None, type Option, Some, } from "./deps/deno.land/x/monads@v0.5.10/option/option.js";
export { type Either, Left, Right, } from "./deps/deno.land/x/monads@v0.5.10/either/either.js";
export { isUndefined };
export type { AcceptedPlugin, ChildNode, ChildProps, Container, DeclarationProps, Plugin as PostcssPlugin, } from "./deps/deno.land/x/postcss@8.4.6/lib/postcss.d.js";
import Rule from "./deps/deno.land/x/postcss@8.4.6/lib/rule.js";
import Declaration from "./deps/deno.land/x/postcss@8.4.6/lib/declaration.js";
import AtRule from "./deps/deno.land/x/postcss@8.4.6/lib/at-rule.js";
import Root from "./deps/deno.land/x/postcss@8.4.6/lib/root.js";
import postcss from "./deps/deno.land/x/postcss@8.4.6/lib/postcss.js";
export { AtRule, Declaration, postcss, Root, Rule };
export { toAST, toObject, } from "./deps/deno.land/x/postcss_js@v1.0.0-beta.2/mod.js";
export declare function isStringOrNumber(value: unknown): value is string | number;
export declare function isRegExp(value: unknown): value is RegExp;
/** check field is exist or not */
export declare function has(key: PropertyKey, object: object): boolean;
/** safe get accessor */
export declare function prop<T extends PropertyKey, U extends Record<PropertyKey, any>>(key: T, object: U): U[T] extends U[T] ? U[T] | undefined : unknown;
/** take elements except head */
export declare function tail<T extends unknown>(val: readonly T[]): T[];
/** safe get accessor deeply */
export declare function propPath(path: PropertyKey[], object: Record<PropertyKey, any>): unknown;
/** Alias for `Tuple` */
declare type IsTuple<T extends readonly unknown[]> = number extends T["length"] ? false : true;
declare type ArrayOfLength<N extends number, C extends any[] = []> = C["length"] extends N ? C : ArrayOfLength<N, [...C, any]>;
declare type Minus<N extends number> = ArrayOfLength<N> extends [any, ...infer Rest] ? Rest["length"] : never;
/** take last element of `array` */
export declare function last<T extends readonly unknown[]>(value: T): IsTuple<T> extends true ? T[Minus<T["length"]>] : T[number] | undefined;
export declare function init<T>(value: readonly T[]): T[];
/** safe accessor for first element */
export declare function head<T extends readonly unknown[]>(value: T): IsTuple<T> extends true ? T[0] : T[0] | undefined;
export declare type PropPath<T extends Record<any, any>, P extends unknown[] | unknown> = P extends unknown[] ? P extends [infer X, ...infer Rest] ? PropPath<T[X], Rest> : T : T[P] | undefined;
/** High precision round */
export declare function roundTo(num: number, digit: number): number;
export declare type Arrayable<T> = T | T[];
export declare type Optional<T extends Record<PropertyKey, unknown>, K extends PropertyKey> = {
[k in K]?: T[k];
} & {
[k in keyof Omit<T, K>]: T[k];
};
export declare type ReplaceKeys<U, T, Y> = {
[k in keyof U]: k extends keyof Y ? Y[k] : k extends Exclude<keyof U, T> ? U[k] : never;
};
export declare type PartialByKeys<T extends {}, U = keyof T> = Omit<Partial<Pick<T, U & keyof T>> & Omit<T, U & keyof T>, never>;
interface Chain<T> {
map<U>(fn: (val: T) => U): Chain<U>;
unwrap(): T | never;
}
export declare function chain<T>(val: T): Chain<T>;