sst 2.11.7 → 2.11.8

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.
Files changed (3) hide show
  1. package/package.json +2 -1
  2. package/sst.mjs +42 -20
  3. package/stacks/build.js +42 -10
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "sideEffects": false,
3
3
  "name": "sst",
4
- "version": "2.11.7",
4
+ "version": "2.11.8",
5
5
  "bin": {
6
6
  "sst": "cli/sst.js"
7
7
  },
@@ -49,6 +49,7 @@
49
49
  "@aws-sdk/smithy-client": "^3.279.0",
50
50
  "@babel/core": "^7.0.0-0",
51
51
  "@babel/generator": "^7.20.5",
52
+ "@babel/plugin-syntax-typescript": "^7.21.4",
52
53
  "@trpc/server": "9.16.0",
53
54
  "adm-zip": "^0.5.10",
54
55
  "aws-cdk-lib": "2.79.1",
package/sst.mjs CHANGED
@@ -239,6 +239,9 @@ var init_fs = __esm({
239
239
  import esbuild from "esbuild";
240
240
  import fs3 from "fs/promises";
241
241
  import path3 from "path";
242
+ import babel from "@babel/core";
243
+ import generate from "@babel/generator";
244
+ import ts from "@babel/plugin-syntax-typescript";
242
245
  async function load(input, shallow) {
243
246
  const parsed = path3.parse(input);
244
247
  const root = await findAbove(input, "package.json");
@@ -248,17 +251,10 @@ async function load(input, shallow) {
248
251
  const pkg = JSON.parse(
249
252
  await fs3.readFile(path3.join(root, "package.json")).then((x) => x.toString())
250
253
  );
251
- let contents = await fs3.readFile(input).then((x) => x.toString());
252
- if (shallow)
253
- contents = contents.replaceAll(
254
- /stacks\(.*?\)\s*{[\s\S]*?}\s*[,;]/gs,
255
- "stacks() {},"
256
- );
257
254
  try {
258
255
  const result = await esbuild.build({
259
256
  keepNames: true,
260
257
  bundle: true,
261
- sourcemap: "inline",
262
258
  platform: "node",
263
259
  target: "esnext",
264
260
  metafile: true,
@@ -276,6 +272,36 @@ async function load(input, shallow) {
276
272
  ...pkg.peerDependencies
277
273
  })
278
274
  ],
275
+ plugins: [
276
+ {
277
+ name: "shallow",
278
+ setup(build2) {
279
+ if (!shallow)
280
+ return;
281
+ build2.onLoad({ filter: /.*/ }, async (args) => {
282
+ if (args.path !== input)
283
+ return;
284
+ let contents = await fs3.readFile(args.path).then((x) => x.toString());
285
+ const ast = babel.parse(contents, {
286
+ sourceType: "module",
287
+ plugins: [ts]
288
+ });
289
+ babel.traverse(ast, {
290
+ ObjectMethod(path20) {
291
+ const { key } = path20.node;
292
+ if ("name" in key && key.name === "stacks") {
293
+ path20.remove();
294
+ }
295
+ }
296
+ });
297
+ return {
298
+ contents: generate.default(ast).code,
299
+ loader: "ts"
300
+ };
301
+ });
302
+ }
303
+ }
304
+ ],
279
305
  absWorkingDir: root,
280
306
  outfile,
281
307
  banner: {
@@ -284,11 +310,7 @@ async function load(input, shallow) {
284
310
  `const require = topLevelCreateRequire(import.meta.url);`
285
311
  ].join("")
286
312
  },
287
- stdin: {
288
- contents,
289
- loader: "ts",
290
- resolveDir: path3.dirname(input)
291
- }
313
+ entryPoints: [input]
292
314
  });
293
315
  const mod = await dynamicImport(outfile);
294
316
  await fs3.rm(outfile, {
@@ -6154,15 +6176,15 @@ var pothos_exports = {};
6154
6176
  __export(pothos_exports, {
6155
6177
  Pothos: () => pothos_exports,
6156
6178
  extractSchema: () => extractSchema,
6157
- generate: () => generate
6179
+ generate: () => generate2
6158
6180
  });
6159
- import babel from "@babel/core";
6181
+ import babel2 from "@babel/core";
6160
6182
  import generator from "@babel/generator";
6161
6183
  import esbuild3 from "esbuild";
6162
6184
  import fs14 from "fs/promises";
6163
6185
  import path16 from "path";
6164
6186
  import url9 from "url";
6165
- async function generate(opts) {
6187
+ async function generate2(opts) {
6166
6188
  const { printSchema, lexicographicSortSchema } = await import("graphql");
6167
6189
  const contents = await extractSchema(opts);
6168
6190
  const out = path16.join(path16.dirname(opts.schema), "out.mjs");
@@ -6200,7 +6222,7 @@ async function extractSchema(opts) {
6200
6222
  ]
6201
6223
  });
6202
6224
  const globalPaths = /* @__PURE__ */ new Set();
6203
- const transformed = babel.transformSync(result.outputFiles[0].text, {
6225
+ const transformed = babel2.transformSync(result.outputFiles[0].text, {
6204
6226
  sourceType: "module",
6205
6227
  plugins: [
6206
6228
  {
@@ -6307,7 +6329,7 @@ var init_pothos = __esm({
6307
6329
  "src/pothos.ts"() {
6308
6330
  "use strict";
6309
6331
  init_pothos();
6310
- ({ types, template } = babel);
6332
+ ({ types, template } = babel2);
6311
6333
  dummyResolver = template(
6312
6334
  "const %%dummy_resolver%% = { serialize: x => x, parseValue: x => x };"
6313
6335
  );
@@ -6404,7 +6426,7 @@ var init_kysely = __esm({
6404
6426
  let databases = [];
6405
6427
  const bus = useBus();
6406
6428
  const logger = Logger.debug.bind(null, "[kysely-codegen]");
6407
- async function generate2(db) {
6429
+ async function generate3(db) {
6408
6430
  if (!db.types)
6409
6431
  return;
6410
6432
  logger("generating types for", db.migratorID);
@@ -6458,7 +6480,7 @@ var init_kysely = __esm({
6458
6480
  secretArn: c.data.secretArn
6459
6481
  }));
6460
6482
  databases.map(
6461
- (db) => generate2(db).catch((err) => {
6483
+ (db) => generate3(db).catch((err) => {
6462
6484
  logger(err);
6463
6485
  })
6464
6486
  );
@@ -6471,7 +6493,7 @@ var init_kysely = __esm({
6471
6493
  );
6472
6494
  if (!db)
6473
6495
  return;
6474
- generate2(db).catch((err) => {
6496
+ generate3(db).catch((err) => {
6475
6497
  logger(err);
6476
6498
  });
6477
6499
  });
package/stacks/build.js CHANGED
@@ -4,6 +4,10 @@ import path from "path";
4
4
  import { dynamicImport } from "../util/module.js";
5
5
  import { findAbove } from "../util/fs.js";
6
6
  import { VisibleError } from "../error.js";
7
+ import babel from "@babel/core";
8
+ import generate from "@babel/generator";
9
+ // @ts-expect-error
10
+ import ts from "@babel/plugin-syntax-typescript";
7
11
  export async function load(input, shallow) {
8
12
  const parsed = path.parse(input);
9
13
  const root = await findAbove(input, "package.json");
@@ -11,15 +15,11 @@ export async function load(input, shallow) {
11
15
  throw new VisibleError("Could not find a package.json file");
12
16
  const outfile = path.join(parsed.dir, `.${parsed.name}.${Date.now()}.mjs`);
13
17
  const pkg = JSON.parse(await fs.readFile(path.join(root, "package.json")).then((x) => x.toString()));
14
- let contents = await fs.readFile(input).then((x) => x.toString());
15
- if (shallow)
16
- contents = contents.replaceAll(/stacks\(.*?\)\s*{[\s\S]*?}\s*[,;]/gs, "stacks() {},");
17
18
  try {
18
19
  // Logger.debug("running esbuild on", input);
19
20
  const result = await esbuild.build({
20
21
  keepNames: true,
21
22
  bundle: true,
22
- sourcemap: "inline",
23
23
  platform: "node",
24
24
  target: "esnext",
25
25
  metafile: true,
@@ -37,6 +37,38 @@ export async function load(input, shallow) {
37
37
  ...pkg.peerDependencies,
38
38
  }),
39
39
  ],
40
+ plugins: [
41
+ {
42
+ name: "shallow",
43
+ setup(build) {
44
+ if (!shallow)
45
+ return;
46
+ build.onLoad({ filter: /.*/ }, async (args) => {
47
+ if (args.path !== input)
48
+ return;
49
+ let contents = await fs
50
+ .readFile(args.path)
51
+ .then((x) => x.toString());
52
+ const ast = babel.parse(contents, {
53
+ sourceType: "module",
54
+ plugins: [ts],
55
+ });
56
+ babel.traverse(ast, {
57
+ ObjectMethod(path) {
58
+ const { key } = path.node;
59
+ if ("name" in key && key.name === "stacks") {
60
+ path.remove();
61
+ }
62
+ },
63
+ });
64
+ return {
65
+ contents: generate.default(ast).code,
66
+ loader: "ts",
67
+ };
68
+ });
69
+ },
70
+ },
71
+ ],
40
72
  absWorkingDir: root,
41
73
  outfile,
42
74
  banner: {
@@ -48,12 +80,12 @@ export async function load(input, shallow) {
48
80
  // The entry can have any file name (ie. "stacks/anything.ts"). We want the
49
81
  // build output to be always named "lib/index.js". This allow us to always
50
82
  // import from "buildDir" without needing to pass "anything" around.
51
- stdin: {
52
- contents,
53
- loader: "ts",
54
- resolveDir: path.dirname(input),
55
- },
56
- // entryPoints: [input],
83
+ // stdin: {
84
+ // contents,
85
+ // loader: "ts",
86
+ // resolveDir: path.dirname(input),
87
+ // },
88
+ entryPoints: [input],
57
89
  });
58
90
  // Logger.debug("built", input);
59
91
  const mod = await dynamicImport(outfile);