UNPKG

@markandrus/effect-derive

Version:

Derive Covariant (Functor), Foldable, and Traversable instances, as well as base functors, for algebraic data types (ADTs)

53 lines 3.81 kB
{ "name": "@markandrus/effect-derive", "version": "0.1.1", "description": "Derive Covariant (Functor), Foldable, and Traversable instances, as well as base functors, for algebraic data types (ADTs)", "type": "module", "main": "lib/index.js", "exports": { "import": "lib/index.js", "module-sync": "lib/index.js", "types": "lib/index.d.ts" }, "bin": { "effect-derive": "bin/effect-derive.js" }, "keywords": [ "effect", "derive", "deriving", "functor", "covariant", "foldable", "traversable", "corecursive", "recursion-schemes" ], "author": "Mark Roberts <markandrusroberts@gmail.com>", "license": "BSD-3-Clause", "dependencies": { "@effect/typeclass": "^0.29.15", "effect": "^3.10.15", "ts-morph": "^24.0.0" }, "devDependencies": { "@tsconfig/node22": "^22.0.0", "@types/node": "^22.9.0", "tsx": "^4.19.2", "typescript": "^5.6.3" }, "scripts": { "build": "rm -rf lib && tsc", "generate:Complex": "tsx src/index.ts Covariant Foldable Traversable --for-type Complex --discriminator type --in-file src/examples/Complex.ts --out-file src/examples/Covariant.derived.ts --covariant './src/examples/Sum.derived#Covariant#Sum<A, _>' --covariant './src/examples/Product.derived#Covariant#Product<A, _>' --covariant '@effect/typeclass/data/Array#Covariant#ReadonlyArray<_>' --foldable './src/examples/Sum.derived#Foldable#Sum<A, _>' --foldable './src/examples/Product.derived#Foldable#Product<A, _>' --foldable '@effect/typeclass/data/Array#Foldable#ReadonlyArray<_>' --traversable './src/examples/Sum.derived#Traversable#Sum<A, _>' --traversable './src/examples/Product.derived#Traversable#Product<A, _>' --traversable '@effect/typeclass/data/Array#Traversable#ReadonlyArray<_>'", "generate:List": "tsx src/index.ts Covariant Foldable Traversable --for-type List --discriminator type --in-file src/examples/List.ts --out-file src/examples/List.derived.ts", "generate:ListF": "tsx src/index.ts BaseFunctor Recursive Corecursive --for-type List --discriminator type --in-file src/examples/List.ts --out-file src/examples/ListF.derived.ts --type-lambda './src/examples/List.derived#ListTypeLambda#List'", "generate:Maybe": "tsx src/index.ts Covariant Foldable Traversable --for-type Maybe --discriminator type --in-file src/examples/Maybe.ts --out-file src/examples/Maybe.derived.ts", "generate:NonEmptyList": "tsx src/index.ts Covariant Foldable Traversable --for-type NonEmptyList --in-file src/examples/NonEmptyList.ts --out-file src/examples/NonEmptyList.derived.ts --covariant './src/examples/Maybe.derived#Covariant#Maybe<_>' --foldable './src/examples/Maybe.derived#Foldable#Maybe<_>' --traversable './src/examples/Maybe.derived#Traversable#Maybe<_>'", "generate:PeanoF": "tsx src/index.ts BaseFunctor Foldable Traversable Recursive Corecursive --for-type Peano --discriminator type --in-file src/examples/Peano.ts --out-file src/examples/PeanoF.derived.ts", "generate:Product": "tsx src/index.ts Covariant Foldable Traversable --for-type Product --in-file src/examples/Product.ts --out-file src/examples/Product.derived.ts", "generate:RoseTree": "tsx src/index.ts Covariant Foldable Traversable --for-type RoseTree --in-file src/examples/RoseTree.ts --out-file src/examples/RoseTree.derived.ts --covariant '@effect/typeclass/data/Array#Covariant#ReadonlyArray<_>' --foldable '@effect/typeclass/data/Array#Foldable#ReadonlyArray<_>' --traversable '@effect/typeclass/data/Array#Traversable#ReadonlyArray<_>'", "generate:Sum": "tsx src/index.ts Covariant Foldable Traversable --for-type Sum --discriminator type --in-file src/examples/Sum.ts --out-file src/examples/Sum.derived.ts", "prepublish": "rm -rf lib && tsc", "test": "tsx test/index.ts" } }