Skip to content

Conversation

@google-labs-jules
Copy link

This change migrates the entire ppipe library from JavaScript to TypeScript. It includes updating dependencies, build scripts, and converting all source and test files. The new version is fully tested and functional.

This commit migrates the entire `ppipe` library from JavaScript to TypeScript.

The migration includes:
- Adding TypeScript and related development dependencies.
- Creating a `tsconfig.json` file.
- Updating the build and test scripts in `package.json`.
- Converting all JavaScript source files to TypeScript.
- Translating the tests to TypeScript and ensuring they all pass.

The core `Piped` type is currently defined as `any`. This is a pragmatic compromise due to the highly dynamic nature of the library, which uses a Proxy to implement its fluent interface. A fully type-safe version of this API is very challenging to achieve in TypeScript without a major architectural redesign. The current implementation provides a solid, working foundation for future improvements to the type system.
This commit migrates the entire `ppipe` library from JavaScript to TypeScript.

The migration includes:
- Adding TypeScript and related development dependencies.
- Creating a `tsconfig.json` file.
- Updating the build and test scripts in `package.json`.
- Converting all JavaScript source files to TypeScript.
- Translating the tests to TypeScript and ensuring they all pass.

The core `Piped` type is currently defined as `any`. This is a pragmatic compromise due to the highly dynamic nature of the library, which uses a Proxy to implement its fluent interface. A fully type-safe version of this API is very challenging to achieve in TypeScript without a major architectural redesign. The current implementation provides a solid, working foundation for future improvements to the type system.
This commit migrates the entire `ppipe` library from JavaScript to TypeScript.

The migration includes:
- Adding TypeScript and related development dependencies.
- Creating a `tsconfig.json` file.
- Updating the build and test scripts in `package.json`.
- Converting all JavaScript source files to TypeScript.
- Translating the tests to TypeScript and ensuring they all pass.

The core `Piped` type is currently defined as `any`. This is a pragmatic compromise due to the highly dynamic nature of the library, which uses a Proxy to implement its fluent interface. A fully type-safe version of this API is very challenging to achieve in TypeScript without a major architectural redesign. The current implementation provides a solid, working foundation for future improvements to the type system.
This commit migrates the entire `ppipe` library from JavaScript to TypeScript.

The migration includes:
- Adding TypeScript and related development dependencies.
- Creating a `tsconfig.json` file.
- Updating the build and test scripts in `package.json`.
- Converting all JavaScript source files to TypeScript.
- Translating the tests to TypeScript and ensuring they all pass.

The library has been refactored to be fully type-safe, avoiding the use of `any` in the public API. The new API is based on a `Piped` class that provides a fluent, type-safe interface for chaining operations.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant