@gtsx/adapter-next-react 0.0.2 → 0.0.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAmB5C,KAAK,iBAAiB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,CAAA;AAS3D,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,cAAc,CAAC,EAAE,KAAK,GAAG,6BAA6B,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAYD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,IAM5B,MAAM,SAAS,cAAc,EAAE,aAAY,MAAqB,KAAG,MAAM,GAAG,cAAc,CAgC7H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAmB5C,KAAK,iBAAiB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,GAAG,CAAA;AAS3D,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,cAAc,CAAC,EAAE,KAAK,GAAG,6BAA6B,CAAA;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,6BAA6B,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAaD,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,IAM5B,MAAM,SAAS,cAAc,EAAE,aAAY,MAAqB,KAAG,MAAM,GAAG,cAAc,CAgC7H"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { resolveGTSXConfig } from "@gtsx/core/config-model";
6
6
  const defaultPreviewEntriesModuleId = "@gtsx/adapter-next-react/preview-entries";
7
7
  const defaultPreviewEntriesOutputFile = ".gtsx/preview-entries.ts";
8
8
  const ignoredPreviewEntryDirs = new Set(["node_modules", "dist", ".next", ".git", ".gtsx"]);
9
+ const previewImportQuery = "gtsx-preview";
9
10
  export function gtsxNextReact(options = {}) {
10
11
  const root = options.root ?? process.cwd();
11
12
  const loaderPath = resolve(dirname(fileURLToPath(import.meta.url)), "../loader.cjs");
@@ -29,7 +30,7 @@ export function gtsxNextReact(options = {}) {
29
30
  resolvedConfig.module.rules.unshift({
30
31
  test: /\.g\.tsx$/,
31
32
  enforce: "pre",
32
- use: [{ loader: loaderPath, options: { root, transformPath } }],
33
+ use: [{ loader: loaderPath, options: { previewQuery: previewImportQuery, root, transformPath } }],
33
34
  });
34
35
  return resolvedConfig;
35
36
  },
@@ -39,8 +40,7 @@ export function gtsxNextReact(options = {}) {
39
40
  }
40
41
  function withGTSXTurbopackConfig(turbopack, loaderPath, root, transformPath, previewEntries) {
41
42
  const gtsxRule = {
42
- loaders: [{ loader: loaderPath, options: { root, transformPath } }],
43
- as: "*.tsx",
43
+ loaders: [{ loader: loaderPath, options: { previewQuery: previewImportQuery, root, transformPath, transpilePreview: true } }],
44
44
  };
45
45
  const rules = turbopack?.rules ?? {};
46
46
  return {
@@ -88,12 +88,14 @@ function writeGTSXNextPreviewEntries(root, options) {
88
88
  writeFileSync(options.outputPath, code);
89
89
  }
90
90
  function discoverGTSXPreviewFiles(root, projectRoot) {
91
- const directory = resolve(root, projectRoot);
92
- if (!existsSync(directory))
93
- return [];
94
91
  const files = [];
95
- walk(directory);
92
+ collectGTSXPreviewFiles(resolve(root, projectRoot), files);
96
93
  return files.map((filePath) => relative(root, filePath).split(sep).join("/")).sort((left, right) => left.localeCompare(right));
94
+ }
95
+ function collectGTSXPreviewFiles(directory, files) {
96
+ if (!existsSync(directory))
97
+ return;
98
+ walk(directory);
97
99
  function walk(currentDirectory) {
98
100
  for (const dirent of readdirSync(currentDirectory, { withFileTypes: true })) {
99
101
  if (dirent.isDirectory()) {
@@ -111,7 +113,7 @@ function discoverGTSXPreviewFiles(root, projectRoot) {
111
113
  function createGTSXNextPreviewEntriesModule(root, outputPath, files) {
112
114
  const entries = files.map((filePath) => {
113
115
  const absoluteFilePath = resolve(root, filePath);
114
- return ` ${JSON.stringify(filePath)}: () => import(${JSON.stringify(toGeneratedImportSpecifier(outputPath, absoluteFilePath))}),`;
116
+ return ` ${JSON.stringify(filePath)}: () => import(${JSON.stringify(toGeneratedImportSpecifier(outputPath, absoluteFilePath, previewImportQuery))}),`;
115
117
  });
116
118
  return `import type { GTSXPreviewComponent } from "@gtsx/adapter-next-react/preview"
117
119
 
@@ -139,10 +141,11 @@ export function parseGTSXPreviewEntry(entry: string): { file: string; exportName
139
141
  }
140
142
  `;
141
143
  }
142
- function toGeneratedImportSpecifier(outputPath, absoluteFilePath) {
144
+ function toGeneratedImportSpecifier(outputPath, absoluteFilePath, previewQuery) {
143
145
  const extensionless = absoluteFilePath.replace(/\.tsx$/, "");
144
146
  const relativePath = relative(dirname(outputPath), extensionless).split(sep).join("/");
145
- return relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
147
+ const specifier = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
148
+ return `${specifier}?${previewQuery}`;
146
149
  }
147
150
  function toTurbopackResolveAliasPath(root, outputPath) {
148
151
  const relativePath = relative(root, outputPath).split(sep).join("/");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAsD3D,MAAM,6BAA6B,GAAG,0CAA0C,CAAA;AAChF,MAAM,+BAA+B,GAAG,0BAA0B,CAAA;AAClE,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAC3F,MAAM,kBAAkB,GAAG,cAAc,CAAA;AAEzC,MAAM,UAAU,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IACpF,MAAM,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAA;IACrD,MAAM,cAAc,GAAG,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAElE,OAAO,SAAS,iBAAiB,CAAgC,aAAqB,EAAY;QAChG,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAA;QACtC,2BAA2B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;QAEjD,OAAO;YACL,GAAG,UAAU;YACb,OAAO,CAAC,MAAqB,EAAE,OAAY;gBACzC,2BAA2B,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;gBACjD,MAAM,cAAc,GAAG,CAAC,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAA;gBACnH,cAAc,CAAC,MAAM,KAAK,EAAE,CAAA;gBAC5B,cAAc,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAA;gBAClC,cAAc,CAAC,OAAO,KAAK,EAAE,CAAA;gBAC7B,cAAc,CAAC,OAAO,CAAC,KAAK,GAAG;oBAC7B,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;oBACvC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpF,CAAA;gBACD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBAClC,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,KAAK;oBACd,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;iBAClG,CAAC,CAAA;gBACF,OAAO,cAAc,CAAA;YACvB,CAAC;YACD,SAAS,EAAE,uBAAuB,CAChC,UAAU,CAAC,SAAS,EACpB,UAAU,EACV,IAAI,EACJ,aAAa,EACb,cAAc,CACf;SACyB,CAAA;IAC9B,CAAC,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAAsC,EACtC,UAAkB,EAClB,IAAY,EACZ,aAAqB,EACrB,cAAiE;IAEjE,MAAM,QAAQ,GAA4B;QACxC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;KAC9H,CAAA;IACD,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,EAAE,CAAA;IAEpC,OAAO;QACL,GAAG,SAAS;QACZ,YAAY,EAAE;YACZ,GAAG,CAAC,SAAS,EAAE,YAAY,IAAI,EAAE,CAAC;YAClC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,2BAA2B,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvH;QACD,KAAK,EAAE;YACL,GAAG,KAAK;YACR,SAAS,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACnD;KACF,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,IAA6B,EAC7B,QAAuF;IAEvF,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,4BAA4B,EAAE;QAC1E,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC7B,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,IAAY,EACZ,OAA6B;IAE7B,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK;QAAE,OAAO,SAAS,CAAA;IAEtD,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/F,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrF,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,QAAQ,IAAI,6BAA6B;QAClE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,IAAI,+BAA+B,CAAC;QACvF,WAAW,EAAE,cAAc,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,cAAc,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;KACxG,CAAA;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY,EAAE,OAA0D;IAC3G,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAM;IAEzC,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,kCAAkC,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAChF,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAM;IAE5B,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC3D,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY,EAAE,WAAmB;IACjE,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,uBAAuB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,CAAA;IAE1D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;AAChI,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAiB,EAAE,KAAe;IACjE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAM;IAElC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEf,SAAS,IAAI,CAAC,gBAAwB;QACpC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5E,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC9C,CAAC;gBACD,SAAQ;YACV,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAY,EAAE,UAAkB,EAAE,KAAe;IAC3F,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACrC,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAChD,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAA;IACxJ,CAAC,CAAC,CAAA;IAEF,OAAO;;;;;;;EAOP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;CAiBnB,CAAA;AACD,CAAC;AAED,SAAS,0BAA0B,CAAC,UAAkB,EAAE,gBAAwB,EAAE,YAAoB;IACpG,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACtF,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAA;IACnF,OAAO,GAAG,SAAS,IAAI,YAAY,EAAE,CAAA;AACvC,CAAC;AAED,SAAS,2BAA2B,CAAC,IAAY,EAAE,UAAkB;IACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpE,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAA;AAC7G,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/index.cjs CHANGED
@@ -6,6 +6,7 @@ const { dirname, relative, resolve, sep } = require("node:path")
6
6
  const defaultPreviewEntriesModuleId = "@gtsx/adapter-next-react/preview-entries"
7
7
  const defaultPreviewEntriesOutputFile = ".gtsx/preview-entries.ts"
8
8
  const ignoredPreviewEntryDirs = new Set(["node_modules", "dist", ".next", ".git", ".gtsx"])
9
+ const previewImportQuery = "gtsx-preview"
9
10
 
10
11
  function gtsxNextReact(options = {}) {
11
12
  const root = options.root ?? process.cwd()
@@ -34,7 +35,7 @@ function gtsxNextReact(options = {}) {
34
35
  resolvedConfig.module.rules.unshift({
35
36
  test: /\.g\.tsx$/,
36
37
  enforce: "pre",
37
- use: [{ loader: loaderPath, options: { root, transformPath } }],
38
+ use: [{ loader: loaderPath, options: { previewQuery: previewImportQuery, root, transformPath } }],
38
39
  })
39
40
  return resolvedConfig
40
41
  },
@@ -51,8 +52,7 @@ function gtsxNextReact(options = {}) {
51
52
 
52
53
  function withGTSXTurbopackConfig(turbopack, loaderPath, root, transformPath, previewEntries) {
53
54
  const gtsxRule = {
54
- loaders: [{ loader: loaderPath, options: { root, transformPath } }],
55
- as: "*.tsx",
55
+ loaders: [{ loader: loaderPath, options: { previewQuery: previewImportQuery, root, transformPath, transpilePreview: true } }],
56
56
  }
57
57
  const rules = turbopack?.rules ?? {}
58
58
 
@@ -99,12 +99,17 @@ function writeGTSXNextPreviewEntries(root, options) {
99
99
  }
100
100
 
101
101
  function discoverGTSXPreviewFiles(root, projectRoot) {
102
- const directory = resolve(root, projectRoot)
103
- if (!existsSync(directory)) return []
104
-
105
102
  const files = []
106
- walk(directory)
103
+
104
+ collectGTSXPreviewFiles(resolve(root, projectRoot), files)
105
+
107
106
  return files.map((filePath) => relative(root, filePath).split(sep).join("/")).sort((left, right) => left.localeCompare(right))
107
+ }
108
+
109
+ function collectGTSXPreviewFiles(directory, files) {
110
+ if (!existsSync(directory)) return
111
+
112
+ walk(directory)
108
113
 
109
114
  function walk(currentDirectory) {
110
115
  for (const dirent of readdirSync(currentDirectory, { withFileTypes: true })) {
@@ -125,7 +130,7 @@ function discoverGTSXPreviewFiles(root, projectRoot) {
125
130
  function createGTSXNextPreviewEntriesModule(root, outputPath, files) {
126
131
  const entries = files.map((filePath) => {
127
132
  const absoluteFilePath = resolve(root, filePath)
128
- return ` ${JSON.stringify(filePath)}: () => import(${JSON.stringify(toGeneratedImportSpecifier(outputPath, absoluteFilePath))}),`
133
+ return ` ${JSON.stringify(filePath)}: () => import(${JSON.stringify(toGeneratedImportSpecifier(outputPath, absoluteFilePath, previewImportQuery))}),`
129
134
  })
130
135
 
131
136
  return `import type { GTSXPreviewComponent } from "@gtsx/adapter-next-react/preview"
@@ -155,10 +160,11 @@ export function parseGTSXPreviewEntry(entry: string): { file: string; exportName
155
160
  `
156
161
  }
157
162
 
158
- function toGeneratedImportSpecifier(outputPath, absoluteFilePath) {
163
+ function toGeneratedImportSpecifier(outputPath, absoluteFilePath, previewQuery) {
159
164
  const extensionless = absoluteFilePath.replace(/\.tsx$/, "")
160
165
  const relativePath = relative(dirname(outputPath), extensionless).split(sep).join("/")
161
- return relativePath.startsWith(".") ? relativePath : `./${relativePath}`
166
+ const specifier = relativePath.startsWith(".") ? relativePath : `./${relativePath}`
167
+ return `${specifier}?${previewQuery}`
162
168
  }
163
169
 
164
170
  function toTurbopackResolveAliasPath(root, outputPath) {
package/loader.cjs CHANGED
@@ -8,16 +8,30 @@ module.exports = function gtsxNextReactLoader(source, inputSourceMap) {
8
8
  const root = typeof options.root === "string" ? options.root : process.cwd()
9
9
  const transformModule = typeof options.transformPath === "string" ? pathToFileURL(options.transformPath).href : "@gtsx/core/react-transform"
10
10
  const filePath = this.resourcePath
11
+ const previewQuery = typeof options.previewQuery === "string" ? options.previewQuery : "gtsx-preview"
12
+ const isPreviewImport = hasResourceQuery(this.resourceQuery, previewQuery)
13
+ const shouldTranspilePreview = options.transpilePreview !== false
11
14
  const code = Buffer.isBuffer(source) ? source.toString("utf8") : String(source)
12
15
 
16
+ if (!isPreviewImport) {
17
+ callback(null, code, inputSourceMap)
18
+ return
19
+ }
20
+
13
21
  import(transformModule).then(
14
- ({ transformGTSXReactModule }) => {
22
+ ({ transformGTSXReactModule, transpileGTSXReactModuleCode }) => {
15
23
  const transformed = transformGTSXReactModule({
16
24
  code,
17
25
  filePath,
26
+ previewImportQuery: previewQuery,
18
27
  root,
19
28
  })
20
- callback(null, transformed?.code ?? code, inputSourceMap)
29
+ const output = transformed?.code ?? code
30
+ const finalOutput =
31
+ shouldTranspilePreview && typeof transpileGTSXReactModuleCode === "function"
32
+ ? transpileGTSXReactModuleCode({ code: output, filePath })
33
+ : output
34
+ callback(null, finalOutput, inputSourceMap)
21
35
  },
22
36
  (error) => {
23
37
  callback(error)
@@ -36,3 +50,9 @@ function readLoaderOptions(context) {
36
50
 
37
51
  return context.query
38
52
  }
53
+
54
+ function hasResourceQuery(resourceQuery, queryName) {
55
+ if (typeof resourceQuery !== "string" || resourceQuery.length === 0) return false
56
+ const query = resourceQuery.startsWith("?") ? resourceQuery.slice(1) : resourceQuery
57
+ return query.split("&").some((part) => part === queryName || part.startsWith(`${queryName}=`))
58
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gtsx/adapter-next-react",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Next.js React adapter for GTSX component preview integration.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -57,12 +57,12 @@
57
57
  "loader.cjs"
58
58
  ],
59
59
  "dependencies": {
60
- "@gtsx/preview-react": "0.0.2"
60
+ "@gtsx/preview-react": "0.0.3"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "next": ">=13",
64
64
  "react": ">=18",
65
- "@gtsx/core": "0.0.2"
65
+ "@gtsx/core": "0.0.3"
66
66
  },
67
67
  "scripts": {
68
68
  "build": "tsc -p tsconfig.build.json",