Skip to content

Commit c09ad45

Browse files
committed
refactor: Initial v4 rewrite
1 parent 125d379 commit c09ad45

File tree

142 files changed

+3698
-15561
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+3698
-15561
lines changed

.all-contributorsrc

-171
This file was deleted.

.editorconfig

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ ij_javascript_align_multiline_extends_list = false
3434
ij_javascript_align_multiline_for = true
3535
ij_javascript_align_multiline_parameters = true
3636
ij_javascript_align_multiline_parameters_in_calls = false
37-
ij_javascript_align_multiline_ternary_operation = true
37+
ij_javascript_align_multiline_ternary_operation = false
3838
ij_javascript_align_object_properties = 0
3939
ij_javascript_align_union_types = false
4040
ij_javascript_align_var_statements = 0
@@ -218,7 +218,7 @@ ij_typescript_align_multiline_extends_list = false
218218
ij_typescript_align_multiline_for = true
219219
ij_typescript_align_multiline_parameters = true
220220
ij_typescript_align_multiline_parameters_in_calls = false
221-
ij_typescript_align_multiline_ternary_operation = true
221+
ij_typescript_align_multiline_ternary_operation = false
222222
ij_typescript_align_object_properties = 0
223223
ij_typescript_align_union_types = false
224224
ij_typescript_align_var_statements = 0

.github/workflows/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ jobs:
3434
run: yarn test
3535
env:
3636
CI: true
37+
TEST_TARGET: dist

.github/workflows/publish.yml

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
run: yarn test
4242
env:
4343
CI: true
44+
TEST_TARGET: dist
4445

4546
- name: Generate Release Body
4647
run: npx extract-changelog-release > RELEASE_BODY.md

.idea/inspectionProfiles/Project_Default.xml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

jest.config.ts

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ const config: Config.InitialOptions = {
1212
},
1313
modulePaths: [ "<rootDir>" ],
1414
roots: [ '<rootDir>' ],
15+
setupFilesAfterEnv: [ "./test/src/setup.ts" ]
1516
}
1617

1718
export default config;

package.json

+14-6
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@
77
"scripts": {
88
"compile": "tsc",
99
"build": "yarn run clean && yarn run compile && yarn run check:built-types",
10+
"check:built-types": "tsc dist/index.d.ts --esModuleInterop",
11+
"-------------- ": "",
1012
"test": "jest",
11-
"release": "standard-version",
13+
"test:src": "cross-env TEST_TARGET=src jest",
14+
"test:dist": "cross-env TEST_TARGET=dist jest",
1215
"--------------": "",
1316
"format": "prettier --write \"{src,test}/**/{*.js,!(*.d).ts}\"",
1417
"clean": "npx rimraf dist **/*.tsbuildinfo",
1518
"clean:all": "yarn run clean && npx rimraf node_modules **/node_modules test/.yarn-cache",
1619
"reset": "yarn run clean:all && yarn install && yarn build",
17-
"check:built-types": "tsc dist/index.d.ts --esModuleInterop",
1820
"-------------- ": "",
1921
"prebuild": "npx rimraf dist",
20-
"install:tests": "cd test && yarn install && cd projects/extras && yarn install",
22+
"install:tests": "cd test && yarn install",
2123
"prepare": "yarn run install:tests"
2224
},
2325
"keywords": [
@@ -55,20 +57,26 @@
5557
"@types/jest": "^26.0.24",
5658
"@types/minimatch": "^3.0.5",
5759
"@types/node": "^16.4.10",
60+
"@types/ts-expose-internals": "npm:[email protected]",
61+
"cross-env": "^7.0.3",
5862
"jest": "^27.0.6",
5963
"prettier": "^2.3.2",
6064
"rimraf": "^3.0.2",
6165
"standard-version": "^9.3.1",
62-
"ts-expose-internals": "^4.4.3",
6366
"ts-jest": "^27.0.4",
6467
"ts-node": "^10.1.0",
6568
"ts-patch": "^1.4.4",
66-
"typescript": "^4.4.3"
69+
"ts3": "npm:[email protected]",
70+
"ts45": "npm:[email protected]",
71+
"typescript": "latest"
6772
},
6873
"peerDependencies": {
69-
"typescript": ">=3.6.5"
74+
"typescript": ">=4.2.2"
7075
},
7176
"dependencies": {
7277
"minimatch": "^3.0.4"
78+
},
79+
"prettier": {
80+
"singleQuote": true
7381
}
7482
}

register.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ try {
88
}
99

1010
tsNode.register();
11-
require('./').register();
11+
require('./').nodeRegister();

src/register.ts renamed to src/compatibility/node-register.ts

+24-15
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,51 @@
11
import type TSNode from "ts-node";
22
import type { REGISTER_INSTANCE } from "ts-node";
3-
import ts from "typescript";
4-
import transformer from "./transformer";
3+
import type TS from "typescript";
4+
import { transformer } from "../transform";
55

66
/* ****************************************************************************************************************** */
77
// region: Helpers
88
/* ****************************************************************************************************************** */
99

10-
function getProjectTransformerConfig(pcl: ts.ParsedCommandLine) {
10+
const checkModuleIsTsTp = (m: string) => {
11+
let transformerModule: any;
12+
try {
13+
transformerModule = require(m);
14+
} catch {}
15+
16+
if (!transformerModule) return m === 'typescript-transform-paths';
17+
18+
return transformerModule.isTsTp;
19+
}
20+
21+
function getProjectTransformerConfig(pcl: TS.ParsedCommandLine) {
1122
const plugins = pcl.options.plugins as Record<string, string>[] | undefined;
1223
if (!plugins) return;
1324

1425
const res: { afterDeclarations?: Record<string, string>; before?: Record<string, string> } = {};
1526
for (const plugin of plugins) {
16-
if (plugin.transform === "typescript-transform-paths" && !plugin.after)
27+
if (plugin.transform && checkModuleIsTsTp(plugin.transform) && !plugin.after)
1728
res[plugin.afterDeclarations ? "afterDeclarations" : "before"] = plugin;
1829
}
1930

2031
return res;
2132
}
2233

2334
function getTransformers(
24-
program?: ts.Program,
35+
program?: TS.Program,
2536
beforeConfig?: Record<string, string>,
2637
afterDeclarationsConfig?: Record<string, string>
27-
): ts.CustomTransformers {
38+
): TS.CustomTransformers {
2839
return {
2940
...(beforeConfig && { before: [transformer(program, beforeConfig)] }),
3041
...(afterDeclarationsConfig && { afterDeclarations: [transformer(program, afterDeclarationsConfig)] }),
31-
} as ts.CustomTransformers;
42+
} as TS.CustomTransformers;
3243
}
3344

3445
export function mergeTransformers(
35-
baseTransformers: ts.CustomTransformers,
36-
transformers: ts.CustomTransformers
37-
): ts.CustomTransformers {
46+
baseTransformers: TS.CustomTransformers,
47+
transformers: TS.CustomTransformers
48+
): TS.CustomTransformers {
3849
const res = {
3950
...((baseTransformers.before || transformers.before) && {
4051
before: [...(transformers.before ?? []), ...(baseTransformers.before ?? [])],
@@ -57,8 +68,8 @@ export function mergeTransformers(
5768
// region: TsNode Registration Utility
5869
/* ****************************************************************************************************************** */
5970

60-
export function register(): TSNode.RegisterOptions | undefined {
61-
const { tsNodeInstance, tsNode } = register.initialize();
71+
export function nodeRegister(): TSNode.RegisterOptions | undefined {
72+
const { tsNodeInstance, tsNode } = nodeRegister.initialize();
6273

6374
const transformerConfig = getProjectTransformerConfig(tsNodeInstance.config);
6475
if (!transformerConfig) return;
@@ -89,7 +100,7 @@ export function register(): TSNode.RegisterOptions | undefined {
89100
return registerOptions;
90101
}
91102

92-
export namespace register {
103+
export namespace nodeRegister {
93104
export function initialize(): {
94105
tsNode: typeof TSNode;
95106
instanceSymbol: typeof REGISTER_INSTANCE;
@@ -117,6 +128,4 @@ export namespace register {
117128
}
118129
}
119130

120-
export default register;
121-
122131
// endregion

0 commit comments

Comments
 (0)