@powerhousedao/codegen 5.2.0-staging.8 → 5.2.0-staging.9

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.
@@ -2,13 +2,77 @@
2
2
  to: "<%= editorDir %>/editor.tsx"
3
3
  unless_exists: true
4
4
  ---
5
- import { <%= editNameComponentName %> } from "./components/EditName.js";
5
+ import { DocumentToolbar } from "@powerhousedao/design-system/connect";
6
+ import { setName } from "document-model";
7
+ import { type FormEvent, useState } from "react";
8
+ <% if(!documentType){ %>import { useSelectedDocument } from "@powerhousedao/reactor-browser";<% } else { %>import { <%= useSelectedHookName %> } from "<%= documentModelDir %>";<% } %>
6
9
 
7
- /** Implement your editor behavior here */
8
10
  export default function Editor() {
11
+ const [document, dispatch] = <%= useSelectedHookName %>();
12
+ const [isEditing, setIsEditing] = useState(false);
13
+
14
+ if (!document) return null;
15
+
16
+ const handleSubmit = (event: FormEvent<HTMLFormElement>) => {
17
+ event.preventDefault();
18
+ const form = event.currentTarget;
19
+ const nameInput = form.elements.namedItem("name") as HTMLInputElement;
20
+ const name = nameInput.value.trim();
21
+ if (!name) return;
22
+ dispatch(setName(name));
23
+ setIsEditing(false);
24
+ };
25
+
9
26
  return (
10
- <div className="py-4 px-8">
11
- <<%= editNameComponentName %> />
27
+ <div className="min-h-screen bg-gray-50">
28
+ <DocumentToolbar />
29
+ <div className="flex justify-center px-4 py-8">
30
+ <div className="w-full max-w-md rounded-xl bg-white p-6 shadow-sm">
31
+ <div className="mb-4 text-xs font-medium uppercase tracking-wide text-gray-400">
32
+ <%= pascalCaseDocumentType %>
33
+ </div>
34
+
35
+ {isEditing ? (
36
+ <form onSubmit={handleSubmit} className="space-y-4">
37
+ <input
38
+ type="text"
39
+ name="name"
40
+ defaultValue={document.header.name}
41
+ autoFocus
42
+ className="w-full rounded-lg border border-gray-200 px-4 py-3 text-lg font-semibold text-gray-900 outline-none transition-colors focus:border-blue-500 focus:ring-2 focus:ring-blue-100"
43
+ placeholder="Enter name..."
44
+ />
45
+ <div className="flex gap-2">
46
+ <button
47
+ type="submit"
48
+ className="flex-1 rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-medium text-white transition-colors hover:bg-blue-700"
49
+ >
50
+ Save
51
+ </button>
52
+ <button
53
+ type="button"
54
+ onClick={() => setIsEditing(false)}
55
+ className="flex-1 rounded-lg border border-gray-200 px-4 py-2.5 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-50"
56
+ >
57
+ Cancel
58
+ </button>
59
+ </div>
60
+ </form>
61
+ ) : (
62
+ <div className="flex items-center justify-between gap-4">
63
+ <h2 className="truncate text-xl font-semibold text-gray-900">
64
+ {document.header.name || "Untitled"}
65
+ </h2>
66
+ <button
67
+ onClick={() => setIsEditing(true)}
68
+ className="shrink-0 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200"
69
+ >
70
+ Edit
71
+ </button>
72
+ </div>
73
+ )}
74
+ </div>
75
+ </div>
12
76
  </div>
13
77
  );
14
78
  }
@@ -58,9 +58,11 @@ describe("generateEditor", () => {
58
58
  const editorPath = path.join(editorDir, "editor.tsx");
59
59
  expect(fs.existsSync(editorPath)).toBe(true);
60
60
  const editorContent = fs.readFileSync(editorPath, "utf-8");
61
- expect(editorContent).toContain(`import { EditName } from "./components/EditName.js";`);
61
+ expect(editorContent).toContain(`import { DocumentToolbar } from "@powerhousedao/design-system/connect";`);
62
+ expect(editorContent).toContain(`import { useSelectedTestDocDocument }`);
62
63
  expect(editorContent).toContain(`export default function Editor()`);
63
- expect(editorContent).toContain(`<EditName />`);
64
+ expect(editorContent).toContain(`<DocumentToolbar />`);
65
+ expect(editorContent).toContain(`handleSubmit`);
64
66
  const modulePath = path.join(editorDir, "module.ts");
65
67
  expect(fs.existsSync(modulePath)).toBe(true);
66
68
  const moduleContent = fs.readFileSync(modulePath, "utf-8");
@@ -1 +1 @@
1
- {"version":3,"file":"generate-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-editor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-editor.test.js","sourceRoot":"","sources":["../../../../src/codegen/__tests__/generate-editor.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,16 @@
1
1
  import type { Project } from "ts-morph";
2
2
  import type { EditorFilePaths, EditorVariableNames } from "../types.js";
3
- import type { CommonGenerateEditorArgs, CommonMakeEditorComponentArgs } from "./types.js";
3
+ import type { CommonGenerateEditorArgs } from "./types.js";
4
4
  type GenerateEditorArgs = CommonGenerateEditorArgs & {
5
5
  documentModelId: string;
6
6
  };
7
7
  export declare function tsMorphGenerateEditor({ packageName, projectDir, editorDir, editorName, editorId, documentModelId, }: GenerateEditorArgs): void;
8
- type MakeEditDocumentNameComponentArgs = EditorVariableNames & EditorFilePaths & {
8
+ type MakeEditorComponentArgs = EditorVariableNames & EditorFilePaths & {
9
9
  project: Project;
10
10
  documentModelDocumentTypeName: string;
11
11
  documentModelImportPath: string;
12
12
  };
13
- export declare function makeEditDocumentNameComponent({ project, documentModelDocumentTypeName, documentVariableName, onClickEditHandlerName, onCancelEditHandlerName, documentModelImportPath, setNameActionName, useSelectedDocumentHookName, dispatchFunctionName, isEditingVariableName, setIsEditingFunctionName, onSubmitSetNameFunctionName, documentNameVariableName, editDocumentNameComponentName, editDocumentNameComponentFilePath, }: MakeEditDocumentNameComponentArgs): void;
14
- type MakeEditorComponentArgs = CommonMakeEditorComponentArgs & {
15
- editDocumentNameComponentName: string;
16
- };
17
- export declare function makeEditorComponent({ project, editorFilePath, editDocumentNameComponentName, }: MakeEditorComponentArgs): void;
13
+ export declare function makeEditorComponent({ project, editorFilePath, documentModelDocumentTypeName, documentModelImportPath, useSelectedDocumentHookName, }: MakeEditorComponentArgs): void;
18
14
  type MakeEditorModuleFileArgs = {
19
15
  project: Project;
20
16
  editorName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAuCxC,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAEpB,KAAK,kBAAkB,GAAG,wBAAwB,GAAG;IACnD,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AACF,wBAAgB,qBAAqB,CAAC,EACpC,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,EAAE,kBAAkB,QA2CpB;AAED,KAAK,iCAAiC,GAAG,mBAAmB,GAC1D,eAAe,GAAG;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B,EAAE,MAAM,CAAC;IACtC,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AACJ,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,GAClC,EAAE,iCAAiC,QAyOnC;AAED,KAAK,uBAAuB,GAAG,6BAA6B,GAAG;IAC7D,6BAA6B,EAAE,MAAM,CAAC;CACvC,CAAC;AACF,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,6BAA6B,GAC9B,EAAE,uBAAuB,QAyCzB;AAED,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;CACxC,CAAC;AACF,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,2BAA2B,GAC5B,EAAE,wBAAwB,QAsF1B"}
1
+ {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAqCxC,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,KAAK,kBAAkB,GAAG,wBAAwB,GAAG;IACnD,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AACF,wBAAgB,qBAAqB,CAAC,EACpC,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,GAChB,EAAE,kBAAkB,QAuCpB;AAED,KAAK,uBAAuB,GAAG,mBAAmB,GAChD,eAAe,GAAG;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,6BAA6B,EAAE,MAAM,CAAC;IACtC,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC;AACJ,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,EAAE,uBAAuB,QAmQzB;AAED,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;CACxC,CAAC;AACF,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,2BAA2B,GAC5B,EAAE,wBAAwB,QAsF1B"}
@@ -3,7 +3,7 @@ import { SyntaxKind, VariableDeclarationKind } from "ts-morph";
3
3
  import { buildNodePrinter, formatSourceFileWithPrettier, getDocumentTypeMetadata, getOrCreateSourceFile, } from "../file-utils.js";
4
4
  import { getDocumentModelFilePaths, getEditorFilePaths, } from "../name-builders/get-file-paths.js";
5
5
  import { getEditorVariableNames } from "../name-builders/get-variable-names.js";
6
- import { buildArrowFunction, buildClassNameAttribute, buildConstAssignment, buildDestructuredArrayHookCallAssignment, buildFalse, buildFunctionCall, buildJsxAttribute, buildJsxBooleanAttribute, buildJsxElement, buildJsxExpression, buildJsxStringValueAttribute, buildJsxText, buildMethodInvocation, buildNull, buildObjectPropertyAccess, buildReturn, buildReturnIfVariableIsFalsy, buildReturnIfVariableIsTruthy, buildSelfClosingJsxElement, buildStringLiteral, buildTrue, buildType, } from "../syntax-builders.js";
6
+ import { buildArrowFunction, buildClassNameAttribute, buildConstAssignment, buildDestructuredArrayHookCallAssignment, buildFalse, buildFunctionCall, buildJsxAttribute, buildJsxAttributeWithoutValue, buildJsxElement, buildJsxExpression, buildJsxStringValueAttribute, buildJsxText, buildMethodInvocation, buildNull, buildObjectPropertyAccess, buildReturn, buildReturnIfVariableIsFalsy, buildSelfClosingJsxElement, buildStringLiteral, buildTernary, } from "../syntax-builders.js";
7
7
  import { getObjectLiteral, getObjectProperty } from "../syntax-getters.js";
8
8
  import { buildTsMorphProject } from "../ts-morph-project.js";
9
9
  import { makeEditorsModulesFile } from "./editor-common.js";
@@ -22,14 +22,10 @@ export function tsMorphGenerateEditor({ packageName, projectDir, editorDir, edit
22
22
  ...documentModelFilePaths,
23
23
  });
24
24
  const editorVariableNames = getEditorVariableNames(documentTypeMetadata);
25
- makeEditDocumentNameComponent({
26
- project,
27
- ...documentTypeMetadata,
28
- ...editorVariableNames,
29
- ...editorFilePaths,
30
- });
31
25
  makeEditorComponent({
32
26
  project,
27
+ documentModelDocumentTypeName: documentTypeMetadata.documentModelDocumentTypeName,
28
+ documentModelImportPath: documentTypeMetadata.documentModelImportPath,
33
29
  ...editorFilePaths,
34
30
  ...editorVariableNames,
35
31
  });
@@ -43,80 +39,62 @@ export function tsMorphGenerateEditor({ packageName, projectDir, editorDir, edit
43
39
  makeEditorsModulesFile(project, projectDir);
44
40
  project.saveSync();
45
41
  }
46
- export function makeEditDocumentNameComponent({ project, documentModelDocumentTypeName, documentVariableName, onClickEditHandlerName, onCancelEditHandlerName, documentModelImportPath, setNameActionName, useSelectedDocumentHookName, dispatchFunctionName, isEditingVariableName, setIsEditingFunctionName, onSubmitSetNameFunctionName, documentNameVariableName, editDocumentNameComponentName, editDocumentNameComponentFilePath, }) {
47
- const { alreadyExists, sourceFile: editDocumentNameComponentSourceFile } = getOrCreateSourceFile(project, editDocumentNameComponentFilePath);
48
- if (alreadyExists)
49
- return;
50
- const printNode = buildNodePrinter(editDocumentNameComponentSourceFile);
51
- const importSetName = {
52
- namedImports: [setNameActionName],
53
- moduleSpecifier: "document-model",
54
- };
55
- const importUseSelectedDocument = {
56
- namedImports: [useSelectedDocumentHookName],
57
- moduleSpecifier: documentModelImportPath,
58
- };
59
- const importUseState = {
60
- namedImports: ["useState"],
61
- moduleSpecifier: "react",
62
- };
63
- const importFormEventHandlerTypes = {
64
- namedImports: ["FormEventHandler", "MouseEventHandler"],
65
- moduleSpecifier: "react",
66
- isTypeOnly: true,
67
- };
68
- const importDeclarations = [
69
- importSetName,
70
- importUseSelectedDocument,
71
- importUseState,
72
- importFormEventHandlerTypes,
73
- ];
74
- editDocumentNameComponentSourceFile.addImportDeclarations(importDeclarations);
42
+ export function makeEditorComponent({ project, editorFilePath, documentModelDocumentTypeName, documentModelImportPath, useSelectedDocumentHookName, }) {
43
+ const { alreadyExists, sourceFile: editorSourceFile } = getOrCreateSourceFile(project, editorFilePath);
44
+ if (alreadyExists) {
45
+ const functionDeclaration = editorSourceFile.getFunction("Editor");
46
+ if (functionDeclaration) {
47
+ if (!functionDeclaration.isDefaultExport()) {
48
+ functionDeclaration.setIsDefaultExport(true);
49
+ }
50
+ return;
51
+ }
52
+ }
53
+ const printNode = buildNodePrinter(editorSourceFile);
54
+ // Add imports
55
+ editorSourceFile.addImportDeclarations([
56
+ {
57
+ namedImports: ["DocumentToolbar"],
58
+ moduleSpecifier: "@powerhousedao/design-system/connect",
59
+ },
60
+ {
61
+ namedImports: ["setName"],
62
+ moduleSpecifier: "document-model",
63
+ },
64
+ {
65
+ namedImports: ["useState"],
66
+ moduleSpecifier: "react",
67
+ },
68
+ {
69
+ namedImports: ["FormEvent"],
70
+ moduleSpecifier: "react",
71
+ isTypeOnly: true,
72
+ },
73
+ {
74
+ namedImports: [useSelectedDocumentHookName],
75
+ moduleSpecifier: documentModelImportPath,
76
+ },
77
+ ]);
78
+ // Build hooks
75
79
  const useSelectedDocumentHook = buildDestructuredArrayHookCallAssignment({
76
80
  hookName: useSelectedDocumentHookName,
77
- destructuredElements: [documentVariableName, dispatchFunctionName],
81
+ destructuredElements: ["document", "dispatch"],
78
82
  });
79
83
  const isEditingUseStateHook = buildDestructuredArrayHookCallAssignment({
80
84
  hookName: "useState",
81
85
  hookArguments: [buildFalse()],
82
- destructuredElements: [isEditingVariableName, setIsEditingFunctionName],
83
- });
84
- const returnIfDocumentIsFalsy = buildReturnIfVariableIsFalsy(documentVariableName, buildNull());
85
- const assignDocumentNameVariable = buildConstAssignment({
86
- name: documentNameVariableName,
87
- assignmentExpression: buildObjectPropertyAccess(documentVariableName, "header.name"),
88
- });
89
- const onClickEditNameHandler = buildConstAssignment({
90
- name: onClickEditHandlerName,
91
- type: buildType("MouseEventHandler", ["HTMLButtonElement"]),
92
- assignmentExpression: buildArrowFunction({
93
- bodyStatements: [
94
- buildFunctionCall({
95
- functionName: setIsEditingFunctionName,
96
- argumentsArray: [buildTrue()],
97
- }),
98
- ],
99
- }),
100
- });
101
- const onCancelEditNameHandler = buildConstAssignment({
102
- name: onCancelEditHandlerName,
103
- type: buildType("MouseEventHandler", ["HTMLButtonElement"]),
104
- assignmentExpression: buildArrowFunction({
105
- bodyStatements: [
106
- buildFunctionCall({
107
- functionName: setIsEditingFunctionName,
108
- argumentsArray: [buildFalse()],
109
- }),
110
- ],
111
- }),
86
+ destructuredElements: ["isEditing", "setIsEditing"],
112
87
  });
113
- const onSubmitSetNameHandler = buildConstAssignment({
114
- name: onSubmitSetNameFunctionName,
115
- type: buildType("FormEventHandler", ["HTMLFormElement"]),
88
+ const returnIfDocumentIsFalsy = buildReturnIfVariableIsFalsy("document", buildNull());
89
+ // Build handleSubmit function
90
+ const handleSubmitFunction = buildConstAssignment({
91
+ name: "handleSubmit",
116
92
  assignmentExpression: buildArrowFunction({
117
93
  parameters: [
118
94
  {
119
95
  name: "event",
96
+ typeName: "FormEvent",
97
+ typeArguments: ["HTMLFormElement"],
120
98
  },
121
99
  ],
122
100
  bodyStatements: [
@@ -128,7 +106,6 @@ export function makeEditDocumentNameComponent({ project, documentModelDocumentTy
128
106
  buildConstAssignment({
129
107
  name: "form",
130
108
  assignmentExpression: buildObjectPropertyAccess("event", "currentTarget"),
131
- castAsType: "HTMLFormElement",
132
109
  }),
133
110
  buildConstAssignment({
134
111
  name: "nameInput",
@@ -141,102 +118,91 @@ export function makeEditDocumentNameComponent({ project, documentModelDocumentTy
141
118
  }),
142
119
  buildConstAssignment({
143
120
  name: "name",
144
- assignmentExpression: buildObjectPropertyAccess("nameInput", "value"),
121
+ assignmentExpression: buildMethodInvocation({
122
+ objectName: "nameInput",
123
+ methodName: "value.trim",
124
+ argumentsArray: [],
125
+ }).expression,
145
126
  }),
146
127
  buildReturnIfVariableIsFalsy("name"),
147
128
  buildFunctionCall({
148
- functionName: dispatchFunctionName,
129
+ functionName: "dispatch",
149
130
  argumentsArray: [
150
131
  buildFunctionCall({
151
- functionName: setNameActionName,
132
+ functionName: "setName",
152
133
  argumentsArray: ["name"],
153
134
  }).expression,
154
135
  ],
155
136
  }),
156
137
  buildFunctionCall({
157
- functionName: setIsEditingFunctionName,
138
+ functionName: "setIsEditing",
158
139
  argumentsArray: [buildFalse()],
159
140
  }),
160
141
  ],
161
142
  }),
162
143
  });
144
+ // Build editing form JSX
163
145
  const editNameInput = buildSelfClosingJsxElement("input", [
164
- buildClassNameAttribute("text-lg font-semibold text-gray-900 p-1"),
165
146
  buildJsxStringValueAttribute("type", "text"),
166
147
  buildJsxStringValueAttribute("name", "name"),
167
- buildJsxStringValueAttribute("defaultValue", documentNameVariableName),
168
- buildJsxBooleanAttribute("autoFocus", true),
148
+ buildJsxAttribute("defaultValue", "document.header.name"),
149
+ buildJsxAttributeWithoutValue("autoFocus"),
150
+ buildClassNameAttribute("w-full rounded-lg border border-gray-200 px-4 py-3 text-lg font-semibold text-gray-900 outline-none transition-colors focus:border-blue-500 focus:ring-2 focus:ring-blue-100"),
151
+ buildJsxStringValueAttribute("placeholder", "Enter name..."),
169
152
  ]);
170
153
  const saveButton = buildJsxElement("button", [buildJsxText("Save")], [
171
- buildClassNameAttribute("text-sm text-gray-600"),
172
154
  buildJsxStringValueAttribute("type", "submit"),
155
+ buildClassNameAttribute("flex-1 rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-medium text-white transition-colors hover:bg-blue-700"),
173
156
  ]);
174
157
  const cancelButton = buildJsxElement("button", [buildJsxText("Cancel")], [
175
- buildClassNameAttribute("text-sm text-red-800"),
176
- buildJsxAttribute("onClick", onCancelEditHandlerName),
158
+ buildJsxStringValueAttribute("type", "button"),
159
+ buildJsxAttribute("onClick", "() => setIsEditing(false)"),
160
+ buildClassNameAttribute("flex-1 rounded-lg border border-gray-200 px-4 py-2.5 text-sm font-medium text-gray-600 transition-colors hover:bg-gray-50"),
161
+ ]);
162
+ const buttonsWrapper = buildJsxElement("div", [saveButton, cancelButton], [buildClassNameAttribute("flex gap-2")]);
163
+ const editForm = buildJsxElement("form", [editNameInput, buttonsWrapper], [
164
+ buildJsxAttribute("onSubmit", "handleSubmit"),
165
+ buildClassNameAttribute("space-y-4"),
177
166
  ]);
178
- const saveAndCancelButtonsWrapperDiv = buildJsxElement("div", [saveButton, cancelButton], [buildClassNameAttribute("flex gap-2")]);
179
- const editNameForm = buildJsxElement("form", [editNameInput, saveAndCancelButtonsWrapperDiv], [
180
- buildClassNameAttribute("flex gap-2 items-center justify-between"),
181
- buildJsxAttribute("onSubmit", onSubmitSetNameFunctionName),
167
+ // Build display mode JSX
168
+ const documentNameExpression = buildJsxExpression('document.header.name || "Untitled"');
169
+ const displayHeader = buildJsxElement("h2", [documentNameExpression], [buildClassNameAttribute("truncate text-xl font-semibold text-gray-900")]);
170
+ const editButton = buildJsxElement("button", [buildJsxText("Edit")], [
171
+ buildJsxAttribute("onClick", "() => setIsEditing(true)"),
172
+ buildClassNameAttribute("shrink-0 rounded-lg bg-gray-100 px-4 py-2 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-200"),
182
173
  ]);
183
- const returnIfIsEditing = buildReturnIfVariableIsTruthy(isEditingVariableName, editNameForm);
184
- const documentNameJsxExpression = buildJsxExpression(documentNameVariableName);
185
- const notEditingHeader = buildJsxElement("h2", [documentNameJsxExpression], [buildClassNameAttribute("text-lg font-semibold text-gray-900")]);
186
- const onClickEditButton = buildJsxElement("button", [buildJsxText("Edit Name")], [
187
- buildClassNameAttribute("text-sm text-gray-600"),
188
- buildJsxAttribute("onClick", onClickEditHandlerName),
174
+ const displayWrapper = buildJsxElement("div", [displayHeader, editButton], [buildClassNameAttribute("flex items-center justify-between gap-4")]);
175
+ // Build ternary for edit/display mode wrapped in JSX expression
176
+ const editDisplayTernary = buildJsxExpression(buildTernary("isEditing", editForm, displayWrapper));
177
+ // Build document type label
178
+ const documentTypeLabel = buildJsxElement("div", [buildJsxText(documentModelDocumentTypeName)], [
179
+ buildClassNameAttribute("mb-4 text-xs font-medium uppercase tracking-wide text-gray-400"),
189
180
  ]);
190
- const notEditingWrapperDiv = buildJsxElement("div", [notEditingHeader, onClickEditButton], [buildClassNameAttribute("flex justify-between items-center")]);
191
- const returnIfNotEditing = buildReturn(notEditingWrapperDiv);
181
+ // Build card wrapper
182
+ const cardWrapper = buildJsxElement("div", [documentTypeLabel, editDisplayTernary], [
183
+ buildClassNameAttribute("w-full max-w-md rounded-xl bg-white p-6 shadow-sm"),
184
+ ]);
185
+ // Build center wrapper
186
+ const centerWrapper = buildJsxElement("div", [cardWrapper], [buildClassNameAttribute("flex justify-center px-4 py-8")]);
187
+ // Build DocumentToolbar
188
+ const documentToolbar = buildSelfClosingJsxElement("DocumentToolbar");
189
+ // Build outer wrapper
190
+ const outerWrapper = buildJsxElement("div", [documentToolbar, centerWrapper], [buildClassNameAttribute("min-h-screen bg-gray-50")]);
191
+ const returnStatement = buildReturn(outerWrapper);
192
192
  const statements = [
193
193
  useSelectedDocumentHook,
194
194
  isEditingUseStateHook,
195
195
  returnIfDocumentIsFalsy,
196
- assignDocumentNameVariable,
197
- onClickEditNameHandler,
198
- onCancelEditNameHandler,
199
- onSubmitSetNameHandler,
200
- returnIfIsEditing,
201
- returnIfNotEditing,
196
+ handleSubmitFunction,
197
+ returnStatement,
202
198
  ].map(printNode);
203
- editDocumentNameComponentSourceFile.addFunction({
204
- name: editDocumentNameComponentName,
205
- isExported: true,
206
- parameters: [],
207
- statements,
208
- docs: [
209
- `Displays the name of the selected ${documentModelDocumentTypeName} document and allows editing it`,
210
- ],
211
- });
212
- formatSourceFileWithPrettier(editDocumentNameComponentSourceFile);
213
- }
214
- export function makeEditorComponent({ project, editorFilePath, editDocumentNameComponentName, }) {
215
- const { alreadyExists, sourceFile: editorSourceFile } = getOrCreateSourceFile(project, editorFilePath);
216
- if (alreadyExists) {
217
- const functionDeclaration = editorSourceFile.getFunction("Editor");
218
- if (functionDeclaration) {
219
- if (!functionDeclaration.isDefaultExport()) {
220
- functionDeclaration.setIsDefaultExport(true);
221
- }
222
- return;
223
- }
224
- }
225
- const printNode = buildNodePrinter(editorSourceFile);
226
- editorSourceFile.addImportDeclaration({
227
- moduleSpecifier: "./components/EditName.js",
228
- namedImports: [editDocumentNameComponentName],
229
- });
230
- const editNameComponent = buildSelfClosingJsxElement(editDocumentNameComponentName);
231
- const editorWrapperDiv = buildJsxElement("div", [editNameComponent], [buildClassNameAttribute("py-4 px-8")]);
232
- const returnStatement = buildReturn(editorWrapperDiv);
233
199
  editorSourceFile.addFunction({
234
200
  name: "Editor",
235
201
  isDefaultExport: true,
236
202
  parameters: [],
237
- statements: [printNode(returnStatement)],
238
- docs: ["Implement your editor behavior here"],
203
+ statements,
239
204
  });
205
+ formatSourceFileWithPrettier(editorSourceFile);
240
206
  }
241
207
  export function makeEditorModuleFile({ project, editorModuleFilePath, editorName, documentModelId, editorId, legacyMultipleDocumentTypes, }) {
242
208
  if (documentModelId && !!legacyMultipleDocumentTypes) {
@@ -1 +1 @@
1
- {"version":3,"file":"document-editor.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,wCAAwC,EACxC,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,YAAY,EACZ,qBAAqB,EACrB,SAAS,EACT,yBAAyB,EACzB,WAAW,EACX,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,EAC1B,kBAAkB,EAClB,SAAS,EACT,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAS5D,MAAM,UAAU,qBAAqB,CAAC,EACpC,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,GACI;IACnB,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,EAAE,6BAA6B,EAAE,GAAG,sBAAsB,CAAC;IACjE,MAAM,eAAe,GAAG,kBAAkB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAClE,MAAM,EAAE,qBAAqB,EAAE,GAAG,eAAe,CAAC;IAElD,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,CAAC;IAC7D,OAAO,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;IAErD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;QACnD,OAAO;QACP,WAAW;QACX,eAAe;QACf,GAAG,sBAAsB;KAC1B,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;IAEzE,6BAA6B,CAAC;QAC5B,OAAO;QACP,GAAG,oBAAoB;QACvB,GAAG,mBAAmB;QACtB,GAAG,eAAe;KACnB,CAAC,CAAC;IAEH,mBAAmB,CAAC;QAClB,OAAO;QACP,GAAG,eAAe;QAClB,GAAG,mBAAmB;KACvB,CAAC,CAAC;IAEH,oBAAoB,CAAC;QACnB,OAAO;QACP,UAAU;QACV,QAAQ;QACR,eAAe;QACf,GAAG,eAAe;KACnB,CAAC,CAAC;IAEH,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC;AAQD,MAAM,UAAU,6BAA6B,CAAC,EAC5C,OAAO,EACP,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,GACC;IAClC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,mCAAmC,EAAE,GACtE,qBAAqB,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAC;IAEpE,IAAI,aAAa;QAAE,OAAO;IAE1B,MAAM,SAAS,GAAG,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG;QACpB,YAAY,EAAE,CAAC,iBAAiB,CAAC;QACjC,eAAe,EAAE,gBAAgB;KAClC,CAAC;IACF,MAAM,yBAAyB,GAAG;QAChC,YAAY,EAAE,CAAC,2BAA2B,CAAC;QAC3C,eAAe,EAAE,uBAAuB;KACzC,CAAC;IACF,MAAM,cAAc,GAAG;QACrB,YAAY,EAAE,CAAC,UAAU,CAAC;QAC1B,eAAe,EAAE,OAAO;KACzB,CAAC;IAEF,MAAM,2BAA2B,GAAG;QAClC,YAAY,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;QACvD,eAAe,EAAE,OAAO;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,aAAa;QACb,yBAAyB;QACzB,cAAc;QACd,2BAA2B;KAC5B,CAAC;IAEF,mCAAmC,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAE9E,MAAM,uBAAuB,GAAG,wCAAwC,CAAC;QACvE,QAAQ,EAAE,2BAA2B;QACrC,oBAAoB,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;KACnE,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,wCAAwC,CAAC;QACrE,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;QAC7B,oBAAoB,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,CAAC;KACxE,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,4BAA4B,CAC1D,oBAAoB,EACpB,SAAS,EAAE,CACZ,CAAC;IACF,MAAM,0BAA0B,GAAG,oBAAoB,CAAC;QACtD,IAAI,EAAE,wBAAwB;QAC9B,oBAAoB,EAAE,yBAAyB,CAC7C,oBAAoB,EACpB,aAAa,CACd;KACF,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;QAClD,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,SAAS,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAC3D,oBAAoB,EAAE,kBAAkB,CAAC;YACvC,cAAc,EAAE;gBACd,iBAAiB,CAAC;oBAChB,YAAY,EAAE,wBAAwB;oBACtC,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC;iBAC9B,CAAC;aACH;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;QACnD,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,SAAS,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC;QAC3D,oBAAoB,EAAE,kBAAkB,CAAC;YACvC,cAAc,EAAE;gBACd,iBAAiB,CAAC;oBAChB,YAAY,EAAE,wBAAwB;oBACtC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;iBAC/B,CAAC;aACH;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;QAClD,IAAI,EAAE,2BAA2B;QACjC,IAAI,EAAE,SAAS,CAAC,kBAAkB,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACxD,oBAAoB,EAAE,kBAAkB,CAAC;YACvC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,OAAO;iBACd;aACF;YACD,cAAc,EAAE;gBACd,qBAAqB,CAAC;oBACpB,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,gBAAgB;oBAC5B,cAAc,EAAE,EAAE;iBACnB,CAAC;gBACF,oBAAoB,CAAC;oBACnB,IAAI,EAAE,MAAM;oBACZ,oBAAoB,EAAE,yBAAyB,CAC7C,OAAO,EACP,eAAe,CAChB;oBACD,UAAU,EAAE,iBAAiB;iBAC9B,CAAC;gBACF,oBAAoB,CAAC;oBACnB,IAAI,EAAE,WAAW;oBACjB,oBAAoB,EAAE,qBAAqB,CAAC;wBAC1C,UAAU,EAAE,MAAM;wBAClB,UAAU,EAAE,oBAAoB;wBAChC,cAAc,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;qBAC7C,CAAC,CAAC,UAAU;oBACb,UAAU,EAAE,kBAAkB;iBAC/B,CAAC;gBACF,oBAAoB,CAAC;oBACnB,IAAI,EAAE,MAAM;oBACZ,oBAAoB,EAAE,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC;iBACtE,CAAC;gBACF,4BAA4B,CAAC,MAAM,CAAC;gBACpC,iBAAiB,CAAC;oBAChB,YAAY,EAAE,oBAAoB;oBAClC,cAAc,EAAE;wBACd,iBAAiB,CAAC;4BAChB,YAAY,EAAE,iBAAiB;4BAC/B,cAAc,EAAE,CAAC,MAAM,CAAC;yBACzB,CAAC,CAAC,UAAU;qBACd;iBACF,CAAC;gBACF,iBAAiB,CAAC;oBAChB,YAAY,EAAE,wBAAwB;oBACtC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;iBAC/B,CAAC;aACH;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,EAAE;QACxD,uBAAuB,CAAC,yCAAyC,CAAC;QAClE,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5C,4BAA4B,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5C,4BAA4B,CAAC,cAAc,EAAE,wBAAwB,CAAC;QACtE,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC;KAC5C,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,eAAe,CAChC,QAAQ,EACR,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EACtB;QACE,uBAAuB,CAAC,uBAAuB,CAAC;QAChD,4BAA4B,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC/C,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,CAClC,QAAQ,EACR,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EACxB;QACE,uBAAuB,CAAC,sBAAsB,CAAC;QAC/C,iBAAiB,CAAC,SAAS,EAAE,uBAAuB,CAAC;KACtD,CACF,CAAC;IAEF,MAAM,8BAA8B,GAAG,eAAe,CACpD,KAAK,EACL,CAAC,UAAU,EAAE,YAAY,CAAC,EAC1B,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,CACxC,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,CAClC,MAAM,EACN,CAAC,aAAa,EAAE,8BAA8B,CAAC,EAC/C;QACE,uBAAuB,CAAC,yCAAyC,CAAC;QAClE,iBAAiB,CAAC,UAAU,EAAE,2BAA2B,CAAC;KAC3D,CACF,CAAC;IAEF,MAAM,iBAAiB,GAAG,6BAA6B,CACrD,qBAAqB,EACrB,YAAY,CACb,CAAC;IAEF,MAAM,yBAAyB,GAAG,kBAAkB,CAClD,wBAAwB,CACzB,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAe,CACtC,IAAI,EACJ,CAAC,yBAAyB,CAAC,EAC3B,CAAC,uBAAuB,CAAC,qCAAqC,CAAC,CAAC,CACjE,CAAC;IAEF,MAAM,iBAAiB,GAAG,eAAe,CACvC,QAAQ,EACR,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,EAC3B;QACE,uBAAuB,CAAC,uBAAuB,CAAC;QAChD,iBAAiB,CAAC,SAAS,EAAE,sBAAsB,CAAC;KACrD,CACF,CAAC;IAEF,MAAM,oBAAoB,GAAG,eAAe,CAC1C,KAAK,EACL,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EACrC,CAAC,uBAAuB,CAAC,mCAAmC,CAAC,CAAC,CAC/D,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAE7D,MAAM,UAAU,GAAG;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,uBAAuB;QACvB,0BAA0B;QAC1B,sBAAsB;QACtB,uBAAuB;QACvB,sBAAsB;QACtB,iBAAiB;QACjB,kBAAkB;KACnB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjB,mCAAmC,CAAC,WAAW,CAAC;QAC9C,IAAI,EAAE,6BAA6B;QACnC,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,EAAE;QACd,UAAU;QACV,IAAI,EAAE;YACJ,qCAAqC,6BAA6B,iCAAiC;SACpG;KACF,CAAC,CAAC;IAEH,4BAA4B,CAAC,mCAAmC,CAAC,CAAC;AACpE,CAAC;AAKD,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,cAAc,EACd,6BAA6B,GACL;IACxB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,qBAAqB,CAC3E,OAAO,EACP,cAAc,CACf,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnE,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC;gBAC3C,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAErD,gBAAgB,CAAC,oBAAoB,CAAC;QACpC,eAAe,EAAE,0BAA0B;QAC3C,YAAY,EAAE,CAAC,6BAA6B,CAAC;KAC9C,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,0BAA0B,CAClD,6BAA6B,CAC9B,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAe,CACtC,KAAK,EACL,CAAC,iBAAiB,CAAC,EACnB,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CACvC,CAAC;IACF,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAEtD,gBAAgB,CAAC,WAAW,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,eAAe,EAAE,IAAI;QACrB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,qCAAqC,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,oBAAoB,CAAC,EACnC,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,eAAe,EACf,QAAQ,EACR,2BAA2B,GACF;IACzB,IAAI,eAAe,IAAI,CAAC,CAAC,2BAA2B,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,UAAU,EAAE,sBAAsB,EAAE,GAAG,qBAAqB,CAClE,OAAO,EACP,oBAAoB,CACrB,CAAC;IAEF,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAE3C,MAAM,oBAAoB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEpD,sBAAsB,CAAC,qBAAqB,CAAC;QAC3C;YACE,YAAY,EAAE,CAAC,cAAc,CAAC;YAC9B,eAAe,EAAE,gBAAgB;YACjC,UAAU,EAAE,IAAI;SACjB;QACD;YACE,YAAY,EAAE,CAAC,MAAM,CAAC;YACtB,eAAe,EAAE,OAAO;SACzB;KACF,CAAC,CAAC;IAEH,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;QAC1E,IAAI,EAAE;YACJ,mCAAmC,eAAe,IAAI,2BAA2B,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB;SAC9G;QACD,eAAe,EAAE,uBAAuB,CAAC,KAAK;QAC9C,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE;YACZ;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,IAAI;aAClB;SACF;KACF,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa,CAAC,qBAAqB,CAAC;QAClC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,mCAAmC;KACjD,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,CAAC;QAClC,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,eAAe;YAC1B,CAAC,CAAC,KAAK,eAAe,IAAI;YAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC;KAChD,CAAC,CAAC;IAEH,aAAa,CAAC,qBAAqB,CAAC;QAClC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,iBAAiB,CACtC,aAAa,EACb,QAAQ,EACR,UAAU,CAAC,uBAAuB,CACnC,CAAC;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,qBAAqB,CAAC;QACnC,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,IAAI,QAAQ,GAAG;KAC7B,CAAC,CAAC;IAEH,cAAc,CAAC,qBAAqB,CAAC;QACnC,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,IAAI,UAAU,GAAG;KAC/B,CAAC,CAAC;IAEH,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"document-editor.js","sourceRoot":"","sources":["../../../../src/ts-morph-utils/file-builders/document-editor.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare function buildType(typeName: string, typeArguments?: string[]): t
45
45
  type BuildParameterArgs = {
46
46
  name: string;
47
47
  typeName?: string;
48
+ typeArguments?: string[];
48
49
  initializer?: ts.Expression;
49
50
  isOptional?: boolean;
50
51
  };
@@ -68,5 +69,7 @@ export declare function buildStringLiteral(value: string): ts.StringLiteral;
68
69
  export declare function buildJsxExpression(value: string | ts.Expression): ts.JsxExpression;
69
70
  export declare function buildPropertyAssignment(name: string, value: unknown): ts.PropertyAssignment;
70
71
  export declare function buildObjectLiteral(inputObject: object): ts.ObjectLiteralExpression;
72
+ export declare function buildTernary(condition: string | ts.Expression, whenTrue: ts.Expression, whenFalse: ts.Expression): ts.ConditionalExpression;
73
+ export declare function buildJsxAttributeWithoutValue(name: string): ts.JsxAttribute;
71
74
  export {};
72
75
  //# sourceMappingURL=syntax-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syntax-builders.d.ts","sourceRoot":"","sources":["../../../src/ts-morph-utils/syntax-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syntax-builders.d.ts","sourceRoot":"","sources":["../../../src/ts-morph-utils/syntax-builders.ts"],"names":[],"mappings":"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"}
@@ -127,11 +127,16 @@ export function buildType(typeName, typeArguments) {
127
127
  export function buildParameters(parameters) {
128
128
  if (!parameters)
129
129
  return [];
130
- return parameters.map((parameter) => ts.factory.createParameterDeclaration(undefined, undefined, parameter.name, parameter.isOptional
131
- ? ts.factory.createToken(SyntaxKind.QuestionToken)
132
- : undefined, parameter.typeName
133
- ? ts.factory.createTypeReferenceNode(parameter.typeName)
134
- : undefined, parameter.initializer));
130
+ return parameters.map((parameter) => {
131
+ let typeNode;
132
+ if (parameter.typeName) {
133
+ const typeArgs = parameter.typeArguments?.map((arg) => ts.factory.createTypeReferenceNode(arg));
134
+ typeNode = ts.factory.createTypeReferenceNode(parameter.typeName, typeArgs);
135
+ }
136
+ return ts.factory.createParameterDeclaration(undefined, undefined, parameter.name, parameter.isOptional
137
+ ? ts.factory.createToken(SyntaxKind.QuestionToken)
138
+ : undefined, typeNode, parameter.initializer);
139
+ });
135
140
  }
136
141
  export function buildArrowFunction({ bodyStatements, modifiers, typeParameters, parameters, type, }) {
137
142
  const bodyBlock = ts.factory.createBlock(bodyStatements, true);
@@ -198,4 +203,13 @@ export function buildObjectLiteral(inputObject) {
198
203
  const objectLiteral = ts.factory.createObjectLiteralExpression(propertyAssignments, true);
199
204
  return objectLiteral;
200
205
  }
206
+ export function buildTernary(condition, whenTrue, whenFalse) {
207
+ const conditionExpr = typeof condition === "string"
208
+ ? ts.factory.createIdentifier(condition)
209
+ : condition;
210
+ return ts.factory.createConditionalExpression(conditionExpr, ts.factory.createToken(SyntaxKind.QuestionToken), whenTrue, ts.factory.createToken(SyntaxKind.ColonToken), whenFalse);
211
+ }
212
+ export function buildJsxAttributeWithoutValue(name) {
213
+ return ts.factory.createJsxAttribute(ts.factory.createIdentifier(name), undefined);
214
+ }
201
215
  //# sourceMappingURL=syntax-builders.js.map