From 1a34a095f4a5571fa2a5b9eecdae296739fe39d7 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 10:15:11 +1300 Subject: [PATCH 1/4] add remaining data types to minor-2.3 --- package.json | 1 + pnpm-lock.yaml | 9 +++++- public/codemods/minor-2.3.ts | 54 ++++++++++++++++++++++++++++++++++++ tsconfig.json | 15 +++------- 4 files changed, 67 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index fa44594..1ffb986 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@changesets/cli": "^2.27.1", "@effect/cli": "0.31.7", "@effect/eslint-plugin": "^0.1.2", + "@effect/language-service": "^0.1.0", "@effect/platform-node": "^0.42.7", "@effect/schema": "^0.61.5", "@types/doctrine": "0.0.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e92f177..2376c85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -22,6 +22,9 @@ devDependencies: '@effect/eslint-plugin': specifier: ^0.1.2 version: 0.1.2 + '@effect/language-service': + specifier: ^0.1.0 + version: 0.1.0 '@effect/platform-node': specifier: ^0.42.7 version: 0.42.7(@effect/platform@0.43.7)(effect@2.2.3) @@ -786,6 +789,10 @@ packages: diff: 5.1.0 dev: true + /@effect/language-service@0.1.0: + resolution: {integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==} + dev: true + /@effect/platform-node@0.42.7(@effect/platform@0.43.7)(effect@2.2.3): resolution: {integrity: sha512-bKXv8SncQNhAI24NVAxzGHHgjPaGejQJWWa5DpOakYp9Yx8DWJQh9FVC59o797nC7+g1gQVbng+eJVkDbymuFA==} peerDependencies: diff --git a/public/codemods/minor-2.3.ts b/public/codemods/minor-2.3.ts index 18b8b7d..9ee597e 100644 --- a/public/codemods/minor-2.3.ts +++ b/public/codemods/minor-2.3.ts @@ -10,9 +10,18 @@ export default function transformer(file: cs.FileInfo, api: cs.API) { swapParams(ast, "Effect", 3) swapParams(ast, "Stream", 3) swapParams(ast, "STM", 3) + swapParams(ast, "STMGen", 3) swapParams(ast, "Layer", 3) swapParams(ast, "Exit", 2) + swapParams(ast, "Take", 2) + swapParams(ast, "Fiber", 2) + swapParams(ast, "FiberRuntime", 2) + swapParams(ast, "Request", 2) + swapParams(ast, "Resource", 2) + swapParams(ast, "TExit", 2) + swapParams(ast, "TDeferred", 2) swapSchema(ast, j) + swapChannel(ast, j) }) root.find(j.VariableDeclaration).forEach(ast => { @@ -81,6 +90,51 @@ const popNever = (params: Array) => { } } +const popDefaults = (size: number, defaults: ReadonlyArray) => { + const defaultDiff = size - defaults.length + return (j: cs.API["jscodeshift"], params: Array) => { + for (let i = params.length; i > 0; i--) { + const def = defaults[i - 1 - defaultDiff] + const param = params[i - 1] + if (j(param).toSource() === def) { + params.pop() + } else { + break + } + } + } +} + +const popChannelDefaults = popDefaults(7, [ + "unknown", + "never", + "unknown", + "void", + "unknown", + "never", +]) +const swapChannel = ( + ast: cs.ASTPath, + j: cs.API["jscodeshift"], +) => { + if ( + hasName(ast, "Channel") && ast.value.typeParameters?.params.length === 7 + ) { + const params = ast.value.typeParameters.params + const newParams = [ + params[5], + params[2], + params[4], + params[1], + params[6], + params[3], + params[0], + ] + popChannelDefaults(j, newParams) + ast.value.typeParameters.params = newParams + } +} + const expressionHasName = (ast: k.ExpressionKind, name: string): boolean => { switch (ast.type) { case "Identifier": { diff --git a/tsconfig.json b/tsconfig.json index 597907b..00b2943 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,9 +6,7 @@ "noEmit": true, "module": "commonjs", "moduleResolution": "node", - "lib": [ - "es6" - ], + "lib": ["es6"], "sourceMap": false, "strict": true, "noImplicitReturns": true, @@ -18,13 +16,8 @@ "forceConsistentCasingInFileNames": true, "stripInternal": true, "skipLibCheck": true, - "types": [ - "vitest/globals" - ], + "types": ["vitest/globals"], + "plugins": [{ "name": "@effect/language-service" }], }, - "include": [ - "./src", - "./public/codemods", - "./test" - ], + "include": ["./src", "./public/codemods", "./test"], } From 8efe9fb5a4b6a645e79e6a8e229c4f306cd10c15 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 10:21:10 +1300 Subject: [PATCH 2/4] update /cli --- .changeset/tame-bugs-add.md | 5 + package.json | 12 +- pnpm-lock.yaml | 226 ++++++++++++++++++++---------------- src/main.ts | 9 +- 4 files changed, 136 insertions(+), 116 deletions(-) create mode 100644 .changeset/tame-bugs-add.md diff --git a/.changeset/tame-bugs-add.md b/.changeset/tame-bugs-add.md new file mode 100644 index 0000000..b24d9c2 --- /dev/null +++ b/.changeset/tame-bugs-add.md @@ -0,0 +1,5 @@ +--- +"@effect/codemod": patch +--- + +update /cli diff --git a/package.json b/package.json index 1ffb986..8ea4f1e 100644 --- a/package.json +++ b/package.json @@ -41,19 +41,19 @@ "devDependencies": { "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.1", - "@effect/cli": "0.31.7", + "@effect/cli": "0.32.0", "@effect/eslint-plugin": "^0.1.2", "@effect/language-service": "^0.1.0", - "@effect/platform-node": "^0.42.7", + "@effect/platform-node": "^0.42.9", "@effect/schema": "^0.61.5", "@types/doctrine": "0.0.9", "@types/fs-extra": "^11.0.4", "@types/glob": "^8.1.0", "@types/jscodeshift": "^0.11.11", - "@types/node": "^20.11.14", + "@types/node": "^20.11.16", "@types/prettier": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "@vitest/coverage-v8": "^1.2.2", "ast-types": "^0.14.2", "effect": "2.2.3", @@ -65,7 +65,7 @@ "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-sort-destructure-keys": "^1.5.0", "glob": "^10.3.10", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "rimraf": "^5.0.5", "ts-node": "^10.9.2", "tsup": "^8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2376c85..9f55f17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,8 +17,8 @@ devDependencies: specifier: ^2.27.1 version: 2.27.1 '@effect/cli': - specifier: 0.31.7 - version: 0.31.7(@effect/platform@0.43.7)(@effect/printer-ansi@0.31.12)(@effect/printer@0.30.12)(@effect/schema@0.61.5)(effect@2.2.3) + specifier: 0.32.0 + version: 0.32.0(@effect/platform@0.43.9)(@effect/printer-ansi@0.31.12)(@effect/printer@0.30.12)(@effect/schema@0.61.5)(effect@2.2.3) '@effect/eslint-plugin': specifier: ^0.1.2 version: 0.1.2 @@ -26,8 +26,8 @@ devDependencies: specifier: ^0.1.0 version: 0.1.0 '@effect/platform-node': - specifier: ^0.42.7 - version: 0.42.7(@effect/platform@0.43.7)(effect@2.2.3) + specifier: ^0.42.9 + version: 0.42.9(@effect/platform@0.43.9)(effect@2.2.3) '@effect/schema': specifier: ^0.61.5 version: 0.61.5(effect@2.2.3)(fast-check@3.15.1) @@ -44,17 +44,17 @@ devDependencies: specifier: ^0.11.11 version: 0.11.11 '@types/node': - specifier: ^20.11.14 - version: 20.11.14 + specifier: ^20.11.16 + version: 20.11.16 '@types/prettier': specifier: ^3.0.0 version: 3.0.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.20.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.20.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.21.0 + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) '@vitest/coverage-v8': specifier: ^1.2.2 version: 1.2.2(vitest@1.2.2) @@ -69,7 +69,7 @@ devDependencies: version: 8.56.0 eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + version: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) eslint-plugin-codegen: specifier: ^0.23.0 version: 0.23.0(eslint@8.56.0) @@ -78,7 +78,7 @@ devDependencies: version: 2.0.0(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) eslint-plugin-simple-import-sort: specifier: ^10.0.0 version: 10.0.0(eslint@8.56.0) @@ -89,14 +89,14 @@ devDependencies: specifier: ^10.3.10 version: 10.3.10 prettier: - specifier: ^3.2.4 - version: 3.2.4 + specifier: ^3.2.5 + version: 3.2.5 rimraf: specifier: ^5.0.5 version: 5.0.5 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.11.14)(typescript@5.3.3) + version: 10.9.2(@types/node@20.11.16)(typescript@5.3.3) tsup: specifier: ^8.0.1 version: 8.0.1(ts-node@10.9.2)(typescript@5.3.3) @@ -105,10 +105,10 @@ devDependencies: version: 5.3.3 vite: specifier: ^5.0.12 - version: 5.0.12(@types/node@20.11.14) + version: 5.0.12(@types/node@20.11.16) vitest: specifier: ^1.2.2 - version: 1.2.2(@types/node@20.11.14) + version: 1.2.2(@types/node@20.11.16) packages: @@ -762,16 +762,16 @@ packages: resolution: {integrity: sha512-rPwwm/RrFIolz6xHa8Kzpshuwpe+xu/XcEw9iUmRF2tnyIwxxaW7XoFKaQ+GfPju81cKpH4vJeq7/2IizKvyjg==} dev: true - /@effect/cli@0.31.7(@effect/platform@0.43.7)(@effect/printer-ansi@0.31.12)(@effect/printer@0.30.12)(@effect/schema@0.61.5)(effect@2.2.3): - resolution: {integrity: sha512-HsOfCvNVq1/NkDH5dvfxFWOOoDyAoLQDS+sSq3LYLQ+dPYE0n64uQpxQ76GBBCt6Seln21HV17srK998c+fJsw==} + /@effect/cli@0.32.0(@effect/platform@0.43.9)(@effect/printer-ansi@0.31.12)(@effect/printer@0.30.12)(@effect/schema@0.61.5)(effect@2.2.3): + resolution: {integrity: sha512-BT3NGM7UsUf9of20a2U3EneJflIewOWGJ6+0dO0VDzyyhv24nItXavi683A3eJrZ71DYda0P8bxheV6k6ofxKA==} peerDependencies: - '@effect/platform': ^0.43.7 + '@effect/platform': ^0.43.9 '@effect/printer': ^0.30.12 '@effect/printer-ansi': ^0.31.12 '@effect/schema': ^0.61.5 effect: ^2.2.3 dependencies: - '@effect/platform': 0.43.7(@effect/schema@0.61.5)(effect@2.2.3) + '@effect/platform': 0.43.9(@effect/schema@0.61.5)(effect@2.2.3) '@effect/printer': 0.30.12(@effect/typeclass@0.22.12)(effect@2.2.3) '@effect/printer-ansi': 0.31.12(@effect/typeclass@0.22.12)(effect@2.2.3) '@effect/schema': 0.61.5(effect@2.2.3)(fast-check@3.15.1) @@ -793,20 +793,20 @@ packages: resolution: {integrity: sha512-BnlM8LlaqCAYgdRfxlbR7gXGh/FD1scL1fPgNVJEPoOM08od1jtJz+iKhwfaud8TPnnhZR+TED2h5ynjanLeCQ==} dev: true - /@effect/platform-node@0.42.7(@effect/platform@0.43.7)(effect@2.2.3): - resolution: {integrity: sha512-bKXv8SncQNhAI24NVAxzGHHgjPaGejQJWWa5DpOakYp9Yx8DWJQh9FVC59o797nC7+g1gQVbng+eJVkDbymuFA==} + /@effect/platform-node@0.42.9(@effect/platform@0.43.9)(effect@2.2.3): + resolution: {integrity: sha512-+rFSznRdU+SDy4o6opMjSAYy1d+XI3+MA9r+OF4LEYrHwmaHJikQQIAjPPb8dVXrceebXSAPDqkz9ZisVch3og==} peerDependencies: - '@effect/platform': ^0.43.7 + '@effect/platform': ^0.43.9 effect: ^2.2.3 dependencies: - '@effect/platform': 0.43.7(@effect/schema@0.61.5)(effect@2.2.3) + '@effect/platform': 0.43.9(@effect/schema@0.61.5)(effect@2.2.3) effect: 2.2.3 mime: 3.0.0 multipasta: 0.1.21 dev: true - /@effect/platform@0.43.7(@effect/schema@0.61.5)(effect@2.2.3): - resolution: {integrity: sha512-2kyaXHQ/kRFOMj4evztgu8cmOp7jQY6WQwOtRs4D1U+JRwcrYFDyauaT0X9qeIcv3KV2KFhS7J7t0vOKgtMxrg==} + /@effect/platform@0.43.9(@effect/schema@0.61.5)(effect@2.2.3): + resolution: {integrity: sha512-ldpmj03OzQc576xoIO2/FfCwoXLFYKQqXE6k0WioyUnHdVLzgl7KE01CkJQD013xFtkX/+IOuhsyp0yWt3inCw==} peerDependencies: '@effect/schema': ^0.61.5 effect: ^2.2.3 @@ -1357,7 +1357,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.14 + '@types/node': 20.11.16 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -1699,21 +1699,21 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.11.14 + '@types/node': 20.11.16 dev: true /@types/glob@7.1.3: resolution: {integrity: sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.14 + '@types/node': 20.11.16 dev: true /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.14 + '@types/node': 20.11.16 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -1765,7 +1765,7 @@ packages: /@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.11.14 + '@types/node': 20.11.16 dev: true /@types/lodash@4.14.202: @@ -1790,8 +1790,8 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@20.11.14: - resolution: {integrity: sha512-w3yWCcwULefjP9DmDDsgUskrMoOy5Z8MiwKHr1FvqGPtx7CvJzQvxD7eKpxNtklQxLruxSXWddyeRtyud0RcXQ==} + /@types/node@20.11.16: + resolution: {integrity: sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==} dependencies: undici-types: 5.26.5 dev: true @@ -1804,7 +1804,7 @@ packages: resolution: {integrity: sha512-mFMBfMOz8QxhYVbuINtswBp9VL2b4Y0QqYHwqLz3YbgtfAcat2Dl6Y1o4e22S/OVE6Ebl9m7wWiMT2lSbAs1wA==} deprecated: This is a stub types definition. prettier provides its own type definitions, so you do not need this installed. dependencies: - prettier: 3.2.4 + prettier: 3.2.5 dev: true /@types/semver@7.5.3: @@ -1833,8 +1833,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1845,25 +1845,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1872,10 +1872,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -1883,12 +1883,12 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true /@typescript-eslint/scope-manager@6.7.4: @@ -1899,8 +1899,8 @@ packages: '@typescript-eslint/visitor-keys': 6.7.4 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1909,18 +1909,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -1929,8 +1929,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1938,14 +1938,14 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -1972,8 +1972,8 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1981,11 +1981,11 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) eslint: 8.56.0 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript @@ -2010,11 +2010,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2048,7 +2048,7 @@ packages: std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.2.2(@types/node@20.11.14) + vitest: 1.2.2(@types/node@20.11.16) transitivePeerDependencies: - supports-color dev: true @@ -2894,7 +2894,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2904,8 +2904,8 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.1 get-tsconfig: 4.7.2 is-core-module: 2.13.0 @@ -2917,7 +2917,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -2938,11 +2938,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color dev: true @@ -2961,7 +2961,7 @@ packages: '@types/jest': 29.0.0 '@types/js-yaml': 3.12.5 '@types/lodash': 4.14.202 - '@types/node': 20.11.14 + '@types/node': 20.11.16 dedent: 1.5.1 eslint-plugin-markdown: 3.0.1(eslint@8.56.0) expect: 29.7.0 @@ -2994,7 +2994,7 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -3004,7 +3004,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -3013,7 +3013,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -3626,6 +3626,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -3991,7 +3996,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.14 + '@types/node': 20.11.16 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4759,7 +4764,7 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - ts-node: 10.9.2(@types/node@20.11.14)(typescript@5.3.3) + ts-node: 10.9.2(@types/node@20.11.16)(typescript@5.3.3) yaml: 2.3.4 dev: true @@ -4793,8 +4798,8 @@ packages: hasBin: true dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -5059,6 +5064,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true @@ -5474,11 +5487,20 @@ packages: typescript: 5.3.3 dev: true + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node@10.9.2(@types/node@20.11.14)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.11.16)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -5497,7 +5519,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.14 + '@types/node': 20.11.16 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -5738,7 +5760,7 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-node@1.2.2(@types/node@20.11.14): + /vite-node@1.2.2(@types/node@20.11.16): resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5747,7 +5769,7 @@ packages: debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.14) + vite: 5.0.12(@types/node@20.11.16) transitivePeerDependencies: - '@types/node' - less @@ -5759,7 +5781,7 @@ packages: - terser dev: true - /vite@5.0.12(@types/node@20.11.14): + /vite@5.0.12(@types/node@20.11.16): resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5787,7 +5809,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.14 + '@types/node': 20.11.16 esbuild: 0.19.12 postcss: 8.4.33 rollup: 4.9.6 @@ -5795,7 +5817,7 @@ packages: fsevents: 2.3.3 dev: true - /vitest@1.2.2(@types/node@20.11.14): + /vitest@1.2.2(@types/node@20.11.16): resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -5820,7 +5842,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.11.14 + '@types/node': 20.11.16 '@vitest/expect': 1.2.2 '@vitest/runner': 1.2.2 '@vitest/snapshot': 1.2.2 @@ -5839,8 +5861,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.6.0 tinypool: 0.8.2 - vite: 5.0.12(@types/node@20.11.14) - vite-node: 1.2.2(@types/node@20.11.14) + vite: 5.0.12(@types/node@20.11.16) + vite-node: 1.2.2(@types/node@20.11.16) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/src/main.ts b/src/main.ts index 949e393..99300dd 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,18 +8,12 @@ import * as Console from "effect/Console" import * as Effect from "effect/Effect" import * as ReadonlyArray from "effect/ReadonlyArray" import * as jscodeshift from "jscodeshift/src/Runner" -import assert from "node:assert" import * as Fs from "node:fs" import * as Path from "node:path" -const codemodFiles = Fs.readdirSync(`${__dirname}/codemods`) -assert( - ReadonlyArray.isNonEmptyReadonlyArray(codemodFiles), - "Could not find any code mod files", -) const codemod = Args.choice( ReadonlyArray.map( - codemodFiles, + Fs.readdirSync(`${__dirname}/codemods`), file => [ Path.basename(file, ".ts"), Path.join(`${__dirname}/codemods`, file), @@ -34,7 +28,6 @@ const run = Command.make("codemod", { codemod, paths: Args.text({ name: "paths" }).pipe( Args.repeated, - Args.map(ReadonlyArray.fromIterable), // TODO: Remove when `Args.repeated` returns Array Args.withDescription("The paths to run the codemod on"), ), options: { From 955a56be0476dfd6a682d25d63db8550248acebd Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 10:21:40 +1300 Subject: [PATCH 3/4] changeset --- .changeset/kind-bats-try.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/kind-bats-try.md diff --git a/.changeset/kind-bats-try.md b/.changeset/kind-bats-try.md new file mode 100644 index 0000000..a336e03 --- /dev/null +++ b/.changeset/kind-bats-try.md @@ -0,0 +1,5 @@ +--- +"@effect/codemod": patch +--- + +add remaining data types to minor-2.3 From 8baa4787306c21159ed88ca9163b2408aac21108 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 7 Feb 2024 10:24:48 +1300 Subject: [PATCH 4/4] add Deferred --- public/codemods/minor-2.3.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/public/codemods/minor-2.3.ts b/public/codemods/minor-2.3.ts index 9ee597e..917fb15 100644 --- a/public/codemods/minor-2.3.ts +++ b/public/codemods/minor-2.3.ts @@ -19,6 +19,7 @@ export default function transformer(file: cs.FileInfo, api: cs.API) { swapParams(ast, "Request", 2) swapParams(ast, "Resource", 2) swapParams(ast, "TExit", 2) + swapParams(ast, "Deferred", 2) swapParams(ast, "TDeferred", 2) swapSchema(ast, j) swapChannel(ast, j)