@metaobjectsdev/codegen-ts-tanstack 0.7.0 → 0.8.0-rc.1
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.
- package/dist/tanstack-grid-hook.d.ts.map +1 -1
- package/dist/tanstack-grid-hook.js +5 -3
- package/dist/tanstack-grid-hook.js.map +1 -1
- package/dist/tanstack-grid.d.ts.map +1 -1
- package/dist/tanstack-grid.js +5 -3
- package/dist/tanstack-grid.js.map +1 -1
- package/dist/tanstack-query.d.ts.map +1 -1
- package/dist/tanstack-query.js +6 -3
- package/dist/tanstack-query.js.map +1 -1
- package/package.json +3 -3
- package/src/tanstack-grid-hook.ts +5 -3
- package/src/tanstack-grid.ts +5 -3
- package/src/tanstack-query.ts +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid-hook.d.ts","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAA6B,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tanstack-grid-hook.d.ts","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAA6B,KAAK,gBAAgB,EAAsD,MAAM,4BAA4B,CAAC;AAGlJ,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EA6BxB,gBAAgB,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LAYOUT_SUBTYPE_DATA_GRID } from "@metaobjectsdev/metadata";
|
|
2
|
-
import { perEntity, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
2
|
+
import { perEntity, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
3
3
|
import { renderGridHookFile } from "./templates/grid-hook-file.js";
|
|
4
4
|
function hasDataGridLayout(entity) {
|
|
5
5
|
// layouts() is effective — own + inherited layouts (from extends:/super:).
|
|
@@ -16,8 +16,10 @@ export const tanstackGridHook = function tanstackGridHook(opts) {
|
|
|
16
16
|
const userFilter = opts?.filter ?? (() => true);
|
|
17
17
|
const generator = {
|
|
18
18
|
name: "tanstack-grid-hook",
|
|
19
|
-
// AND-composes
|
|
20
|
-
filter
|
|
19
|
+
// AND-composes the framework instance-artifact guard (skips abstract types),
|
|
20
|
+
// opt-out, user filter, and dataGrid layout presence.
|
|
21
|
+
filter: (e) => emitsInstanceArtifacts(e)
|
|
22
|
+
&& e.ownAttr("emitTanstack") !== false
|
|
21
23
|
&& userFilter(e)
|
|
22
24
|
&& hasDataGridLayout(e),
|
|
23
25
|
generate: perEntity(async (entity, ctx) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid-hook.js","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"tanstack-grid-hook.js","sourceRoot":"","sources":["../src/tanstack-grid-hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAClJ,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAOnE,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,2EAA2E;IAC3E,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,IAA2B;IACnF,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,oBAAoB;QAC1B,6EAA6E;QAC7E,sDAAsD;QACtD,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CACxB,sBAAsB,CAAC,CAAC,CAAC;eACtB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,KAAK;eACnC,UAAU,CAAC,CAAC,CAAC;eACb,iBAAiB,CAAC,CAAC,CAAC;QACzB,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACxF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CACpB,GAAG,CAAC,aAAa,CAAC,YAAY,EAC9B,MAAM,CAAC,OAAO,EACd,GAAG,MAAM,CAAC,IAAI,UAAU,CACzB;gBACD,OAAO,EAAE,MAAM,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACvE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAkD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid.d.ts","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAA6B,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tanstack-grid.d.ts","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAA6B,KAAK,gBAAgB,EAAsD,MAAM,4BAA4B,CAAC;AAGlJ,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAyBpB,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC"}
|
package/dist/tanstack-grid.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LAYOUT_SUBTYPE_DATA_GRID } from "@metaobjectsdev/metadata";
|
|
2
|
-
import { perEntity, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
2
|
+
import { perEntity, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
3
3
|
import { renderColumnsFile } from "./templates/columns-file.js";
|
|
4
4
|
function hasDataGridLayout(entity) {
|
|
5
5
|
// layouts() is effective — own + inherited layouts (from extends:/super:).
|
|
@@ -14,8 +14,10 @@ export const tanstackGrid = function tanstackGrid(opts) {
|
|
|
14
14
|
const userFilter = opts?.filter ?? (() => true);
|
|
15
15
|
const generator = {
|
|
16
16
|
name: "tanstack-grid",
|
|
17
|
-
// Always set: AND-composes
|
|
18
|
-
|
|
17
|
+
// Always set: AND-composes the framework instance-artifact guard (skips
|
|
18
|
+
// abstract types), opt-out, user filter, and dataGrid layout presence.
|
|
19
|
+
filter: (e) => emitsInstanceArtifacts(e)
|
|
20
|
+
&& e.ownAttr("emitTanstack") !== false
|
|
19
21
|
&& userFilter(e)
|
|
20
22
|
&& hasDataGridLayout(e),
|
|
21
23
|
generate: perEntity(async (entity, ctx) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-grid.js","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"tanstack-grid.js","sourceRoot":"","sources":["../src/tanstack-grid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAClJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhE,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,2EAA2E;IAC3E,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,YAAY,CAAC,IAAuB;IACvE,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,eAAe;QACrB,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CACxB,sBAAsB,CAAC,CAAC,CAAC;eACtB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,KAAK;eACnC,UAAU,CAAC,CAAC,CAAC;eACb,iBAAiB,CAAC,CAAC,CAAC;QACzB,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACnF,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,cAAc,CAAC;gBACpG,OAAO,EAAE,MAAM,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACtE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAA8C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-query.d.ts","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"tanstack-query.d.ts","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAA6B,KAAK,gBAAgB,EAAsD,MAAM,4BAA4B,CAAC;AAGlJ,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAyBrB,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC"}
|
package/dist/tanstack-query.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { perEntity, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
1
|
+
import { perEntity, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
2
2
|
import { renderHooksFile } from "./templates/hooks-file.js";
|
|
3
3
|
/**
|
|
4
4
|
* Per-entity generator that emits <Entity>.hooks.ts — a query-key factory
|
|
@@ -11,8 +11,11 @@ export const tanstackQuery = function tanstackQuery(opts) {
|
|
|
11
11
|
const userFilter = opts?.filter ?? (() => true);
|
|
12
12
|
const generator = {
|
|
13
13
|
name: "tanstack-query",
|
|
14
|
-
// AND-composes
|
|
15
|
-
|
|
14
|
+
// AND-composes the framework instance-artifact guard (skips abstract types —
|
|
15
|
+
// they contribute shape via inheritance only and have no instance to query),
|
|
16
|
+
// the metadata opt-out, and the optional user filter. Projections still pass
|
|
17
|
+
// here and get read-only hooks via renderHooksFile's isProjection branch.
|
|
18
|
+
filter: (e) => emitsInstanceArtifacts(e) && e.ownAttr("emitTanstack") !== false && userFilter(e),
|
|
16
19
|
generate: perEntity(async (entity, ctx) => {
|
|
17
20
|
if (!ctx.renderContext) {
|
|
18
21
|
throw new Error("tanstack-query: renderContext is required (provided by runGen)");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tanstack-query.js","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"tanstack-query.js","sourceRoot":"","sources":["../src/tanstack-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAyC,QAAQ,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAClJ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAO5D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,aAAa,CAAC,IAAwB;IAC1E,MAAM,UAAU,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,gBAAgB;QACtB,6EAA6E;QAC7E,6EAA6E;QAC7E,6EAA6E;QAC7E,0EAA0E;QAC1E,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC;QAC5G,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,WAAW,CAAC;gBACjG,OAAO,EAAE,MAAM,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;aACpE,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;IACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAA+C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/codegen-ts-tanstack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0-rc.1",
|
|
4
4
|
"description": "TanStack codegen for metaobjects — emits hooks and column definitions for TanStack Query and Table.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@metaobjectsdev/metadata": "0.
|
|
37
|
-
"@metaobjectsdev/codegen-ts": "0.
|
|
36
|
+
"@metaobjectsdev/metadata": "0.8.0-rc.1",
|
|
37
|
+
"@metaobjectsdev/codegen-ts": "0.8.0-rc.1",
|
|
38
38
|
"ts-poet": "^6.10.0"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { LAYOUT_SUBTYPE_DATA_GRID } from "@metaobjectsdev/metadata";
|
|
3
|
-
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
3
|
+
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
4
4
|
import { renderGridHookFile } from "./templates/grid-hook-file.js";
|
|
5
5
|
|
|
6
6
|
export interface TanstackGridHookOpts {
|
|
@@ -24,9 +24,11 @@ export const tanstackGridHook = function tanstackGridHook(opts?: TanstackGridHoo
|
|
|
24
24
|
const userFilter = opts?.filter ?? (() => true);
|
|
25
25
|
const generator: Generator = {
|
|
26
26
|
name: "tanstack-grid-hook",
|
|
27
|
-
// AND-composes
|
|
27
|
+
// AND-composes the framework instance-artifact guard (skips abstract types),
|
|
28
|
+
// opt-out, user filter, and dataGrid layout presence.
|
|
28
29
|
filter: (e: MetaObject) =>
|
|
29
|
-
e
|
|
30
|
+
emitsInstanceArtifacts(e)
|
|
31
|
+
&& e.ownAttr("emitTanstack") !== false
|
|
30
32
|
&& userFilter(e)
|
|
31
33
|
&& hasDataGridLayout(e),
|
|
32
34
|
generate: perEntity(async (entity, ctx) => {
|
package/src/tanstack-grid.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
2
|
import { LAYOUT_SUBTYPE_DATA_GRID } from "@metaobjectsdev/metadata";
|
|
3
|
-
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
3
|
+
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
4
4
|
import { renderColumnsFile } from "./templates/columns-file.js";
|
|
5
5
|
|
|
6
6
|
export interface TanstackGridOpts {
|
|
@@ -22,9 +22,11 @@ export const tanstackGrid = function tanstackGrid(opts?: TanstackGridOpts): Gene
|
|
|
22
22
|
const userFilter = opts?.filter ?? (() => true);
|
|
23
23
|
const generator: Generator = {
|
|
24
24
|
name: "tanstack-grid",
|
|
25
|
-
// Always set: AND-composes
|
|
25
|
+
// Always set: AND-composes the framework instance-artifact guard (skips
|
|
26
|
+
// abstract types), opt-out, user filter, and dataGrid layout presence.
|
|
26
27
|
filter: (e: MetaObject) =>
|
|
27
|
-
e
|
|
28
|
+
emitsInstanceArtifacts(e)
|
|
29
|
+
&& e.ownAttr("emitTanstack") !== false
|
|
28
30
|
&& userFilter(e)
|
|
29
31
|
&& hasDataGridLayout(e),
|
|
30
32
|
generate: perEntity(async (entity, ctx) => {
|
package/src/tanstack-query.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MetaObject } from "@metaobjectsdev/metadata";
|
|
2
|
-
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath } from "@metaobjectsdev/codegen-ts";
|
|
2
|
+
import { perEntity, type Generator, type GeneratorFactory, formatTs, entityOutputPath, emitsInstanceArtifacts } from "@metaobjectsdev/codegen-ts";
|
|
3
3
|
import { renderHooksFile } from "./templates/hooks-file.js";
|
|
4
4
|
|
|
5
5
|
export interface TanstackQueryOpts {
|
|
@@ -18,8 +18,11 @@ export const tanstackQuery = function tanstackQuery(opts?: TanstackQueryOpts): G
|
|
|
18
18
|
const userFilter = opts?.filter ?? (() => true);
|
|
19
19
|
const generator: Generator = {
|
|
20
20
|
name: "tanstack-query",
|
|
21
|
-
// AND-composes
|
|
22
|
-
|
|
21
|
+
// AND-composes the framework instance-artifact guard (skips abstract types —
|
|
22
|
+
// they contribute shape via inheritance only and have no instance to query),
|
|
23
|
+
// the metadata opt-out, and the optional user filter. Projections still pass
|
|
24
|
+
// here and get read-only hooks via renderHooksFile's isProjection branch.
|
|
25
|
+
filter: (e: MetaObject) => emitsInstanceArtifacts(e) && e.ownAttr("emitTanstack") !== false && userFilter(e),
|
|
23
26
|
generate: perEntity(async (entity, ctx) => {
|
|
24
27
|
if (!ctx.renderContext) {
|
|
25
28
|
throw new Error(
|