@mrgrain/cdk-esbuild 4.0.0-alpha.8 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ import * as path from 'path';
2
+ import * as cdk from 'aws-cdk-lib';
3
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
4
+ import * as s3 from "aws-cdk-lib/aws-s3";
5
+ import * as s3deploy from "aws-cdk-lib/aws-s3-deployment";
6
+ import * as synthetics from "@aws-cdk/aws-synthetics-alpha";
7
+ import {
8
+ BuildOptions,
9
+ EsbuildProvider,
10
+ IBuildProvider,
11
+ ITransformProvider,
12
+ InlineTypeScriptCode,
13
+ TypeScriptCode,
14
+ TypeScriptSource,
15
+ TransformOptions
16
+ } from '.';
17
+
18
+ const stack = new cdk.Stack();
19
+
20
+ class MyCustomEsbuildProvider implements IBuildProvider, ITransformProvider {
21
+ buildSync(options: BuildOptions): void {
22
+ // custom implementation goes here
23
+ }
24
+
25
+ transformSync(code: string, options?: TransformOptions): string {
26
+ // custom implementation goes here, return transformed code
27
+ return 'transformed code';
28
+ }
29
+ }
30
+
31
+
32
+ /// here
package/.gitattributes DELETED
@@ -1,24 +0,0 @@
1
- # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
-
3
- *.snap linguist-generated
4
- /.eslintrc.json linguist-generated
5
- /.gitattributes linguist-generated
6
- /.github/pull_request_template.md linguist-generated
7
- /.github/workflows/build.yml linguist-generated
8
- /.github/workflows/pull-request-lint.yml linguist-generated
9
- /.github/workflows/release.yml linguist-generated
10
- /.gitignore linguist-generated
11
- /.mergify.yml linguist-generated
12
- /.npmignore linguist-generated
13
- /.projen/** linguist-generated
14
- /.projen/deps.json linguist-generated
15
- /.projen/files.json linguist-generated
16
- /.projen/tasks.json linguist-generated
17
- /.vscode/extensions.json linguist-generated
18
- /.vscode/launch.json linguist-generated
19
- /.vscode/settings.json linguist-generated
20
- /LICENSE linguist-generated
21
- /package-lock.json linguist-generated
22
- /package.json linguist-generated
23
- /src/esbuild-types.ts linguist-generated
24
- /tsconfig.dev.json linguist-generated
package/.projenrc.ts DELETED
@@ -1,214 +0,0 @@
1
- import { copyFileSync } from 'fs';
2
- import {
3
- awscdk,
4
- javascript,
5
- JsonFile,
6
- vscode,
7
- } from 'projen';
8
- import { ReleaseTrigger } from 'projen/lib/release';
9
- import { SourceFile } from 'ts-morph';
10
- import { tagOnNpm } from './projenrc/release';
11
- import { TypeScriptSourceFile } from './projenrc/TypeScriptSourceFile';
12
-
13
- const project = new awscdk.AwsCdkConstructLibrary({
14
- projenrcTs: true,
15
- projenrcTsOptions: {
16
- filename: '.projenrc.ts',
17
- },
18
- depsUpgradeOptions: {
19
- workflow: false,
20
- },
21
-
22
- // Project info
23
- name: '@mrgrain/cdk-esbuild',
24
- repositoryUrl: 'https://github.com/mrgrain/cdk-esbuild',
25
- description:
26
- 'CDK constructs for esbuild, an extremely fast JavaScript bundler',
27
- homepage: 'https://github.com/mrgrain/cdk-esbuild',
28
- keywords: [
29
- 'aws-cdk',
30
- 'bundler',
31
- 'cdk',
32
- 'constructs',
33
- 'esbuild',
34
- 'lambda',
35
- 's3',
36
- 's3-deployment',
37
- 'static website',
38
- ],
39
- author: 'Moritz Kornher',
40
- authorAddress: '',
41
- authorEmail: 'mail@moritzkornher.de',
42
- authorUrl: 'https://moritzkornher.de',
43
- license: 'MIT',
44
- copyrightOwner: 'Moritz Kornher',
45
-
46
- // Testing & Linting
47
- githubOptions: {
48
- pullRequestLintOptions: {
49
- semanticTitleOptions: {
50
- types: ['feat', 'fix', 'chore', 'docs', 'ci'],
51
- },
52
- },
53
- },
54
- jestOptions: {
55
- jestConfig: {
56
- testPathIgnorePatterns: ['/node_modules/', '/examples/'],
57
- coveragePathIgnorePatterns: ['/node_modules/', '/examples/'],
58
- },
59
- },
60
-
61
- // Release
62
- packageManager: javascript.NodePackageManager.NPM,
63
- npmDistTag: 'next',
64
- defaultReleaseBranch: 'support-other-langs',
65
- majorVersion: 4,
66
- prerelease: 'alpha',
67
- releaseTrigger: {
68
- isContinuous: false,
69
- } as ReleaseTrigger,
70
- publishToPypi: {
71
- distName: 'mrgrain.cdk-esbuild',
72
- module: 'mrgrain.cdk_esbuild',
73
- },
74
- catalog: {
75
- twitter: '@mrgrain',
76
- },
77
- workflowContainerImage: 'jsii/superchain:1-buster-slim-node14',
78
- workflowBootstrapSteps: [{
79
- name: 'Update npm',
80
- run: 'sudo npm i -g npm',
81
- }],
82
-
83
- // Dependencies
84
- cdkVersion: '2.0.0',
85
- devDeps: [
86
- '@aws-cdk/aws-synthetics-alpha@2.0.0-alpha.11',
87
- '@types/eslint',
88
- 'esbuild@^0.14.0',
89
- 'jest-mock',
90
- 'ts-morph',
91
- ],
92
-
93
- // Ignore files
94
- gitignore: [
95
- '.npmrc',
96
- '*.gz',
97
- '*.zip',
98
- 'cdk.out',
99
- '.cdk.staging',
100
- 'examples/template',
101
- '!/examples/**',
102
- ],
103
- npmignore: [
104
- '.npmrc',
105
- '.nvmrc',
106
- '.versionrc',
107
- '*.tgz',
108
- '*.gz',
109
- '*.zip',
110
- 'cdk.out',
111
- '.cdk.staging',
112
- '/examples',
113
- 'PUBLISHING.md',
114
- '.vscode',
115
- 'projenrc',
116
- ],
117
- });
118
-
119
- // release only via manual trigger
120
- const publishTask = project.release?.publisher?.publishToGit({
121
- changelogFile: 'dist/changelog.md',
122
- versionFile: 'dist/version.txt',
123
- releaseTagFile: 'dist/releasetag.txt',
124
- projectChangelogFile: 'CHANGELOG.md',
125
- gitBranch: 'main',
126
- });
127
- project.tasks.tryFind('release')?.spawn(publishTask!);
128
-
129
- // add additional tags on npm
130
- project.tryFindObjectFile('.github/workflows/release.yml')?.addToArray(
131
- 'jobs.release_npm.steps',
132
- tagOnNpm(project.package.packageName, ['next']),
133
- );
134
-
135
- // eslint
136
- project.eslint?.addRules({
137
- '@typescript-eslint/member-ordering': 'off',
138
- });
139
- project.eslint?.addIgnorePattern('examples/');
140
-
141
-
142
- // VSCode config
143
- new JsonFile(project, '.vscode/extensions.json', {
144
- readonly: false,
145
- marker: false,
146
- obj: {
147
- recommendations: ['dbaeumer.vscode-eslint', 'orta.vscode-jest'],
148
- },
149
- });
150
-
151
- new JsonFile(project, '.vscode/settings.json', {
152
- readonly: false,
153
- marker: false,
154
- obj: {
155
- 'editor.formatOnSave': true,
156
- 'editor.defaultFormatter': 'esbenp.prettier-vscode',
157
- 'eslint.format.enable': true,
158
- '[javascript]': {
159
- 'editor.defaultFormatter': 'dbaeumer.vscode-eslint',
160
- },
161
- '[typescript]': {
162
- 'editor.defaultFormatter': 'dbaeumer.vscode-eslint',
163
- },
164
- 'jest.autoRun': 'off',
165
- 'jest.jestCommandLine': './node_modules/.bin/jest',
166
- },
167
- });
168
-
169
- new vscode.VsCode(project).launchConfiguration.addConfiguration({
170
- type: 'node',
171
- name: 'vscode-jest-tests',
172
- request: 'launch',
173
- internalConsoleOptions: vscode.InternalConsoleOptions.NEVER_OPEN,
174
- program: '${workspaceFolder}/node_modules/.bin/jest',
175
- args: ['--runInBand', '--watchAll=false'],
176
- });
177
-
178
-
179
- // esbuild
180
- project.tryFindObjectFile('package.json')?.addOverride('optionalDependencies', {
181
- esbuild: '^0.14.0',
182
- });
183
-
184
-
185
- new TypeScriptSourceFile(project, 'src/esbuild-types.ts', {
186
- source: 'node_modules/esbuild/lib/main.d.ts',
187
- editGitignore: false,
188
- transformer: (esbuildTypes: SourceFile) => {
189
- const readonlyInterface = (name: string) => {
190
- esbuildTypes.getInterface(name)?.getProperties().forEach(property => property.setIsReadonly(true));
191
- };
192
-
193
- const removeFromInterface = (name: string, properties: string[]) => {
194
- const interfaceDeclaration = esbuildTypes.getInterface(name);
195
-
196
- properties.forEach(property => interfaceDeclaration?.getProperty(property)?.remove());
197
- };
198
-
199
-
200
- ['CommonOptions', 'BuildOptions', 'TransformOptions'].forEach(readonlyInterface);
201
- removeFromInterface('BuildOptions', ['entryPoints', 'stdin', 'plugins', 'watch']);
202
- esbuildTypes.getInterface('CommonOptions')?.getProperty('mangleProps')?.setType('any');
203
- esbuildTypes.getInterface('CommonOptions')?.getProperty('reserveProps')?.setType('any');
204
- esbuildTypes.getInterface('TransformOptions')?.getProperty('tsconfigRaw')?.setType('string');
205
- esbuildTypes.getInterface('InitializeOptions')?.getProperty('wasmModule')?.setType('any');
206
- },
207
- });
208
-
209
- copyFileSync('node_modules/esbuild/lib/main.js', 'src/esbuild-polyfill.js');
210
- project.compileTask.exec('cp src/esbuild-polyfill.js lib');
211
-
212
-
213
- // Synth project
214
- project.synth();