functype 0.9.0 → 0.9.1
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.
- package/dist/{Either-C-PDWX2U.d.ts → Either-BHep7I0d.d.ts} +7 -2
- package/dist/{Serializable-D9GKEo30.d.ts → Serializable-BbKuhDDL.d.ts} +14 -3
- package/dist/branded/index.d.ts +4 -6
- package/dist/branded/index.mjs +1 -1
- package/dist/chunk-GHBOC52G.mjs +43 -0
- package/dist/chunk-GHBOC52G.mjs.map +1 -0
- package/dist/chunk-R2TQJN3P.mjs +2 -0
- package/dist/chunk-R2TQJN3P.mjs.map +1 -0
- package/dist/either/index.d.ts +2 -2
- package/dist/either/index.mjs +1 -1
- package/dist/fpromise/index.d.ts +2 -2
- package/dist/fpromise/index.mjs +1 -1
- package/dist/index.d.ts +28 -20
- package/dist/index.mjs +1 -1
- package/dist/list/index.d.ts +2 -2
- package/dist/list/index.mjs +1 -1
- package/dist/map/index.d.ts +2 -2
- package/dist/map/index.mjs +1 -1
- package/dist/option/index.d.ts +2 -2
- package/dist/option/index.mjs +1 -1
- package/dist/set/index.d.ts +2 -2
- package/dist/set/index.mjs +1 -1
- package/dist/try/index.d.ts +2 -2
- package/dist/try/index.mjs +1 -1
- package/dist/tuple/index.d.ts +1 -1
- package/package.json +3 -3
- package/readme/BUNDLE_OPTIMIZATION.md +74 -0
- package/readme/FPromise-Assessment.md +43 -0
- package/readme/HKT.md +110 -0
- package/readme/ROADMAP.md +113 -0
- package/readme/TASK-TODO.md +33 -0
- package/readme/TUPLE-EXAMPLES.md +76 -0
- package/readme/TaskMigration.md +129 -0
- package/readme/ai-guide.md +406 -0
- package/readme/examples.md +2093 -0
- package/readme/quick-reference.md +514 -0
- package/readme/task-error-handling.md +283 -0
- package/readme/tasks.md +203 -0
- package/readme/type-index.md +238 -0
- package/dist/chunk-4EYCKDDF.mjs +0 -43
- package/dist/chunk-4EYCKDDF.mjs.map +0 -1
- package/dist/chunk-V6LFV5LW.mjs +0 -2
- package/dist/chunk-V6LFV5LW.mjs.map +0 -1
package/dist/chunk-V6LFV5LW.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(n,r){return Object.assign(r,{unbrand(){return r},unwrap(){return r},toString(){return `${n}(${String(r)})`}})}function d(n){return n.unbrand()}function a(n,r){return n!=null}function o(n){return r=>e(n,r)}var s=n=>r=>e(n,r),i=n=>r=>e(n,r),K=n=>r=>e(n,r);export{e as a,d as b,a as c,o as d,s as e,i as f,K as g};//# sourceMappingURL=chunk-V6LFV5LW.mjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-V6LFV5LW.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/branded/Brand.ts"],"names":["Brand","brand","value","unbrand","branded","hasBrand","createBrander","BrandedString","BrandedNumber","BrandedBoolean"],"mappings":"AAyBO,SAASA,EAA2BC,CAAAA,CAAUC,CAAAA,CAAuB,CAE1E,OAAO,OAAO,MAAA,CADEA,CAAAA,CACc,CAC5B,OAAA,EAAa,CACX,OAAOA,CACT,EACA,MAAA,EAAY,CACV,OAAOA,CACT,CAAA,CACA,QAAA,EAAmB,CACjB,OAAO,CAAA,EAAGD,CAAK,IAAI,MAAA,CAAOC,CAAK,CAAC,CAAA,CAAA,CAClC,CACF,CAAC,CACH,CAOO,SAASC,CAAAA,CAAWC,EAA8B,CACvD,OAAOA,EAAQ,OAAA,EACjB,CAaO,SAASC,EAA8BH,CAAAA,CAAgBD,CAAAA,CAAgC,CAG5F,OAAOC,GAAU,IACnB,CAOO,SAASI,CAAAA,CAAmCL,EAAU,CAC3D,OAAQC,GAA0BF,CAAAA,CAAMC,CAAAA,CAAOC,CAAK,CACtD,CAQO,IAAMK,CAAAA,CACQN,GAClBC,CAAAA,EACCF,CAAAA,CAAMC,EAAOC,CAAK,CAAA,CAETM,EACQP,CAAAA,EAClBC,CAAAA,EACCF,CAAAA,CAAMC,CAAAA,CAAOC,CAAK,CAAA,CAETO,CAAAA,CACQR,GAClBC,CAAAA,EACCF,CAAAA,CAAMC,EAAOC,CAAK","file":"chunk-V6LFV5LW.mjs","sourcesContent":["/**\n * Brand is a utility for creating nominal typing in TypeScript\n * It allows for creating distinct types that are structurally identical\n * but considered different by TypeScript's type system\n */\n\n// The brand symbol type with instance methods\nexport type Brand<K extends string, T> = T & {\n readonly __brand: K\n readonly unbrand: () => T\n readonly unwrap: () => T\n}\n\n// Utility type to extract the underlying type from a branded type\nexport type Unbrand<T> = T extends Brand<string, infer U> ? U : never\n\n// Utility type to extract the brand from a branded type\nexport type ExtractBrand<T> = T extends Brand<infer K, unknown> ? K : never\n\n/**\n * Helper to create a branded type with instance methods\n * @param brand - The brand name\n * @param value - The value to brand\n * @returns The branded value with unbrand/unwrap methods\n */\nexport function Brand<K extends string, T>(brand: K, value: T): Brand<K, T> {\n const branded = value as Brand<K, T>\n return Object.assign(branded, {\n unbrand(): T {\n return value\n },\n unwrap(): T {\n return value\n },\n toString(): string {\n return `${brand}(${String(value)})`\n },\n })\n}\n\n/**\n * Helper to remove a brand from a value\n * @param branded - The branded value\n * @returns The original value without the brand\n */\nexport function unbrand<T>(branded: Brand<string, T>): T {\n return branded.unbrand()\n}\n\n/**\n * Type guard for checking if a value has a specific brand\n * @param value - The value to check\n * @param brand - The brand to check for\n * @returns True if the value has the specified brand\n *\n * Note: Since brands are phantom types that exist only at compile time,\n * this function can only provide a runtime approximation. It always returns true\n * for non-null values, as we have no way to actually check the brand at runtime.\n * This function is primarily for API consistency and documentation purposes.\n */\nexport function hasBrand<K extends string, T>(value: unknown, brand: K): value is Brand<K, T> {\n // In a phantom type system, we can't actually check the brand at runtime\n // We can only verify the value exists\n return value !== null && value !== undefined\n}\n\n/**\n * Create a branded type constructor for a specific brand\n * @param brand - The brand name\n * @returns A function that brands values with the specified brand\n */\nexport function createBrander<K extends string, T>(brand: K) {\n return (value: T): Brand<K, T> => Brand(brand, value)\n}\n\n// Common branded primitive types\nexport type BrandedString<K extends string> = Brand<K, string>\nexport type BrandedNumber<K extends string> = Brand<K, number>\nexport type BrandedBoolean<K extends string> = Brand<K, boolean>\n\n// Factory for common primitive branded types\nexport const BrandedString =\n <K extends string>(brand: K) =>\n (value: string): BrandedString<K> =>\n Brand(brand, value)\n\nexport const BrandedNumber =\n <K extends string>(brand: K) =>\n (value: number): BrandedNumber<K> =>\n Brand(brand, value)\n\nexport const BrandedBoolean =\n <K extends string>(brand: K) =>\n (value: boolean): BrandedBoolean<K> =>\n Brand(brand, value)\n"]}
|