Skip to content

Commit

Permalink
feat(serverless): replace serverless-bundle with serverless-esbuild
Browse files Browse the repository at this point in the history
It is to make it more "modern" and compatible with pnpm.
This should not affect existing workspaces.
It should still be possible to use serverless-bundle.
  • Loading branch information
Bielik20 committed Dec 19, 2023
1 parent 977b542 commit d17298b
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 23 deletions.
4 changes: 2 additions & 2 deletions e2e/nx-serverless-e2e/tests/serverless.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ describe('serverless e2e', () => {
cleanupTestWorkspace(projectDirectory);
});

describe('serverless-bundle', () => {
describe('serverless-esbuild', () => {
it('should create serverless', async () => {
const plugin = 'nx-serverless-bundle';
const plugin = 'nx-serverless-esbuild';
await runNxCommandAsync(`generate @ns3/nx-serverless:application ${plugin}`);

const buildResult = await runNxCommandAsync(`package ${plugin}`);
Expand Down
6 changes: 3 additions & 3 deletions packages/nx-serverless/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ npm i -D @ns3/nx-serverless

## Generate

### `serverless-bundle`
### `serverless-esbuild`

Default plugin used in generation is [`serverless-bundle`](https://www.npmjs.com/package/serverless-bundle).
It supports all providers, nx cache as far as output of serverless bundle is concerned, but it doesn't work with incremental builds.
Default plugin used in generation is [`serverless-esbuild`](https://www.npmjs.com/package/serverless-esbuild).
It supports all providers, nx cache as far as output of serverless is concerned, but it doesn't work with incremental builds.

```
nx generate @ns3/nx-serverless:app my-app-name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ custom:
httpPort: <%= port %>
lambdaPort: <%= port - 1000 %>
noPrependStageInUrl: true
<% if (plugin == 'serverless-bundle') {
%> bundle:
linting: false
tsConfig: 'tsconfig.app.json'<% } %>
<% if (plugin == 'serverless-esbuild') {
%> esbuild:
tsconfig: 'tsconfig.app.json'<% } %>

params:
prod:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ describe('serverless generator', () => {
appTree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
});

describe('serverless-bundle', () => {
describe('serverless-esbuild', () => {
const options: ServerlessGeneratorSchema = {
plugin: 'serverless-bundle',
plugin: 'serverless-esbuild',
name: 'sample',
unitTestRunner: 'jest',
linter: Linter.EsLint,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Linter } from '@nx/eslint';

export interface ServerlessGeneratorSchema {
plugin: 'serverless-bundle' | '@ns3/nx-serverless/plugin';
plugin: 'serverless-esbuild' | '@ns3/nx-serverless/plugin';
name: string;
tags?: string;
directory?: string;
Expand Down
4 changes: 2 additions & 2 deletions packages/nx-serverless/src/generators/application/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"plugin": {
"description": "Which plugin you want to use within serverless. @ns3/nx-serverless/plugin is still experimental.",
"type": "string",
"enum": ["serverless-bundle", "@ns3/nx-serverless/plugin"],
"default": "serverless-bundle"
"enum": ["serverless-esbuild", "@ns3/nx-serverless/plugin"],
"default": "serverless-esbuild"
},
"name": {
"type": "string",
Expand Down
7 changes: 4 additions & 3 deletions packages/nx-serverless/src/generators/init/generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import {
} from '@nx/devkit';
import { jestInitGenerator } from '@nx/jest';
import {
serverlessBundleVersion,
esbuildVersion,
serverlessEsbuildVersion,
serverlessOfflineVersion,
serverlessVersion,
} from '../../utils/versions';
Expand Down Expand Up @@ -45,8 +46,8 @@ function updateDependencies(host: Tree, options: InitGeneratorSchema) {
'@ns3/nx-serverless': '*',
serverless: serverlessVersion,
'serverless-offline': serverlessOfflineVersion,
...(options.plugin === 'serverless-bundle'
? { 'serverless-bundle': serverlessBundleVersion }
...(options.plugin === 'serverless-esbuild'
? { 'serverless-esbuild': serverlessEsbuildVersion, esbuild: esbuildVersion }
: { '@nx/webpack': '*' }),
},
);
Expand Down
2 changes: 1 addition & 1 deletion packages/nx-serverless/src/generators/init/schema.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export interface InitGeneratorSchema {
unitTestRunner: 'jest' | 'none';
plugin: 'serverless-bundle' | '@ns3/nx-serverless/plugin';
plugin: 'serverless-esbuild' | '@ns3/nx-serverless/plugin';
skipFormat: boolean;
}
4 changes: 2 additions & 2 deletions packages/nx-serverless/src/generators/init/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"plugin": {
"description": "Which plugin you want to use within serverless",
"type": "string",
"enum": ["serverless-bundle", "@ns3/nx-serverless/plugin"],
"default": "serverless-bundle"
"enum": ["serverless-esbuild", "@ns3/nx-serverless/plugin"],
"default": "serverless-esbuild"
},
"unitTestRunner": {
"description": "Adds the specified unit test runner",
Expand Down
7 changes: 4 additions & 3 deletions packages/nx-serverless/src/utils/versions.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export const serverlessVersion = '^3.27.0';
export const serverlessBundleVersion = '^6.0.0';
export const serverlessOfflineVersion = '^12.0.4';
export const serverlessVersion = '^3.38.0';
export const serverlessEsbuildVersion = '^1.50.0';
export const esbuildVersion = '~0.19.9';
export const serverlessOfflineVersion = '^13.3.2';

0 comments on commit d17298b

Please sign in to comment.