diff --git a/.changeset/bright-doors-cover.md b/.changeset/bright-doors-cover.md
new file mode 100644
index 0000000..d34eea8
--- /dev/null
+++ b/.changeset/bright-doors-cover.md
@@ -0,0 +1,5 @@
+---
+'nx-ngrok': patch
+---
+
+Rename "serverTarget" to "target"
diff --git a/README.md b/README.md
index f17e3f9..4b44de6 100644
--- a/README.md
+++ b/README.md
@@ -108,7 +108,7 @@ Start a new Ngrok tunnel.
"dev": {
"executor": "nx-ngrok:tunnel",
"options": {
- "serverTarget": "examples-nextjs:serve",
+ "target": "examples-nextjs:serve",
},
},
}
@@ -117,17 +117,17 @@ Start a new Ngrok tunnel.
tunnel executor options
-| Name | Type | Required | Default | Description |
-| -------------- | ---------------------------------------- | :------: | --------------- | -------------------------------------------------------------------------------------------------------- |
-| `serverTarget` | `string` | - | - | Server target to run tunnel for. |
-| `protocol` | `http`, `tcp`, `tls` | - | `http` | The tunnel protocol name. This defines the type of tunnel you would like to start. |
-| `address` | `string`, `number` | - | - | Forward traffic to this local port number or network address. |
-| `auth` | `string` | - | - | HTTP Basic authentication for tunnel. |
-| `port` | `targetDefault`, `auto`, `number` | - | `targetDefault` | Override the serverTarget's port number — only supported if the serverTarget accepts a port setting. |
-| `subdomain` | `string` | - | - | Subdomain name to request. If unspecified, ngrok provides a unique subdomain based on your account type. |
-| `authToken` | `string` | - | - | Specifies the authentication token (authtoken) used to connect to the ngrok service. |
-| `region` | `us`, `eu`, `au`, `ap`, `sa`, `jp`, `in` | - | `us` | Choose the region where the ngrok agent will connect to host its tunnels. |
-| `ngrokConfig` | `string` | - | - | Custom path for ngrok config file. |
+| Name | Type | Required | Default | Description |
+| ------------- | ---------------------------------------- | :------: | --------------- | -------------------------------------------------------------------------------------------------------- |
+| `target` | `string` | - | - | Server target to run tunnel for. |
+| `protocol` | `http`, `tcp`, `tls` | - | `http` | The tunnel protocol name. This defines the type of tunnel you would like to start. |
+| `address` | `string`, `number` | - | - | Forward traffic to this local port number or network address. |
+| `auth` | `string` | - | - | HTTP Basic authentication for tunnel. |
+| `port` | `targetDefault`, `auto`, `number` | - | `targetDefault` | Override the target's port number — only supported if the target accepts a port setting. |
+| `subdomain` | `string` | - | - | Subdomain name to request. If unspecified, ngrok provides a unique subdomain based on your account type. |
+| `authToken` | `string` | - | - | Specifies the authentication token (authtoken) used to connect to the ngrok service. |
+| `region` | `us`, `eu`, `au`, `ap`, `sa`, `jp`, `in` | - | `us` | Choose the region where the ngrok agent will connect to host its tunnels. |
+| `ngrokConfig` | `string` | - | - | Custom path for ngrok config file. |
@@ -140,7 +140,7 @@ Start a new Ngrok tunnel.
Generate a target to run a Ngrok tunnel for a local server.
```bash
-nx generate nx-grok:tunnel dev --project=my-app --serverTarget=serve
+nx generate nx-grok:tunnel dev --project=my-app --target=serve
```
@@ -157,17 +157,17 @@ UPDATE apps/my-app/project.json
tunnel generator options
-| Name | Alias | Type | Required | Default | Description |
-| -------------- | --------------------------------- | ---------------------------------------- | :-------------: | ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
-| `name` | - | `string` | ✅ | - | Target name. |
-| `project` | - | `string` | ✅ | - | What project does the target belong to? |
-| `serverTarget` | - | `string` | - | - | Server target to run tunnel for. |
-| `port` | `targetDefault`, `auto`, `number` | - | `targetDefault` | Override the serverTarget's port number — only supported if the serverTarget accepts a port setting. |
-| `protocol` | - | `http`, `tcp`, `tls` | - | `http` | The tunnel protocol name. This defines the type of tunnel you would like to start. |
-| `address` | - | `string`, `number` | - | - | Forward traffic to this local port number or network address. |
-| `auth` | - | `string` | - | - | HTTP Basic authentication for tunnel. |
-| `subdomain` | - | `string` | - | - | Subdomain name to request. If unspecified, ngrok provides a unique subdomain based on your account type. |
-| `region` | - | `us`, `eu`, `au`, `ap`, `sa`, `jp`, `in` | - | `us` | Choose the region where the ngrok agent will connect to host its tunnels. |
+| Name | Alias | Type | Required | Default | Description |
+| ----------- | --------------------------------- | ---------------------------------------- | :-------------: | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `name` | - | `string` | ✅ | - | Target name. |
+| `project` | - | `string` | ✅ | - | What project does the target belong to? |
+| `target` | - | `string` | - | - | Server target to run tunnel for. |
+| `port` | `targetDefault`, `auto`, `number` | - | `targetDefault` | Override the target's port number — only supported if the target accepts a port setting. |
+| `protocol` | - | `http`, `tcp`, `tls` | - | `http` | The tunnel protocol name. This defines the type of tunnel you would like to start. |
+| `address` | - | `string`, `number` | - | - | Forward traffic to this local port number or network address. |
+| `auth` | - | `string` | - | - | HTTP Basic authentication for tunnel. |
+| `subdomain` | - | `string` | - | - | Subdomain name to request. If unspecified, ngrok provides a unique subdomain based on your account type. |
+| `region` | - | `us`, `eu`, `au`, `ap`, `sa`, `jp`, `in` | - | `us` | Choose the region where the ngrok agent will connect to host its tunnels. |
diff --git a/e2e/nx-ngrok-e2e/tests/nx-ngrok.spec.ts b/e2e/nx-ngrok-e2e/tests/nx-ngrok.spec.ts
index 4ab377e..7e5e10d 100644
--- a/e2e/nx-ngrok-e2e/tests/nx-ngrok.spec.ts
+++ b/e2e/nx-ngrok-e2e/tests/nx-ngrok.spec.ts
@@ -33,14 +33,14 @@ describe('test e2e', () => {
);
await runCli(
- `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --serverTarget=${appName}:serve`,
+ `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --target=${appName}:serve`,
{ cwd: workspacePath }
);
const project = readJson(`apps/${appName}/project.json`);
expect(project?.targets?.dev?.options).toEqual({
- serverTarget: `${appName}:serve`,
+ target: `${appName}:serve`,
});
}, 120000);
@@ -53,7 +53,7 @@ describe('test e2e', () => {
);
await runCli(
- `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --serverTarget=${appName}:serve`,
+ `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --target=${appName}:serve`,
{ cwd: workspacePath }
);
@@ -79,7 +79,7 @@ describe('test e2e', () => {
);
await runCli(
- `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --serverTarget=${appName}:serve --port=${port}`,
+ `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --target=${appName}:serve --port=${port}`,
{ cwd: workspacePath }
);
@@ -104,7 +104,7 @@ describe('test e2e', () => {
);
await runCli(
- `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --serverTarget=${appName}:serve --port=auto`,
+ `pnpm nx generate nx-ngrok:tunnel dev --project=${appName} --target=${appName}:serve --port=auto`,
{ cwd: workspacePath }
);
diff --git a/examples/nest/project.json b/examples/nest/project.json
index e902d85..2076a95 100644
--- a/examples/nest/project.json
+++ b/examples/nest/project.json
@@ -39,12 +39,12 @@
"dev": {
"executor": "nx-ngrok:tunnel",
"options": {
- "serverTarget": "examples-nest:serve:development",
+ "target": "examples-nest:serve:development",
"address": 3333
},
"configurations": {
"production": {
- "serverTarget": "examples-nest:serve:production"
+ "target": "examples-nest:serve:production"
}
}
},
diff --git a/examples/nextjs/project.json b/examples/nextjs/project.json
index 1e93041..51cbe72 100644
--- a/examples/nextjs/project.json
+++ b/examples/nextjs/project.json
@@ -22,12 +22,12 @@
"dev": {
"executor": "nx-ngrok:tunnel",
"options": {
- "serverTarget": "examples-nextjs:serve:development",
+ "target": "examples-nextjs:serve:development",
"port": 8000
},
"configurations": {
"production": {
- "serverTarget": "examples-nextjs:serve:development"
+ "target": "examples-nextjs:serve:development"
}
}
},
diff --git a/examples/nx-mesh-app/project.json b/examples/nx-mesh-app/project.json
index e9ba626..f7d1010 100644
--- a/examples/nx-mesh-app/project.json
+++ b/examples/nx-mesh-app/project.json
@@ -17,11 +17,11 @@
"dev": {
"executor": "nx-ngrok:tunnel",
"options": {
- "serverTarget": "examples-nx-mesh-app:serve:development"
+ "target": "examples-nx-mesh-app:serve:development"
},
"configurations": {
"production": {
- "serverTarget": "examples-nx-mesh-app:serve:production"
+ "target": "examples-nx-mesh-app:serve:production"
}
}
},
diff --git a/packages/nx-ngrok/.eslintrc.json b/packages/nx-ngrok/.eslintrc.json
index 556554a..f300fc1 100644
--- a/packages/nx-ngrok/.eslintrc.json
+++ b/packages/nx-ngrok/.eslintrc.json
@@ -15,7 +15,12 @@
"rules": {}
},
{
- "files": ["./package.json", "./generators.json", "./executors.json"],
+ "files": [
+ "./package.json",
+ "./generators.json",
+ "./executors.json",
+ "./migrations.json"
+ ],
"parser": "jsonc-eslint-parser",
"rules": {
"@nrwl/nx/nx-plugin-checks": "error"
diff --git a/packages/nx-ngrok/migrations.json b/packages/nx-ngrok/migrations.json
new file mode 100644
index 0000000..6a02a29
--- /dev/null
+++ b/packages/nx-ngrok/migrations.json
@@ -0,0 +1,10 @@
+{
+ "generators": {
+ "rename-servertarget-to-target": {
+ "version": "1.2.0",
+ "description": "Rename 'serverTarget' setting to 'target'",
+ "cli": "nx",
+ "implementation": "./src/migrations/1.2.0/rename-servertarget-to-target"
+ }
+ }
+}
diff --git a/packages/nx-ngrok/project.json b/packages/nx-ngrok/project.json
index e72c349..0bc665f 100644
--- a/packages/nx-ngrok/project.json
+++ b/packages/nx-ngrok/project.json
@@ -23,11 +23,14 @@
"format": ["cjs"],
"minify": true,
"esbuildOptions": {
- "outExtension": { ".js": ".js" }
+ "outExtension": {
+ ".js": ".js"
+ }
},
"sourcemap": true,
"additionalEntryPoints": [
- "packages/nx-ngrok/src/executors/tunnel/executor.ts"
+ "packages/nx-ngrok/src/executors/tunnel/executor.ts",
+ "packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target"
],
"external": ["@nrwl/devkit", "ngrok"],
"assets": [
@@ -87,7 +90,8 @@
"packages/nx-ngrok/**/*.ts",
"packages/nx-ngrok/generators.json",
"packages/nx-ngrok/executors.json",
- "packages/nx-ngrok/package.json"
+ "packages/nx-ngrok/package.json",
+ "packages/nx-ngrok/migrations.json"
]
},
"configurations": {
diff --git a/packages/nx-ngrok/src/executors/tunnel/executor.spec.ts b/packages/nx-ngrok/src/executors/tunnel/executor.spec.ts
index 6ffcca3..de1e244 100644
--- a/packages/nx-ngrok/src/executors/tunnel/executor.spec.ts
+++ b/packages/nx-ngrok/src/executors/tunnel/executor.spec.ts
@@ -85,9 +85,9 @@ describe('tunnel Executor', () => {
);
});
- it('should get baseUrl from the serverTarget', async () => {
+ it('should get baseUrl from the target', async () => {
const tunnel = await tunnelExecutor(
- { serverTarget: 'myapp:serve' },
+ { target: 'myapp:serve' },
mockContext
).next();
diff --git a/packages/nx-ngrok/src/executors/tunnel/schema.d.ts b/packages/nx-ngrok/src/executors/tunnel/schema.d.ts
index 6859c44..f93b323 100644
--- a/packages/nx-ngrok/src/executors/tunnel/schema.d.ts
+++ b/packages/nx-ngrok/src/executors/tunnel/schema.d.ts
@@ -8,6 +8,6 @@ export interface TunnelExecutorSchema {
port?: 'targetDefault' | 'auto' | number;
protocol?: Ngrok.Options['proto'];
region?: Ngrok.Options['region'];
- serverTarget?: string;
+ target?: string;
subdomain?: string;
}
diff --git a/packages/nx-ngrok/src/executors/tunnel/schema.json b/packages/nx-ngrok/src/executors/tunnel/schema.json
index 0340bfb..26868c3 100644
--- a/packages/nx-ngrok/src/executors/tunnel/schema.json
+++ b/packages/nx-ngrok/src/executors/tunnel/schema.json
@@ -6,13 +6,13 @@
"description": "",
"type": "object",
"properties": {
- "serverTarget": {
+ "target": {
"type": "string",
"description": "Server target to run tunnel for."
},
"port": {
"type": "string",
- "description": "Override the serverTarget's port number — only supported if the serverTarget accepts a port setting.",
+ "description": "Override the target's port number — only supported if the target accepts a port setting.",
"oneOf": [
{
"type": "string",
diff --git a/packages/nx-ngrok/src/executors/tunnel/utils/start-target.ts b/packages/nx-ngrok/src/executors/tunnel/utils/start-target.ts
index d4f830c..e9f294b 100644
--- a/packages/nx-ngrok/src/executors/tunnel/utils/start-target.ts
+++ b/packages/nx-ngrok/src/executors/tunnel/utils/start-target.ts
@@ -19,14 +19,14 @@ export async function* startTarget(
port = options.port;
}
- if (!options.serverTarget) {
+ if (!options.target) {
yield { baseUrl: options.address ?? undefined };
return;
}
- const parsedDevServerTarget = parseTargetString(
- options.serverTarget,
+ const parsedDevtarget = parseTargetString(
+ options.target,
context.projectGraph
);
@@ -35,7 +35,7 @@ export async function* startTarget(
baseUrl?: string;
info?: { port: number; baseUrl?: string };
}>(
- parsedDevServerTarget,
+ parsedDevtarget,
{
port,
},
diff --git a/packages/nx-ngrok/src/generators/tunnel/schema.d.ts b/packages/nx-ngrok/src/generators/tunnel/schema.d.ts
index 85ded3c..d5b6f52 100644
--- a/packages/nx-ngrok/src/generators/tunnel/schema.d.ts
+++ b/packages/nx-ngrok/src/generators/tunnel/schema.d.ts
@@ -8,6 +8,6 @@ export interface TunnelGeneratorSchema {
port?: 'targetDefault' | 'auto' | number;
protocol?: Ngrok.Options['proto'];
region?: Ngrok.Options['region'];
- serverTarget?: string;
+ target?: string;
subdomain?: string;
}
diff --git a/packages/nx-ngrok/src/generators/tunnel/schema.json b/packages/nx-ngrok/src/generators/tunnel/schema.json
index 7784faf..76955e9 100644
--- a/packages/nx-ngrok/src/generators/tunnel/schema.json
+++ b/packages/nx-ngrok/src/generators/tunnel/schema.json
@@ -7,7 +7,7 @@
"type": "object",
"examples": [
{
- "command": "nx g nx-ngrok:tunnel dev --project my-app --serverTarget 'my-app:serve'",
+ "command": "nx g nx-ngrok:tunnel dev --project my-app --target 'my-app:serve'",
"description": "Add the `dev` target to `my-app`"
}
],
@@ -23,7 +23,7 @@
},
"port": {
"type": "string",
- "description": "Override the serverTarget's port number — only supported if the serverTarget accepts a port setting.",
+ "description": "Override the target's port number — only supported if the target accepts a port setting.",
"oneOf": [
{
"type": "string",
@@ -42,7 +42,7 @@
"x-prompt": "What project does the target belong to?",
"x-dropdown": "projects"
},
- "serverTarget": {
+ "target": {
"type": "string",
"description": "Server target to run tunnel for.",
"x-priority": "important"
diff --git a/packages/nx-ngrok/src/generators/tunnel/tunnel.spec.ts b/packages/nx-ngrok/src/generators/tunnel/tunnel.spec.ts
index ba77ec0..9f291ff 100644
--- a/packages/nx-ngrok/src/generators/tunnel/tunnel.spec.ts
+++ b/packages/nx-ngrok/src/generators/tunnel/tunnel.spec.ts
@@ -16,7 +16,7 @@ describe('tunnel', () => {
await tunnelGenerator(tree, {
name: 'dev',
project: 'my-lib',
- serverTarget: 'my-lib:serve',
+ target: 'my-lib:serve',
});
const customTarget = readProjectConfiguration(tree, 'my-lib').targets.dev;
@@ -24,7 +24,7 @@ describe('tunnel', () => {
expect(customTarget).toEqual({
executor: 'nx-ngrok:tunnel',
options: {
- serverTarget: 'my-lib:serve',
+ target: 'my-lib:serve',
},
});
});
@@ -69,7 +69,7 @@ describe('tunnel', () => {
name: 'dev',
port: 3000,
project: 'my-lib',
- serverTarget: 'example:serve',
+ target: 'example:serve',
});
const customTarget = readProjectConfiguration(tree, 'my-lib').targets.dev;
@@ -78,7 +78,7 @@ describe('tunnel', () => {
executor: 'nx-ngrok:tunnel',
options: {
port: 3000,
- serverTarget: 'example:serve',
+ target: 'example:serve',
},
});
});
@@ -94,7 +94,7 @@ describe('tunnel', () => {
name: 'dev',
port: 'auto',
project: 'my-lib',
- serverTarget: 'example:serve',
+ target: 'example:serve',
});
const customTarget = readProjectConfiguration(tree, 'my-lib').targets.dev;
@@ -103,7 +103,7 @@ describe('tunnel', () => {
executor: 'nx-ngrok:tunnel',
options: {
port: 'auto',
- serverTarget: 'example:serve',
+ target: 'example:serve',
},
});
});
diff --git a/packages/nx-ngrok/src/generators/tunnel/tunnel.ts b/packages/nx-ngrok/src/generators/tunnel/tunnel.ts
index 51dfdd8..54cf3d2 100644
--- a/packages/nx-ngrok/src/generators/tunnel/tunnel.ts
+++ b/packages/nx-ngrok/src/generators/tunnel/tunnel.ts
@@ -23,7 +23,7 @@ export async function tunnelGenerator(
port: undefined,
protocol: config.protocol,
region: config.region,
- serverTarget: config.serverTarget,
+ target: config.target,
subdomain: config.subdomain,
};
diff --git a/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/index.ts b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/index.ts
new file mode 100644
index 0000000..3b914b6
--- /dev/null
+++ b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/index.ts
@@ -0,0 +1 @@
+export * from './rename-servertarget-to-target';
diff --git a/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.spec.ts b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.spec.ts
new file mode 100644
index 0000000..844f905
--- /dev/null
+++ b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.spec.ts
@@ -0,0 +1,72 @@
+import {
+ addProjectConfiguration,
+ readProjectConfiguration,
+} from '@nrwl/devkit';
+import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
+
+import update from './rename-servertarget-to-target';
+
+describe('Migration - rename-servertarget-to-target', () => {
+ it('should rename serverTarget to target', async () => {
+ const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
+
+ addProjectConfiguration(
+ tree,
+ 'example',
+ {
+ root: 'apps/example',
+ projectType: 'application',
+ targets: {
+ dev: {
+ executor: 'nx-ngrok:tunnel',
+ options: {
+ serverTarget: 'my-app:serve',
+ },
+ },
+ },
+ },
+ true
+ );
+
+ await update(tree);
+
+ const config = readProjectConfiguration(tree, 'example');
+
+ expect(config.targets?.dev.options).not.toHaveProperty('serverTarget');
+ expect(config.targets?.dev.options).toHaveProperty(
+ 'target',
+ 'my-app:serve'
+ );
+ });
+
+ it('should not add target to configurations without a serverTarget', async () => {
+ const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
+
+ addProjectConfiguration(
+ tree,
+ 'example',
+ {
+ root: 'apps/example',
+ projectType: 'application',
+ targets: {
+ dev: {
+ executor: 'nx-ngrok:tunnel',
+ options: {
+ port: 3000,
+ },
+ },
+ },
+ },
+ true
+ );
+
+ await update(tree);
+
+ const config = readProjectConfiguration(tree, 'example');
+
+ expect(config.targets?.dev.options).not.toHaveProperty('serverTarget');
+ expect(config.targets?.dev.options).not.toHaveProperty('target');
+
+ expect(config.targets?.dev.options).toHaveProperty('port', 3000);
+ });
+});
diff --git a/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.ts b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.ts
new file mode 100644
index 0000000..e7822f5
--- /dev/null
+++ b/packages/nx-ngrok/src/migrations/1.2.0/rename-servertarget-to-target/rename-servertarget-to-target.ts
@@ -0,0 +1,38 @@
+import type { Tree } from '@nrwl/devkit';
+
+import {
+ formatFiles,
+ getProjects,
+ updateProjectConfiguration,
+} from '@nrwl/devkit';
+
+export async function update(tree: Tree) {
+ const projects = getProjects(tree);
+
+ projects.forEach((config, name) => {
+ let shouldUpdate = false;
+
+ Object.entries(config.targets ?? {})?.forEach(([targetName, target]) => {
+ if (target.executor === 'nx-ngrok:tunnel') {
+ if (
+ Object.prototype.hasOwnProperty.call(target.options, 'serverTarget')
+ ) {
+ const value = target.options['serverTarget'];
+
+ if (config.targets?.[targetName].options['serverTarget']) {
+ shouldUpdate = true;
+
+ delete config.targets[targetName].options['serverTarget'];
+ config.targets[targetName].options['target'] = value;
+ }
+ }
+ }
+ });
+
+ if (shouldUpdate) updateProjectConfiguration(tree, name, config);
+ });
+
+ await formatFiles(tree);
+}
+
+export default update;