From 6f0a280b4cf7506492a36b38568ea459da56b894 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 17 Aug 2024 22:54:00 -0400 Subject: [PATCH] refactor: move top level register and nx-transformer to src/ --- nx-transformer.js | 8 ++++++-- package.json | 4 ++-- register.js | 16 +++++----------- src/plugins/index.ts | 2 +- src/plugins/nx-transformer-plugin.ts | 11 +++++------ src/register-entry.ts | 13 +++++++++++++ 6 files changed, 32 insertions(+), 22 deletions(-) mode change 100755 => 100644 register.js create mode 100755 src/register-entry.ts diff --git a/nx-transformer.js b/nx-transformer.js index 8be4633..5b2db77 100644 --- a/nx-transformer.js +++ b/nx-transformer.js @@ -1,2 +1,6 @@ -"use strict"; -module.exports = require("./").nxTransformerPlugin; +// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version +console.warn( + "typescript-transform-paths: Calling the top level nx-transformer file is deprecated and will be removed in the future. Use a tool that supports package.json exports", +); + +module.exports = require("./dist/plugins/nx-transfomer-plugin").default; diff --git a/package.json b/package.json index f655caf..acd41da 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "types": "./dist/index.d.ts", "default": "./dist/index.js" }, - "./register": "./register.js", - "./nx-transformer": "./nx-transformer.js" + "./register": "./dist/register-entry.js", + "./nx-transformer": "./dist/plugins/nx-transformer-plugin.js" }, "files": [ "dist", diff --git a/register.js b/register.js old mode 100755 new mode 100644 index 6e9b581..d0bcee8 --- a/register.js +++ b/register.js @@ -1,11 +1,5 @@ -let tsNode; -try { - tsNode = require("ts-node"); -} catch { - throw new Error( - `Cannot resolve ts-node. Make sure ts-node is installed before using typescript-transform-paths/register`, - ); -} - -tsNode.register(); -require("./").register(); +// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version +console.warn( + "typescript-transform-paths: Calling the top level register file is deprecated and will be removed in the future. Use a tool that supports package.json exports", +); +require("./dist/register-entry"); diff --git a/src/plugins/index.ts b/src/plugins/index.ts index b4edd3b..cb9f918 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -1 +1 @@ -export * from "./nx-transformer-plugin"; +export * as nxTransformerPlugin from "./nx-transformer-plugin"; diff --git a/src/plugins/nx-transformer-plugin.ts b/src/plugins/nx-transformer-plugin.ts index 2f49289..a10309d 100644 --- a/src/plugins/nx-transformer-plugin.ts +++ b/src/plugins/nx-transformer-plugin.ts @@ -29,9 +29,8 @@ const voidTransformer: ts.TransformerFactory = () => (s: ts.Sourc * Transformer * ****************************************************************************************************************** */ -export const nxTransformerPlugin: NxTransformerPlugin = { - before: (pluginConfig, program) => - pluginConfig?.afterDeclarations ? voidTransformer : transformer(program, { ...pluginConfig }), - afterDeclarations: (pluginConfig, program) => - !pluginConfig?.afterDeclarations ? voidTransformer : transformer(program, { ...pluginConfig }), -}; +export const before: NxTransformerFactory = (pluginConfig, program) => + pluginConfig?.afterDeclarations ? voidTransformer : transformer(program, { ...pluginConfig }); + +export const afterDeclarations: NxTransformerFactory = (pluginConfig, program) => + !pluginConfig?.afterDeclarations ? voidTransformer : transformer(program, { ...pluginConfig }); diff --git a/src/register-entry.ts b/src/register-entry.ts new file mode 100755 index 0000000..706eae3 --- /dev/null +++ b/src/register-entry.ts @@ -0,0 +1,13 @@ +let tsNode; +try { + // eslint-disable-next-line @typescript-eslint/no-require-imports + tsNode = require("ts-node"); +} catch { + throw new Error( + `Cannot resolve ts-node. Make sure ts-node is installed before using typescript-transform-paths/register`, + ); +} + +tsNode.register(); +// eslint-disable-next-line @typescript-eslint/no-require-imports +require("./").register();