Socket
Socket
Sign inDemoInstall

scule

Package Overview
Dependencies
0
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.2 to 1.0.0

37

dist/index.d.ts

@@ -1,10 +0,31 @@

declare function isUppercase(char?: string): boolean | null;
declare function splitByCase(str: string, splitters?: string[]): string[];
declare function upperFirst(str: string): string;
declare function lowerFirst(str: string): string;
declare function pascalCase(str?: string | string[]): string;
declare function camelCase(str?: string | string[]): string;
declare function kebabCase(str?: string | string[], joiner?: string): string;
declare function snakeCase(str?: string | string[]): string;
declare type Splitter = "-" | "_" | "/" | ".";
declare type FirstOfString<S extends string> = S extends `${infer F}${string}` ? F : never;
declare type RemoveFirstOfString<S extends string> = S extends `${string}${infer R}` ? R : never;
declare type IsUpper<S extends string> = S extends Uppercase<S> ? true : false;
declare type IsLower<S extends string> = S extends Lowercase<S> ? true : false;
declare type SameLetterCase<X extends string, Y extends string> = IsUpper<X> extends IsUpper<Y> ? true : IsLower<X> extends IsLower<Y> ? true : false;
declare type CapitalizedWords<T extends readonly string[], Accumulator extends string = ""> = T extends readonly [infer F extends string, ...infer R extends string[]] ? CapitalizedWords<R, `${Accumulator}${Capitalize<F>}`> : Accumulator;
declare type JoinLowercaseWords<T extends readonly string[], Joiner extends string, Accumulator extends string = ""> = T extends readonly [infer F extends string, ...infer R extends string[]] ? Accumulator extends "" ? JoinLowercaseWords<R, Joiner, `${Accumulator}${Lowercase<F>}`> : JoinLowercaseWords<R, Joiner, `${Accumulator}${Joiner}${Lowercase<F>}`> : Accumulator;
declare type LastOfArray<T extends any[]> = T extends [...any, infer R] ? R : never;
declare type RemoveLastOfArray<T extends any[]> = T extends [...infer F, any] ? F : never;
declare type SplitByCase<T, Separator extends string = Splitter, Accumulator extends unknown[] = []> = string extends Separator ? string[] : T extends `${infer F}${infer R}` ? [LastOfArray<Accumulator>] extends [never] ? SplitByCase<R, Separator, [F]> : LastOfArray<Accumulator> extends string ? R extends "" ? SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : SameLetterCase<F, FirstOfString<R>> extends true ? F extends Separator ? FirstOfString<R> extends Separator ? SplitByCase<R, Separator, [...Accumulator, ""]> : IsUpper<FirstOfString<R>> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...Accumulator, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, ""]> : SplitByCase<R, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`]> : IsLower<F> extends true ? SplitByCase<RemoveFirstOfString<R>, Separator, [...RemoveLastOfArray<Accumulator>, `${LastOfArray<Accumulator>}${F}`, FirstOfString<R>]> : SplitByCase<R, Separator, [...Accumulator, F]> : never : Accumulator extends [] ? T extends "" ? [] : string[] : Accumulator;
declare type PascalCase<T> = string extends T ? string : string[] extends T ? string : T extends string ? SplitByCase<T> extends readonly string[] ? CapitalizedWords<SplitByCase<T>> : never : T extends readonly string[] ? CapitalizedWords<T> : never;
declare type CamelCase<T> = string extends T ? string : string[] extends T ? string : Uncapitalize<PascalCase<T>>;
declare type JoinByCase<T, Joiner extends string> = string extends T ? string : string[] extends T ? string : T extends string ? SplitByCase<T> extends readonly string[] ? JoinLowercaseWords<SplitByCase<T>, Joiner> : never : T extends readonly string[] ? JoinLowercaseWords<T, Joiner> : never;
declare function isUppercase(char?: string): boolean | undefined;
declare function splitByCase<T extends string>(string_: T): SplitByCase<T>;
declare function splitByCase<T extends string, Separator extends readonly string[]>(string_: T, separators: Separator): SplitByCase<T, Separator[number]>;
declare function upperFirst<S extends string>(string_: S): Capitalize<S>;
declare function lowerFirst<S extends string>(string_: S): Uncapitalize<S>;
declare function pascalCase(): "";
declare function pascalCase<T extends string | readonly string[]>(string_: T): PascalCase<T>;
declare function camelCase(): "";
declare function camelCase<T extends string | readonly string[]>(string_: T): CamelCase<T>;
declare function kebabCase(): "";
declare function kebabCase<T extends string | readonly string[]>(string_: T): JoinByCase<T, "-">;
declare function kebabCase<T extends string | readonly string[], Joiner extends string>(string_: T, joiner: Joiner): JoinByCase<T, Joiner>;
declare function snakeCase(): "";
declare function snakeCase<T extends string | readonly string[]>(string_: T): JoinByCase<T, "_">;
export { camelCase, isUppercase, kebabCase, lowerFirst, pascalCase, snakeCase, splitByCase, upperFirst };
{
"name": "scule",
"version": "0.3.2",
"version": "1.0.0",
"description": "String case utils",

@@ -22,14 +22,2 @@ "repository": "unjs/scule",

],
"devDependencies": {
"@nuxtjs/eslint-config-typescript": "latest",
"@types/flat": "latest",
"@types/node": "latest",
"c8": "^7.12.0",
"eslint": "latest",
"standard-version": "latest",
"typescript": "latest",
"unbuild": "^0.7.6",
"vitest": "^0.19.1"
},
"packageManager": "pnpm@7.6.0",
"scripts": {

@@ -39,5 +27,17 @@ "build": "unbuild",

"lint": "eslint --ext .ts .",
"prepublishOnly": "pnpm build",
"release": "pnpm test && standard-version && git push --follow-tags && pnpm publish",
"test": "pnpm lint && vitest run --coverage"
}
}
},
"devDependencies": {
"@types/node": "^18.11.9",
"@vitest/coverage-c8": "^0.25.2",
"eslint": "^8.27.0",
"eslint-config-unjs": "^0.0.2",
"standard-version": "^9.5.0",
"typescript": "^4.8.4",
"unbuild": "^0.9.4",
"vitest": "^0.25.2"
},
"packageManager": "pnpm@7.16.0"
}

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc