New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@bedard/types

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bedard/types - npm Package Compare versions

Comparing version 0.4.0 to 0.5.1

dist/BreakWords.d.ts

8

CHANGELOG.md
# Changelog
## 0.5.0
- [`BreakWords<T>`](https://github.com/scottbedard/types#breakcaset)
- [`CamelCase<T>`](https://github.com/scottbedard/types#camelcaset)
- [`MapCapitalize<T>`](https://github.com/scottbedard/types#mapcapitalizet)
- [`MapLowercase<T>`](https://github.com/scottbedard/types#maplowercaset)
- [`PascalCase<T>`](https://github.com/scottbedard/types#pascalcaset)
- [`SnakeCase<T>`](https://github.com/scottbedard/types#snakecaset)
## 0.4.0

@@ -4,0 +12,0 @@

14

dist/index.d.ts

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

declare const version = "0.4.0";
/**
* Lowercase English alphabet
*/
type Alphabet = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
declare const version = "0.5.1";
export { BreakWords } from './BreakWords';
export { CamelCase } from './CamelCase';
export { Difference } from './Difference';

@@ -7,6 +13,10 @@ export { Equal } from './Equal';

export { Join } from './Join';
export { MapCapitalize } from './MapCapitalize';
export { MapLowercase } from './MapLowercase';
export { NotEqual } from './NotEqual';
export { Opaque } from './Opaque';
export { PascalCase } from './PascalCase';
export { Pop } from './Pop';
export { Shift } from './Shift';
export { SnakeCase } from './SnakeCase';
export { Split } from './Split';

@@ -17,2 +27,2 @@ export { SymmetricDifference } from './SymetricDifference';

export { XOR } from './XOR';
export { version };
export { Alphabet, version };

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

declare const version = "0.4.0";
/**
* Lowercase English alphabet
*/
type Alphabet = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z";
declare const version = "0.5.1";
export { BreakWords } from './BreakWords';
export { CamelCase } from './CamelCase';
export { Difference } from './Difference';

@@ -7,6 +13,10 @@ export { Equal } from './Equal';

export { Join } from './Join';
export { MapCapitalize } from './MapCapitalize';
export { MapLowercase } from './MapLowercase';
export { NotEqual } from './NotEqual';
export { Opaque } from './Opaque';
export { PascalCase } from './PascalCase';
export { Pop } from './Pop';
export { Shift } from './Shift';
export { SnakeCase } from './SnakeCase';
export { Split } from './Split';

@@ -17,2 +27,2 @@ export { SymmetricDifference } from './SymetricDifference';

export { XOR } from './XOR';
export { version };
export { Alphabet, version };

2

dist/index.esm.js

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

const version = '0.4.0';
const version = '0.5.1';
export { version };

@@ -5,4 +5,4 @@ 'use strict';

const version = '0.4.0';
const version = '0.5.1';
exports.version = version;

@@ -10,7 +10,33 @@ /**

Source extends string,
Delimeter extends string | string[] = ''
> = Delimeter extends string[]
? WalkDelimeters<[Source], Delimeter>
: WalkString<Source, Delimeter>
// walk over single string and split by delimeter
type WalkString<
Source extends string,
Delimeter extends string = '',
> = Source extends `${infer Head}${Delimeter}${infer Tail}`
? [Head, ...Split<Tail, Delimeter>]
? [Head, ...WalkString<Tail, Delimeter>]
: Source extends Delimeter
? []
: [Source]
// walk over strings and split each by delimeter
type WalkParts<
Parts extends string[],
Delimeter extends string,
Acc extends string[] = [],
> = Parts extends [infer Head, ...infer Tail]
? WalkParts<Tail, Delimeter, [...Acc, ...WalkString<Head, Delimeter>]>
: Acc
// walk over delimeters and split parts by current delimeter
type WalkDelimeters<
Parts extends string[],
Delimeters extends string[],
Acc extends string[] = [],
> = Delimeters extends [infer Head, ...infer Tail]
? WalkDelimeters<WalkParts<Parts, Head>, Tail>
: Parts

@@ -8,6 +8,9 @@ {

"devDependencies": {
"@types/jest": "^27.0.2",
"copyfiles": "^2.4.1",
"jest": "^27.2.1",
"rollup": "^2.56.3",
"rollup-plugin-delete": "^2.0.0",
"rollup-plugin-ts": "^1.4.2",
"ts-jest": "^27.0.5",
"typescript": "^4.4.3"

@@ -29,5 +32,7 @@ },

"publish:ci": "node ./scripts/publish.js",
"test": "tsc tests/*.ts --listFiles --noEmit"
"test:clear": "jest --clearCache",
"test:watch": "jest --watch",
"test": "jest"
},
"version": "0.4.0"
"version": "0.5.1"
}

@@ -21,2 +21,4 @@ # `@bedard/types`

- [`BreakWords<T>`](#breakwordst)
- [`CamelCase<T>`](#camelcaset)
- [`Difference<A, B>`](#differencea-b)

@@ -27,6 +29,10 @@ - [`Equal<A, B>`](#equala-b)

- [`Join<Parts, Delimeter>`](#joinparts-delimeter)
- [`MapCapitalize<T>`](#mapcapitalizet)
- [`MapLowercase<T>`](#maplowercaset)
- [`NotEqual<A, B>`](#notequala-b)
- [`Opaque<T, Token>`](#opaquet-token)
- [`PascalCase<T>`](#pascalcaset)
- [`Pop<T>`](#popt)
- [`Shift<T>`](#shiftt)
- [`SnakeCase<T>`](#snakecaset)
- [`Split<Source, Delimeter>`](#splitsource-delimeter)

@@ -38,2 +44,22 @@ - [`SymmetricDifference<A, B>`](#symmetricdifferencea-b)

### `BreakWords<T>`
Explode a string by common word breaks. This currently includes spaces, hyphens, underscores, and camel casing.
```ts
import { BreakWords } from '@bedard/types'
type Words = BreakWords<'one two-three_fourFive'> // ['one', 'two', 'three', 'four', 'Five']
```
### `CamelCase<T>`
Convert a string to camel case.
```ts
import { CamelCase } from '@bedard/types'
type Str = CamelCase<'foo-bar'> // 'fooBar'
```
### `Difference<A, B>`

@@ -91,2 +117,22 @@

### `MapCapitalize<T>`
Capitalize the first letter of each string.
```ts
import { MapCapitalize } from '@bedard/types'
type Capitalized = MapLowercase<['foo', 'bar']> // ['Foo', 'Bar']
```
### `MapLowercase<T>`
Map strings to lowercase.
```ts
import { MapLowercase } from '@bedard/types'
type Lower = MapLowercase<['A', 'B']> // ['a', 'b']
```
### `NotEqual<A, B>`

@@ -114,2 +160,12 @@

### `PascalCase<T>`
Convert a string to pascal case.
```ts
import { PascalCase } from '@bedard/types'
type Str = PascalCase<'foo-bar'> // 'FooBar'
```
### `Pop<T>`

@@ -135,5 +191,15 @@

### `SnakeCase<T>`
Convert a string to snake case.
```ts
import { SnakeCase } from '@bedard/types'
type Str = SnakeCase<'fooBar'> // 'foo_bar'
```
### `Split<Source, Delimeter>`
Split `Source` by `Delimeter`. This type is the opposite of [`Join`](#joinparts-delimeter).
Split `Source` by `Delimeter`. This type is the opposite of [`Join`](#joinparts-delimeter). Note that to split by multiple delimeters the second argument must be a `string[]`, as unions will create a [distributive conditional type](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types).

@@ -145,3 +211,5 @@ ```ts

type Parts = Split<'a.b.c', '.'> // ['a', 'b', 'c']
type SingleDelimeter = Split<'a.b.c', '.'> // ['a', 'b', 'c']
type MultipleDelimeters = Split<'a.b-c', ['.', '-']> // ['a', 'b', 'c']
```

@@ -148,0 +216,0 @@

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

export { BreakWords } from './BreakWords'
export { CamelCase } from './CamelCase'
export { Difference } from './Difference'

@@ -6,6 +8,10 @@ export { Equal } from './Equal'

export { Join } from './Join'
export { MapCapitalize } from './MapCapitalize'
export { MapLowercase } from './MapLowercase'
export { NotEqual } from './NotEqual'
export { Opaque } from './Opaque'
export { PascalCase } from './PascalCase'
export { Pop } from './Pop'
export { Shift } from './Shift'
export { SnakeCase } from './SnakeCase'
export { Split } from './Split'

@@ -16,3 +22,4 @@ export { SymmetricDifference } from './SymetricDifference'

export { XOR } from './XOR'
export * from './utils'
export const version = '0.4.0'
export const version = '0.5.1'

@@ -10,7 +10,33 @@ /**

Source extends string,
Delimeter extends string | string[] = ''
> = Delimeter extends string[]
? WalkDelimeters<[Source], Delimeter>
: WalkString<Source, Delimeter>
// walk over single string and split by delimeter
type WalkString<
Source extends string,
Delimeter extends string = '',
> = Source extends `${infer Head}${Delimeter}${infer Tail}`
? [Head, ...Split<Tail, Delimeter>]
? [Head, ...WalkString<Tail, Delimeter>]
: Source extends Delimeter
? []
: [Source]
// walk over strings and split each by delimeter
type WalkParts<
Parts extends string[],
Delimeter extends string,
Acc extends string[] = [],
> = Parts extends [infer Head, ...infer Tail]
? WalkParts<Tail, Delimeter, [...Acc, ...WalkString<Head, Delimeter>]>
: Acc
// walk over delimeters and split parts by current delimeter
type WalkDelimeters<
Parts extends string[],
Delimeters extends string[],
Acc extends string[] = [],
> = Delimeters extends [infer Head, ...infer Tail]
? WalkDelimeters<WalkParts<Parts, Head>, Tail>
: Parts

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