Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 tshy 来默认支持 cjs 和 esm #5257

Open
fengmk2 opened this issue Sep 14, 2023 · 15 comments
Open

使用 tshy 来默认支持 cjs 和 esm #5257

fengmk2 opened this issue Sep 14, 2023 · 15 comments
Assignees

Comments

@fengmk2
Copy link
Member

fengmk2 commented Sep 14, 2023

请详细告知你的新点子(Nice Ideas):

node-modules/urllib#468 目前看起来没有什么问题,非常轻松就支持了。

修改内容

  • package.json
  "engines": {
    "node": ">= 18.19.0"
  },
  "devDependencies": {
    "@arethetypeswrong/cli": "^0.17.1",
    "@eggjs/tsconfig": "1",
    "@types/node": "22",
    "@types/mocha": "10",
    "@eggjs/bin": "7",
    "eslint": "8",
    "eslint-config-egg": "14",
    "rimraf": "6",
    "tshy": "3",
    "tshy-after": "1",
    "typescript": "5"
  },
  "scripts": {
    "lint": "eslint --cache src test --ext .ts",
    "pretest": "npm run clean && npm run lint -- --fix",
    "test": "egg-bin test",
    "preci": "npm run clean &&  npm run lint",
    "ci": "egg-bin cov",
    "postci": "npm run prepublishOnly && npm run clean",
    "clean": "rimraf dist",
    "prepublishOnly": "tshy && tshy-after && attw --pack"
  },
  "type": "module",
  "tshy": {
    "exports": {
      ".": "./src/index.ts",
      "./package.json": "./package.json"
    }
  },
  "exports": {
    ".": {
      "import": {
        "types": "./dist/esm/index.d.ts",
        "default": "./dist/esm/index.js"
      },
      "require": {
        "types": "./dist/commonjs/index.d.ts",
        "default": "./dist/commonjs/index.js"
      }
    },
    "./package.json": "./package.json"
  },
  "files": [
    "dist",
    "src"
  ],
  "types": "./dist/commonjs/index.d.ts",
  "main": "./dist/commonjs/index.js"

插件配置

"eggPlugin": {
    "name": "development",
    "env": [
      "local"
    ],
    "dependencies": [
      "watcher"
    ],
    "exports": {
      "import": "./dist/esm",
      "require": "./dist/commonjs",
      "typescript": "./src"
    }
  },
  • pr welcome
[![Node.js Version](https://img.shields.io/node/v/{group/repo}.svg?style=flat)](https://nodejs.org/en/download/)

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)

![CodeRabbit Pull Request Reviews](https://img.shields.io/coderabbit/prs/github/eggjs/:repo)
  • contributors
## Contributors

[![Contributors](https://contrib.rocks/image?repo={group/repo})](https://github.com/{group/repo}/graphs/contributors)

Made with [contributors-img](https://contrib.rocks).
  • commit log
feat: support cjs and esm both by tshy

BREAKING CHANGE: drop Node.js < 18.19.0 support

part of https://github.com/eggjs/egg/issues/3644

https://github.com/eggjs/egg/issues/5257
  • __dirname 单测中的 helper 方法

test/helper.ts

import path from 'node:path';
import { fileURLToPath } from 'node:url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export function getFixtures(filename: string) {
  return path.join(__dirname, filename);
}
  • 获取代码根目录
export function getSourceDirname() {
  if (typeof __dirname === 'string') {
    return __dirname;
  }
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-ignore
  const __filename = fileURLToPath(import.meta.url);
  return path.dirname(__filename);
}
  • .github/workflows/nodejs.yml
name: CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  Job:
    name: Node.js
    uses: node-modules/github-actions/.github/workflows/node-test.yml@master
    with:
      os: 'ubuntu-latest, macos-latest, windows-latest'
      version: '18.19.0, 18, 20, 22'
    secrets:
      CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
  • .github/workflows/release.yml
name: Release

on:
  push:
    branches: [ master ]

jobs:
  release:
    name: Node.js
    uses: node-modules/github-actions/.github/workflows/node-release.yml@master
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
      GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
  • .github/workflows/pkg.pr.new.yml
name: Publish Any Commit
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - run: corepack enable
      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm install

      - name: Build
        run: npm run prepublishOnly --if-present

      - run: npx pkg-pr-new publish
  • tsconfig.json
{
  "extends": "@eggjs/tsconfig",
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext"
  }
}
  • .eslintrc
{
  "extends": [
    "eslint-config-egg/typescript",
    "eslint-config-egg/lib/rules/enforce-node-prefix"
  ]
}
  • .gitignore
.tshy*
.eslintcache
dist
coverage

Sub Error

export class ClusterAgentWorkerError extends Error {
  id: number;
  /**
   * pid in process mode
   * tid in worker_threads mode
   */
  workerId: number;
  status: string;

  constructor(id: number, workerId: number, status: string, error: Error) {
    const message = `Got agent worker error: ${error.message}`;
    super(message, { cause: error });
    this.name = this.constructor.name;
    this.id = id;
    this.workerId = workerId;
    this.status = status;
    Error.captureStackTrace(this, this.constructor);
  }
}
@fengmk2 fengmk2 self-assigned this Sep 14, 2023
@fengmk2
Copy link
Member Author

fengmk2 commented Sep 15, 2023

node-modules/is-type-of#22
eggjs/bin#239 egg-bin 需要支持 esm 跑 test 和 cov

@fengmk2
Copy link
Member Author

fengmk2 commented Sep 16, 2023

@fengmk2
Copy link
Member Author

fengmk2 commented Sep 17, 2023

通过 https://github.com/node-modules/tshy-after 保留 package.json types 配置。

@fengmk2
Copy link
Member Author

fengmk2 commented Sep 22, 2023

node-modules/address#37

fengmk2 added a commit to node-modules/node-homedir that referenced this issue Oct 5, 2023
BREAKING CHANGE: Drop Node.js < 16 support

eggjs/egg#5257
@fengmk2
Copy link
Member Author

fengmk2 commented Oct 5, 2023

fengmk2 added a commit to node-modules/node-homedir that referenced this issue Oct 5, 2023
BREAKING CHANGE: Drop Node.js < 16 support

eggjs/egg#5257
fengmk2 pushed a commit to node-modules/node-homedir that referenced this issue Oct 5, 2023
[skip ci]

## [2.0.0](v1.1.1...v2.0.0) (2023-10-05)

### ⚠ BREAKING CHANGES

* Drop Node.js < 16 support

eggjs/egg#5257

### Features

* refactor with typescript ([#7](#7)) ([9e2a9ff](9e2a9ff))
@fengmk2
Copy link
Member Author

fengmk2 commented Oct 5, 2023

fengmk2 added a commit to node-modules/oss-client that referenced this issue Oct 5, 2023
BREAKING CHANGE: Drop Node.js < 16 support

Other BREAKING changes:
- remove stsToken support
- remove headerEncoding support
- remove Bucket, Image Client support

eggjs/egg#5257
fengmk2 pushed a commit to node-modules/oss-client that referenced this issue Oct 5, 2023
[skip ci]

## [2.0.0](v1.2.6...v2.0.0) (2023-10-05)

### ⚠ BREAKING CHANGES

* Drop Node.js < 16 support

Other BREAKING changes:
- remove stsToken support
- remove headerEncoding support
- remove Bucket, Image Client support

eggjs/egg#5257

### Features

* refactor with typescript ([#12](#12)) ([5a0eb01](5a0eb01))
@fengmk2
Copy link
Member Author

fengmk2 commented Oct 10, 2023

fengmk2 added a commit to node-modules/get-ready that referenced this issue Oct 10, 2023
fengmk2 added a commit to node-modules/get-ready that referenced this issue Oct 10, 2023
fengmk2 pushed a commit to node-modules/ready-callback that referenced this issue Oct 11, 2023
BREAKING CHANGE: Drop Node.js < 16 support

closes #116

part of eggjs/egg#5257

---------

Co-authored-by: hanquliu <[email protected]>
fengmk2 pushed a commit to node-modules/ready-callback that referenced this issue Oct 11, 2023
[skip ci]

## [4.0.0](v3.0.0...v4.0.0) (2023-10-11)

### ⚠ BREAKING CHANGES

* Drop Node.js < 16 support

closes #116

part of eggjs/egg#5257

### Features

* refactor with typescript to support esm and cjs both ([#117](#117)) ([7193ec1](7193ec1))
@fengmk2 fengmk2 pinned this issue Oct 14, 2023
fengmk2 added a commit to eggjs/egg-cors that referenced this issue Dec 11, 2023
BREAKING CHANGE: drop Node.js < 14

deps: use @koa/[email protected]

eggjs/egg#5257
fengmk2 added a commit to eggjs/egg-cors that referenced this issue Dec 11, 2023
BREAKING CHANGE: drop Node.js < 16

deps: use @koa/[email protected]

eggjs/egg#5257
fengmk2 added a commit to eggjs/egg-cors that referenced this issue Dec 11, 2023
BREAKING CHANGE: drop Node.js < 16

deps: use @koa/[email protected]

eggjs/egg#5257
fengmk2 added a commit to eggjs/egg-cors that referenced this issue Dec 11, 2023
BREAKING CHANGE: drop Node.js < 14

eggjs/egg#5257
fengmk2 pushed a commit to node-modules/pedding that referenced this issue Dec 22, 2024
[skip ci]

## [2.0.0](v1.1.0...v2.0.0) (2024-12-22)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced new workflows for continuous integration, package
publishing, and release management.
- Added TypeScript support with a new configuration file and strict
type-checking.
- New `pending` function implemented for managing callback execution
limits.

- **Bug Fixes**
- Corrected function name from `pedding` to `pending` in usage examples.

- **Documentation**
	- Updated `README.md` with new badges and improved usage examples.
	- Added MIT License to the project.

- **Chores**
- Removed outdated files and configurations, including `.jshintignore`,
`.travis.yml`, `AUTHORS`, and `component.json`.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#6](#6)) ([d2352dc](d2352dc))
fengmk2 added a commit to eggjs/bin that referenced this issue Dec 27, 2024
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

use https://oclif.io

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
	- Removed pull request template for contributors.
	- Introduced a new workflow for automating commit publishing.
	- Added scripts for executing Node.js applications in development mode.
	- Updated the README to reflect the new package name and other details.
	- Enhanced command classes for testing and development functionalities.
	- Added new utility functions for better path handling in tests.
	- Introduced new interface for package configuration.
	- Added support for TypeScript with updated configurations.
	- Implemented a new logging mechanism in hooks for better debugging.
- Introduced a new class for managing server readiness in demo
applications.

- **Bug Fixes**
- Adjusted import paths in tests for compatibility with new module
structure.

- **Documentation**
- Updated README and various documentation links to reflect changes in
package structure.

- **Chores**
- Updated package configurations, including versioning and dependencies.
	- Removed obsolete files and configurations from the project.
	- Enhanced test suite structure and clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to eggjs/bin that referenced this issue Dec 27, 2024
[skip ci]

## [7.0.0](v6.13.0...v7.0.0) (2024-12-27)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

use https://oclif.io

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
	- Removed pull request template for contributors.
	- Introduced a new workflow for automating commit publishing.
	- Added scripts for executing Node.js applications in development mode.
	- Updated the README to reflect the new package name and other details.
	- Enhanced command classes for testing and development functionalities.
	- Added new utility functions for better path handling in tests.
	- Introduced new interface for package configuration.
	- Added support for TypeScript with updated configurations.
	- Implemented a new logging mechanism in hooks for better debugging.
- Introduced a new class for managing server readiness in demo
applications.

- **Bug Fixes**
- Adjusted import paths in tests for compatibility with new module
structure.

- **Documentation**
- Updated README and various documentation links to reflect changes in
package structure.

- **Chores**
- Updated package configurations, including versioning and dependencies.
	- Removed obsolete files and configurations from the project.
	- Enhanced test suite structure and clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#279](#279)) ([7078748](7078748))
fengmk2 added a commit to eggjs/mock that referenced this issue Dec 29, 2024
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 pushed a commit to eggjs/mock that referenced this issue Dec 29, 2024
[skip ci]

## [6.0.0](v5.15.1...v6.0.0) (2024-12-29)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

### Features

* support cjs and esm both by tshy ([#178](#178)) ([674b1ca](674b1ca))
fengmk2 added a commit to eggjs/examples that referenced this issue Dec 29, 2024
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/scripts that referenced this issue Dec 30, 2024
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/scripts that referenced this issue Dec 31, 2024
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
	- Added support for ECMAScript modules (ESM).
	- Enhanced CLI with more robust start and stop commands.
	- Improved TypeScript integration and type safety.
	- Introduced new commands for stopping an Egg.js server application.
	- Added new configuration options for logging and process management.

- **Improvements**
	- Updated package configuration for better modularity.
	- Modernized test infrastructure with TypeScript support.
	- Refined error handling and logging mechanisms.
	- Enhanced process management capabilities.
- Improved documentation with updated installation instructions and
usage examples.

- **Breaking Changes**
	- Renamed package from `egg-scripts` to `@eggjs/scripts`.
	- Requires Node.js version 18.19.0 or higher.
	- Significant changes to project structure and module exports.

- **Bug Fixes**
	- Improved process management for server start and stop operations.
	- Enhanced cross-platform compatibility.
- Fixed issues with asynchronous route handlers in various applications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to eggjs/scripts that referenced this issue Dec 31, 2024
[skip ci]

## [4.0.0](v3.1.0...v4.0.0) (2024-12-31)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
	- Added support for ECMAScript modules (ESM).
	- Enhanced CLI with more robust start and stop commands.
	- Improved TypeScript integration and type safety.
	- Introduced new commands for stopping an Egg.js server application.
	- Added new configuration options for logging and process management.

- **Improvements**
	- Updated package configuration for better modularity.
	- Modernized test infrastructure with TypeScript support.
	- Refined error handling and logging mechanisms.
	- Enhanced process management capabilities.
- Improved documentation with updated installation instructions and
usage examples.

- **Breaking Changes**
	- Renamed package from `egg-scripts` to `@eggjs/scripts`.
	- Requires Node.js version 18.19.0 or higher.
	- Significant changes to project structure and module exports.

- **Bug Fixes**
	- Improved process management for server start and stop operations.
	- Enhanced cross-platform compatibility.
- Fixed issues with asynchronous route handlers in various applications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#63](#63)) ([d9d0bc6](d9d0bc6))
fengmk2 added a commit to eggjs/egg-boilerplate-ts that referenced this issue Jan 3, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/development that referenced this issue Jan 3, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/development that referenced this issue Jan 7, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/development that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

Based on the comprehensive changes, here are the release notes:

## Release Notes for @eggjs/development

- **New Features**
	- Added TypeScript support for development environment
	- Enhanced file watching and reloading mechanisms
	- Improved configuration options for development mode

- **Breaking Changes**
	- Migrated from `egg-development` to `@eggjs/development`
	- Requires Node.js version >=18.19.0
	- Dropped support for Node.js 14 and 16

- **Improvements**
	- Refined ESLint configuration
	- Updated GitHub Actions workflow to focus on macOS testing
	- Added more robust file change detection
	- Enhanced type safety across the project

- **Bug Fixes**
	- Improved handling of file reloading in different scenarios
	- Fixed potential issues with asset and service file monitoring

- **Chores**
	- Updated dependencies
	- Migrated test suite to TypeScript
	- Restructured project configuration

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to eggjs/development that referenced this issue Jan 11, 2025
[skip ci]

## [4.0.0](v3.0.2...v4.0.0) (2025-01-11)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

Based on the comprehensive changes, here are the release notes:

## Release Notes for @eggjs/development

- **New Features**
	- Added TypeScript support for development environment
	- Enhanced file watching and reloading mechanisms
	- Improved configuration options for development mode

- **Breaking Changes**
	- Migrated from `egg-development` to `@eggjs/development`
	- Requires Node.js version >=18.19.0
	- Dropped support for Node.js 14 and 16

- **Improvements**
	- Refined ESLint configuration
	- Updated GitHub Actions workflow to focus on macOS testing
	- Added more robust file change detection
	- Enhanced type safety across the project

- **Bug Fixes**
	- Improved handling of file reloading in different scenarios
	- Fixed potential issues with asset and service file monitoring

- **Chores**
	- Updated dependencies
	- Migrated test suite to TypeScript
	- Restructured project configuration

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#34](#34)) ([7a63cd6](7a63cd6))
fengmk2 added a commit to node-modules/jsonp-body that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to node-modules/jsonp-body that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Configuration Updates**
  - Updated ESLint configuration to improve code quality and consistency
  - Removed legacy configuration files (JSHint, Travis CI)
  - Added TypeScript configuration with strict type checking

- **CI/CD Improvements**
  - Replaced Travis CI with GitHub Actions workflows
  - Added automated testing and release processes
  - Configured Node.js version support (18.19.0, 20, 22)

- **Project Maintenance**
  - Updated README with modern badges and documentation
  - Simplified package configuration
  - Removed outdated contributor information

- **Development Environment**
  - Updated `.gitignore` to reflect current project structure
  - Added coverage and build-related ignore rules

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to node-modules/jsonp-body that referenced this issue Jan 11, 2025
[skip ci]

## [2.0.0](v1.1.0...v2.0.0) (2025-01-11)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Configuration Updates**
  - Updated ESLint configuration to improve code quality and consistency
  - Removed legacy configuration files (JSHint, Travis CI)
  - Added TypeScript configuration with strict type checking

- **CI/CD Improvements**
  - Replaced Travis CI with GitHub Actions workflows
  - Added automated testing and release processes
  - Configured Node.js version support (18.19.0, 20, 22)

- **Project Maintenance**
  - Updated README with modern badges and documentation
  - Simplified package configuration
  - Removed outdated contributor information

- **Development Environment**
  - Updated `.gitignore` to reflect current project structure
  - Added coverage and build-related ignore rules

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#5](#5)) ([fa2f0ff](fa2f0ff))
fengmk2 added a commit to eggjs/jsonp that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/jsonp that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
  - Added TypeScript support for the JSONP plugin
  - Modernized project structure with ES module syntax
  - Enhanced type definitions and configuration
  - Introduced new GitHub Actions workflows for CI/CD
  - Added a new class for JSONP error handling

- **Breaking Changes**
  - Renamed package from `egg-jsonp` to `@eggjs/jsonp`
  - Dropped support for Node.js versions below 18.19.0
  - Refactored configuration and middleware approach

- **Improvements**
  - Updated GitHub Actions workflows for CI/CD
  - Improved security checks for JSONP requests
  - Added more robust error handling
  - Enhanced logging configuration

- **Dependency Updates**
  - Updated core dependencies
  - Migrated to modern TypeScript tooling
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to eggjs/jsonp that referenced this issue Jan 11, 2025
[skip ci]

## [3.0.0](v2.0.0...v3.0.0) (2025-01-11)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

- **New Features**
  - Added TypeScript support for the JSONP plugin
  - Modernized project structure with ES module syntax
  - Enhanced type definitions and configuration
  - Introduced new GitHub Actions workflows for CI/CD
  - Added a new class for JSONP error handling

- **Breaking Changes**
  - Renamed package from `egg-jsonp` to `@eggjs/jsonp`
  - Dropped support for Node.js versions below 18.19.0
  - Refactored configuration and middleware approach

- **Improvements**
  - Updated GitHub Actions workflows for CI/CD
  - Improved security checks for JSONP requests
  - Added more robust error handling
  - Enhanced logging configuration

- **Dependency Updates**
  - Updated core dependencies
  - Migrated to modern TypeScript tooling
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#12](#12)) ([9136768](9136768))
fengmk2 added a commit to eggjs/i18n that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257
fengmk2 added a commit to eggjs/i18n that referenced this issue Jan 11, 2025
BREAKING CHANGE: drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

Based on the comprehensive changes, here are the updated release notes:

- **New Features**
  - Migrated package to TypeScript with improved type safety.
- Enhanced internationalization (i18n) support with more flexible
configuration.
  - Added comprehensive GitHub Actions workflows for CI/CD.

- **Improvements**
  - Updated Node.js compatibility to version 18.19.0+.
  - Modernized module system with ES module support.
  - Refined configuration and localization mechanisms.

- **Breaking Changes**
  - Package renamed from `egg-i18n` to `@eggjs/i18n`.
  - Switched from CommonJS to ES module syntax.
  - Removed legacy configuration files and testing infrastructure.

- **Chores**
  - Cleaned up and simplified project structure.
  - Updated dependencies and development tooling.
  - Improved documentation and README.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
fengmk2 pushed a commit to eggjs/i18n that referenced this issue Jan 11, 2025
[skip ci]

## [3.0.0](v2.1.1...v3.0.0) (2025-01-11)

### ⚠ BREAKING CHANGES

* drop Node.js < 18.19.0 support

part of eggjs/egg#3644

eggjs/egg#5257

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

Based on the comprehensive changes, here are the updated release notes:

- **New Features**
  - Migrated package to TypeScript with improved type safety.
- Enhanced internationalization (i18n) support with more flexible
configuration.
  - Added comprehensive GitHub Actions workflows for CI/CD.

- **Improvements**
  - Updated Node.js compatibility to version 18.19.0+.
  - Modernized module system with ES module support.
  - Refined configuration and localization mechanisms.

- **Breaking Changes**
  - Package renamed from `egg-i18n` to `@eggjs/i18n`.
  - Switched from CommonJS to ES module syntax.
  - Removed legacy configuration files and testing infrastructure.

- **Chores**
  - Cleaned up and simplified project structure.
  - Updated dependencies and development tooling.
  - Improved documentation and README.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

### Features

* support cjs and esm both by tshy ([#14](#14)) ([ccc8eaa](ccc8eaa))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

2 participants