@pixpilot/scaffoldfy-configs 0.15.0 → 0.17.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.
- package/.cache/.eslintcache +1 -1
- package/.cache/.prettiercache +1 -1
- package/.turbo/turbo-format.log +1 -1
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +8 -7
- package/CHANGELOG.md +12 -0
- package/license-file/scaffoldfy.json +3 -3
- package/package.json +4 -4
- package/test/workspace-package-generator.test.ts +336 -0
- package/workspace-package-generator/experiment/scaffoldfy-base.json +13 -0
- package/workspace-package-generator/experiment/scaffoldfy-disabled.json +19 -0
- package/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json +13 -0
- package/workspace-package-generator/experiment/scaffoldfy.json +14 -0
- package/workspace-package-generator/scaffoldfy-base.json +132 -0
- package/workspace-package-generator/scaffoldfy-project-info.json +9 -0
- package/workspace-package-generator/scaffoldfy.json +150 -0
- package/workspace-package-generator/scripts/add-dependencies.cjs +76 -0
- package/workspace-package-generator/scripts/check-tsdown-config.cjs +28 -0
- package/workspace-package-generator/templates/README.md.hbs +3 -0
- package/workspace-package-generator/templates/eslint.config.mjs.hbs +6 -0
- package/workspace-package-generator/templates/package.json.hbs +82 -0
- package/workspace-package-generator/templates/src/index.ts.hbs +1 -0
- package/workspace-package-generator/templates/test/index.test.ts.hbs +9 -0
- package/workspace-package-generator/templates/tsconfig.build.json.hbs +11 -0
- package/workspace-package-generator/templates/tsconfig.json.hbs +4 -0
- package/workspace-package-generator/templates/tsdown.config.ts.hbs +16 -0
- package/workspace-package-generator/templates/vitest.config.ts.hbs +3 -0
package/.cache/.eslintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md":"1","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs":"2","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json":"3","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js":"4","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json":"5","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json":"6","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml":"7","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json":"8","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md":"9","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json":"10","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json":"11","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js":"12","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json":"13","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json":"14","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts":"15","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts":"16","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json":"17","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json":"18","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts":"19"},{"size":2298,"mtime":1761654700817,"results":"20","hashOfConfig":"21"},{"size":260,"mtime":1761654700817,"results":"22","hashOfConfig":"23"},{"size":4993,"mtime":1761654700818,"results":"24","hashOfConfig":"25"},{"size":2047,"mtime":1761654700818,"results":"26","hashOfConfig":"27"},{"size":2045,"mtime":1761654700818,"results":"28","hashOfConfig":"25"},{"size":1149,"mtime":1761654714088,"results":"29","hashOfConfig":"30"},{"size":1139,"mtime":1761654700818,"results":"31","hashOfConfig":"32"},{"size":1307,"mtime":1761654700818,"results":"33","hashOfConfig":"25"},{"size":904,"mtime":1761654700818,"results":"34","hashOfConfig":"21"},{"size":704,"mtime":1761654700818,"results":"35","hashOfConfig":"25"},{"size":785,"mtime":1761654700818,"results":"36","hashOfConfig":"25"},{"size":1962,"mtime":1761654700818,"results":"37","hashOfConfig":"27"},{"size":3515,"mtime":1761654700818,"results":"38","hashOfConfig":"25"},{"size":1297,"mtime":1761654700818,"results":"39","hashOfConfig":"25"},{"size":960,"mtime":1761654700818,"results":"40","hashOfConfig":"41"},{"size":160,"mtime":1761654700818,"results":"42","hashOfConfig":"43"},{"size":964,"mtime":1761654700818,"results":"44","hashOfConfig":"25"},{"size":835,"mtime":1761654700818,"results":"45","hashOfConfig":"25"},{"size":78,"mtime":1761654700818,"results":"46","hashOfConfig":"43"},{"filePath":"47","messages":"48","suppressedMessages":"49","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1lvqh6q",{"filePath":"50","messages":"51","suppressedMessages":"52","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ygaxad",{"filePath":"53","messages":"54","suppressedMessages":"55","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"185cgie",{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"130171j",{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1r8t28z",{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1o67o8g",{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"lsyrod",{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"13wjuik",{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js",[],["104"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js",["105"],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts",[],[],{"ruleId":"106","severity":2,"message":"107","line":65,"column":1,"nodeType":"108","messageId":"109","endLine":65,"endColumn":12,"suggestions":"110","suppressions":"111"},{"ruleId":"112","severity":1,"message":"113","line":40,"column":33,"nodeType":"114","messageId":"115","endLine":40,"endColumn":34},"no-console","Unexpected console statement. Only these console methods are allowed: warn, error.","MemberExpression","limited",["116"],["117"],"no-magic-numbers","No magic number: 2.","Literal","noMagic",{"fix":"118","messageId":"119","data":"120","desc":"121"},{"kind":"122","justification":"123"},{"range":"124","text":"123"},"removeConsole",{"propertyName":"125"},"Remove the console.log().","directive","",[1994,2042],"log"]
|
|
1
|
+
[{"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md":"1","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs":"2","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json":"3","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js":"4","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json":"5","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json":"6","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml":"7","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json":"8","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md":"9","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json":"10","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json":"11","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js":"12","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json":"13","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json":"14","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts":"15","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts":"16","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts":"17","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json":"18","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json":"19","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts":"20","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json":"21","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json":"22","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json":"23","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json":"24","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json":"25","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json":"26","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json":"27","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs":"28","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs":"29","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/templates/test/index.test.ts.hbs":"30"},{"size":2298,"mtime":1771694061779,"results":"31","hashOfConfig":"32"},{"size":260,"mtime":1771694061779,"results":"33","hashOfConfig":"34"},{"size":4994,"mtime":1771694061780,"results":"35","hashOfConfig":"36"},{"size":2047,"mtime":1771694061780,"results":"37","hashOfConfig":"38"},{"size":2045,"mtime":1771694061780,"results":"39","hashOfConfig":"36"},{"size":1149,"mtime":1771694074048,"results":"40","hashOfConfig":"41"},{"size":1139,"mtime":1771694061780,"results":"42","hashOfConfig":"43"},{"size":1307,"mtime":1771694061780,"results":"44","hashOfConfig":"36"},{"size":904,"mtime":1771694061780,"results":"45","hashOfConfig":"32"},{"size":704,"mtime":1771694061780,"results":"46","hashOfConfig":"36"},{"size":785,"mtime":1771694061780,"results":"47","hashOfConfig":"36"},{"size":1962,"mtime":1771694061781,"results":"48","hashOfConfig":"38"},{"size":3515,"mtime":1771694061781,"results":"49","hashOfConfig":"36"},{"size":1297,"mtime":1771694061781,"results":"50","hashOfConfig":"36"},{"size":960,"mtime":1771694061781,"results":"51","hashOfConfig":"52"},{"size":12229,"mtime":1771694061781,"results":"53","hashOfConfig":"52"},{"size":160,"mtime":1771694061781,"results":"54","hashOfConfig":"55"},{"size":964,"mtime":1771694061781,"results":"56","hashOfConfig":"36"},{"size":835,"mtime":1771694061781,"results":"57","hashOfConfig":"36"},{"size":78,"mtime":1771694061781,"results":"58","hashOfConfig":"55"},{"size":361,"mtime":1771694061781,"results":"59","hashOfConfig":"36"},{"size":561,"mtime":1771694061781,"results":"60","hashOfConfig":"36"},{"size":358,"mtime":1771694061781,"results":"61","hashOfConfig":"36"},{"size":432,"mtime":1771694061781,"results":"62","hashOfConfig":"36"},{"size":3251,"mtime":1771694061781,"results":"63","hashOfConfig":"36"},{"size":388,"mtime":1771694061781,"results":"64","hashOfConfig":"36"},{"size":4802,"mtime":1771694061781,"results":"65","hashOfConfig":"36"},{"size":1753,"mtime":1771694061781,"results":"66","hashOfConfig":"67"},{"size":858,"mtime":1771694061781,"results":"68","hashOfConfig":"67"},{"size":181,"mtime":1771694061782,"results":"69","hashOfConfig":"70"},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1o3qqi3",{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1d4mhdo",{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1dc3ock",{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"xjf53n",{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"18wrtc",{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1javrp5",{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"skhll",{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1pyjbrw",{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"s2da7g",{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"exmpos","/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js",[],["161"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js",["162"],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json",[],[],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs",[],["163","164","165","166","167"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs",[],["168","169"],"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/templates/test/index.test.ts.hbs",[],[],{"ruleId":"170","severity":2,"message":"171","line":65,"column":1,"nodeType":"172","messageId":"173","endLine":65,"endColumn":12,"suggestions":"174","suppressions":"175"},{"ruleId":"176","severity":1,"message":"177","line":40,"column":33,"nodeType":"178","messageId":"179","endLine":40,"endColumn":34},{"ruleId":"180","severity":2,"message":"181","line":19,"column":15,"nodeType":"182","messageId":"183","endLine":19,"endColumn":22,"suppressions":"184"},{"ruleId":"180","severity":2,"message":"181","line":28,"column":3,"nodeType":"182","messageId":"183","endLine":28,"endColumn":10,"suppressions":"185"},{"ruleId":"180","severity":2,"message":"181","line":33,"column":3,"nodeType":"182","messageId":"183","endLine":33,"endColumn":10,"suppressions":"186"},{"ruleId":"180","severity":2,"message":"181","line":38,"column":3,"nodeType":"182","messageId":"183","endLine":38,"endColumn":10,"suppressions":"187"},{"ruleId":"180","severity":2,"message":"181","line":48,"column":3,"nodeType":"182","messageId":"183","endLine":48,"endColumn":10,"suppressions":"188"},{"ruleId":"180","severity":2,"message":"181","line":13,"column":13,"nodeType":"182","messageId":"183","endLine":13,"endColumn":20,"suppressions":"189"},{"ruleId":"180","severity":2,"message":"181","line":28,"column":1,"nodeType":"182","messageId":"183","endLine":28,"endColumn":8,"suppressions":"190"},"no-console","Unexpected console statement. Only these console methods are allowed: warn, error.","MemberExpression","limited",["191"],["192"],"no-magic-numbers","No magic number: 2.","Literal","noMagic","node/prefer-global/process","Unexpected use of the global variable 'process'. Use 'require(\"process\")' instead.","Identifier","preferModule",["193"],["194"],["195"],["196"],["197"],["198"],["199"],{"fix":"200","messageId":"201","data":"202","desc":"203"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"kind":"204","justification":"205"},{"range":"206","text":"205"},"removeConsole",{"propertyName":"207"},"Remove the console.log().","directive","",[1994,2042],"log"]
|
package/.cache/.prettiercache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"],{"key":"
|
|
1
|
+
[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"],{"key":"31","value":"32"},{"key":"33","value":"34"},{"key":"35","value":"36"},{"key":"37","value":"38"},{"key":"39","value":"40"},{"key":"41","value":"42"},{"key":"43","value":"44"},{"key":"45","value":"46"},{"key":"47","value":"48"},{"key":"49","value":"50"},{"key":"51","value":"52"},{"key":"53","value":"54"},{"key":"55","value":"56"},{"key":"57","value":"58"},{"key":"59","value":"60"},{"key":"61","value":"62"},{"key":"63","value":"64"},{"key":"65","value":"66"},{"key":"67","value":"68"},{"key":"69","value":"70"},{"key":"71","value":"72"},{"key":"73","value":"74"},{"key":"75","value":"76"},{"key":"77","value":"78"},{"key":"79","value":"80"},{"key":"81","value":"82"},{"key":"83","value":"84"},{"key":"85","value":"86"},{"key":"87","value":"88"},{"key":"89","value":"90"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/license-file/scaffoldfy.json",{"size":4994,"mtime":1771694061780,"hash":"91","data":"92"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/copilot-instructions.md",{"size":904,"mtime":1771694061780,"hash":"93","data":"94"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/package.json",{"size":1149,"mtime":1771694074048,"hash":"95","data":"96"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/security-policy/scaffoldfy.json",{"size":1297,"mtime":1771694061781,"hash":"97","data":"98"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/add-dependencies.cjs",{"size":1753,"mtime":1771694061781,"hash":"99","data":"100"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/workspace-package-generator.test.ts",{"size":12229,"mtime":1771694061781,"hash":"101","data":"102"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/scaffoldfy.json",{"size":2045,"mtime":1771694061780,"hash":"103","data":"104"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/tsdown.config.ts",{"size":160,"mtime":1771694061781,"hash":"105","data":"106"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-copilot-instructions/scaffoldfy.json",{"size":704,"mtime":1771694061780,"hash":"107","data":"108"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-info/scaffoldfy.json",{"size":785,"mtime":1771694061780,"hash":"109","data":"110"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/turbo-workspace-package-generator/scaffoldfy.json",{"size":964,"mtime":1771694061781,"hash":"111","data":"112"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/vitest.config.ts",{"size":78,"mtime":1771694061781,"hash":"113","data":"114"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/monorepo-generate-packages-section/generate-packages-section.js",{"size":2047,"mtime":1771694061780,"hash":"115","data":"116"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-extend-with-disables.json",{"size":358,"mtime":1771694061781,"hash":"117","data":"118"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy.json",{"size":432,"mtime":1771694061781,"hash":"119","data":"120"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/eslint.config.mjs",{"size":260,"mtime":1771694061779,"hash":"121","data":"122"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/release.yml",{"size":1139,"mtime":1771694061780,"hash":"123","data":"124"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy.json",{"size":4802,"mtime":1771694061781,"hash":"125","data":"126"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/update-root-package-json/scaffoldfy.json",{"size":835,"mtime":1771694061781,"hash":"127","data":"128"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-disabled.json",{"size":561,"mtime":1771694061781,"hash":"129","data":"130"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scripts/check-tsdown-config.cjs",{"size":858,"mtime":1771694061781,"hash":"131","data":"132"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/detect-git-hub-org.js",{"size":1962,"mtime":1771694061781,"hash":"133","data":"134"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/project-info/scaffoldfy.json",{"size":3515,"mtime":1771694061781,"hash":"135","data":"136"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/test/validate-schema.test.ts",{"size":960,"mtime":1771694061781,"hash":"137","data":"138"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/experiment/scaffoldfy-base.json",{"size":361,"mtime":1771694061781,"hash":"139","data":"140"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-base.json",{"size":3251,"mtime":1771694061781,"hash":"141","data":"142"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/pixpilot-changesets-release/scaffoldfy.json",{"size":1307,"mtime":1771694061780,"hash":"143","data":"144"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/README.md",{"size":2298,"mtime":1771694061779,"hash":"145","data":"146"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/workspace-package-generator/scaffoldfy-project-info.json",{"size":388,"mtime":1771694061781,"hash":"147","data":"148"},"/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs/LICENSE",{"size":1065,"mtime":1771694061779,"hash":"149"},"6d73ab423c42975f3098a5faf5887a1b",{"hashOfOptions":"150"},"129fc064577f2fe749ed401b01155b0c",{"hashOfOptions":"151"},"6c55cdf14716b5a15bfd328b3817a759",{"hashOfOptions":"152"},"baadfd22a57a81937d70e0dec8b37aac",{"hashOfOptions":"153"},"cf8e67ad653b3e260e8934c29acd3b96",{"hashOfOptions":"154"},"e464727e71590fb03cd663baf1f341ae",{"hashOfOptions":"155"},"f54318350f291f72ab00fda487548c18",{"hashOfOptions":"156"},"513debbbe37a0908feda9f0bcc5fcc4b",{"hashOfOptions":"157"},"20171b8fd858f9b268e89c1aa6484a92",{"hashOfOptions":"158"},"2be50f22a6d61efa5175d1c8162901b6",{"hashOfOptions":"159"},"d16152bdbad281c6f548789be4bfd8dd",{"hashOfOptions":"160"},"fb12a6e35e71f2db94bbf66fedb48a90",{"hashOfOptions":"161"},"c4b2e848701a00ec46150ef82d25fe09",{"hashOfOptions":"162"},"2c919b3cf9d5c7564cd34ea5ef2f43ee",{"hashOfOptions":"163"},"e651245e6bffc9e7dbc5af2429e52131",{"hashOfOptions":"164"},"f9ce2b24b6b27b0bd159849f75d8bfd0",{"hashOfOptions":"165"},"6d888308c5d2927c9472c902b56b2973",{"hashOfOptions":"166"},"514dc329df8d9d1585e6f7bfe2097f9b",{"hashOfOptions":"167"},"3f83e52f12983c940261936f58d44cd1",{"hashOfOptions":"168"},"19c08961ecbe2ad976ba5da2d8277e5a",{"hashOfOptions":"169"},"37869e9ac49f0c14c1996d62cf69bec8",{"hashOfOptions":"170"},"0f3cdcc0b5df24febf8e9a0cad1950f6",{"hashOfOptions":"171"},"7515222c611237db89fcbcfffa9546a8",{"hashOfOptions":"172"},"a0fc37307c5b3e7ef6c635ee81d4b22a",{"hashOfOptions":"173"},"c20d4a6d559453b60294af84b449ab57",{"hashOfOptions":"174"},"886808504694ef21932e957e8f1ead6c",{"hashOfOptions":"175"},"552893570f59b876cc311161764b971b",{"hashOfOptions":"176"},"9ffdd9ced1b95e3c890a9ac66d04b26d",{"hashOfOptions":"177"},"6eef894b2f07712c525ba75684764564",{"hashOfOptions":"178"},"9937b6ab6bff563917af91b674d32d26","1228183422","703189870","1914606772","3423351643","2891414639","2296905056","1043358625","1175802438","3196870400","1543004120","312527989","4152018146","1656442100","3753816910","3570345646","2275067953","3507797927","3913745798","2114078672","1809810027","1097452595","1135076193","2874103108","1118698428","1933678496","3310438088","701893163","1154011297","4047521945"]
|
package/.turbo/turbo-format.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @pixpilot/scaffoldfy-configs@0.
|
|
2
|
+
> @pixpilot/scaffoldfy-configs@0.17.0 format /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
|
|
3
3
|
> prettier --check . --ignore-path ../../.gitignore --ignore-path ../../.prettierignore --write --cache --cache-location .cache/.prettiercache
|
|
4
4
|
|
|
5
5
|
Checking formatting...
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @pixpilot/scaffoldfy-configs@0.
|
|
2
|
+
> @pixpilot/scaffoldfy-configs@0.17.0 lint /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
|
|
3
3
|
> eslint --cache --cache-location .cache/.eslintcache
|
|
4
4
|
|
|
5
5
|
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
> @pixpilot/scaffoldfy-configs@0.
|
|
2
|
+
> @pixpilot/scaffoldfy-configs@0.17.0 test /home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs
|
|
3
3
|
> vitest --run --passWithNoTests
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/home/runner/work/scaffoldfy/scaffoldfy/packages/scaffoldfy-configs[39m
|
|
7
7
|
|
|
8
|
-
[32m✓[39m test/validate-schema.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m
|
|
9
|
-
[33m[2m✓[22m[39m validate-schema[2m > [22mshould validate all scaffoldfy.json files in scaffoldfy-configs [33m
|
|
8
|
+
[32m✓[39m test/validate-schema.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 1051[2mms[22m[39m
|
|
9
|
+
[33m[2m✓[22m[39m validate-schema[2m > [22mshould validate all scaffoldfy.json files in scaffoldfy-configs [33m 1047[2mms[22m[39m
|
|
10
|
+
[32m✓[39m test/workspace-package-generator.test.ts [2m([22m[2m22 tests[22m[2m)[22m[33m 1440[2mms[22m[39m
|
|
10
11
|
|
|
11
|
-
[2m Test Files [22m [1m[
|
|
12
|
-
[2m Tests [22m [1m[
|
|
13
|
-
[2m Start at [22m
|
|
14
|
-
[2m Duration [22m
|
|
12
|
+
[2m Test Files [22m [1m[32m2 passed[39m[22m[90m (2)[39m
|
|
13
|
+
[2m Tests [22m [1m[32m24 passed[39m[22m[90m (24)[39m
|
|
14
|
+
[2m Start at [22m 17:15:20
|
|
15
|
+
[2m Duration [22m 3.09s[2m (transform 842ms, setup 0ms, collect 2.47s, tests 2.49s, environment 1ms, prepare 351ms)[22m
|
|
15
16
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @pixpilot/scaffoldfy-configs
|
|
2
2
|
|
|
3
|
+
## 0.17.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- add "No License" option and update default selection
|
|
8
|
+
|
|
9
|
+
## 0.16.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- add initial implementation for workspace package generator
|
|
14
|
+
|
|
3
15
|
## 0.15.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"type": "select",
|
|
11
11
|
"message": "Select a license for your project",
|
|
12
12
|
"choices": [
|
|
13
|
+
{ "name": "No License", "value": "NONE" },
|
|
13
14
|
{ "name": "MIT", "value": "MIT" },
|
|
14
15
|
{ "name": "Apache 2.0", "value": "Apache-2.0" },
|
|
15
16
|
{ "name": "GPL v3", "value": "GPL-3.0" },
|
|
@@ -19,10 +20,9 @@
|
|
|
19
20
|
{ "name": "ISC", "value": "ISC" },
|
|
20
21
|
{ "name": "MPL 2.0", "value": "MPL-2.0" },
|
|
21
22
|
{ "name": "AGPL v3", "value": "AGPL-3.0" },
|
|
22
|
-
{ "name": "Unlicense", "value": "Unlicense" }
|
|
23
|
-
{ "name": "No License", "value": "NONE" }
|
|
23
|
+
{ "name": "Unlicense", "value": "Unlicense" }
|
|
24
24
|
],
|
|
25
|
-
"default": "
|
|
25
|
+
"default": "NONE"
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
28
|
"tasks": [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixpilot/scaffoldfy-configs",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.17.0",
|
|
5
5
|
"author": "PixPilot <m.doaie@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^22.18.11",
|
|
25
25
|
"eslint": "^9.38.0",
|
|
26
|
+
"@internal/eslint-config": "0.3.0",
|
|
26
27
|
"@internal/prettier-config": "0.0.1",
|
|
27
28
|
"@internal/tsdown-config": "0.1.0",
|
|
28
|
-
"@
|
|
29
|
-
"@internal/vitest-config": "0.1.0"
|
|
30
|
-
"@pixpilot/scaffoldfy": "0.44.0"
|
|
29
|
+
"@pixpilot/scaffoldfy": "0.45.0",
|
|
30
|
+
"@internal/vitest-config": "0.1.0"
|
|
31
31
|
},
|
|
32
32
|
"prettier": "@internal/prettier-config",
|
|
33
33
|
"publishConfig": {
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { validateScaffoldfyJsonFile } from '@pixpilot/scaffoldfy';
|
|
6
|
+
import { describe, expect, it } from 'vitest';
|
|
7
|
+
|
|
8
|
+
const CONFIG_DIR = path.join(__dirname, '..', 'workspace-package-generator');
|
|
9
|
+
const TEMPLATES_DIR = path.join(CONFIG_DIR, 'templates');
|
|
10
|
+
const SCRIPTS_DIR = path.join(CONFIG_DIR, 'scripts');
|
|
11
|
+
|
|
12
|
+
/** Directory where scaffoldfy is installed (contains its own handlebars dep). */
|
|
13
|
+
const SCAFFOLDFY_DIR = path.join(
|
|
14
|
+
__dirname,
|
|
15
|
+
'..',
|
|
16
|
+
'node_modules',
|
|
17
|
+
'@pixpilot',
|
|
18
|
+
'scaffoldfy',
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
/* -------------------------------------------------------------------------- */
|
|
22
|
+
/* Helpers */
|
|
23
|
+
/* -------------------------------------------------------------------------- */
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Render a Handlebars template file by writing a small CJS runner script to
|
|
27
|
+
* a temp file and executing it inside the scaffoldfy package directory so that
|
|
28
|
+
* `require('handlebars')` resolves correctly.
|
|
29
|
+
*/
|
|
30
|
+
function renderHbs(templatePath: string, context: Record<string, unknown>): string {
|
|
31
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'scaffoldfy-hbs-'));
|
|
32
|
+
const runnerPath = path.join(tmpDir, 'run.cjs');
|
|
33
|
+
/*
|
|
34
|
+
* The runner is a plain CJS file — it resolves Handlebars relative to
|
|
35
|
+
* SCAFFOLDFY_DIR via require.resolve, then renders the template.
|
|
36
|
+
*/
|
|
37
|
+
const hbsPath = require.resolve('handlebars', { paths: [SCAFFOLDFY_DIR] });
|
|
38
|
+
const runnerScript = [
|
|
39
|
+
`'use strict';`,
|
|
40
|
+
`const Handlebars = require(${JSON.stringify(hbsPath)});`,
|
|
41
|
+
`const templateContent = require('node:fs').readFileSync(${JSON.stringify(templatePath)}, 'utf8');`,
|
|
42
|
+
`const compiled = Handlebars.compile(templateContent);`,
|
|
43
|
+
`process.stdout.write(compiled(${JSON.stringify(context)}));`,
|
|
44
|
+
].join('\n');
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
fs.writeFileSync(runnerPath, runnerScript);
|
|
48
|
+
return execSync(`node "${runnerPath}"`, { encoding: 'utf8' });
|
|
49
|
+
} finally {
|
|
50
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Run the add-dependencies.cjs script in a temp directory and return
|
|
56
|
+
* the resulting package.json as an object.
|
|
57
|
+
*/
|
|
58
|
+
function runAddDeps(
|
|
59
|
+
initialPkg: Record<string, unknown>,
|
|
60
|
+
deps: string,
|
|
61
|
+
): Record<string, unknown> {
|
|
62
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'scaffoldfy-test-'));
|
|
63
|
+
const pkgFile = path.join(tmpDir, 'package.json');
|
|
64
|
+
try {
|
|
65
|
+
fs.writeFileSync(pkgFile, JSON.stringify(initialPkg, null, 2));
|
|
66
|
+
execSync(
|
|
67
|
+
`node ${JSON.stringify(path.join(SCRIPTS_DIR, 'add-dependencies.cjs'))} --file=${JSON.stringify(pkgFile)} --deps=${JSON.stringify(deps)}`,
|
|
68
|
+
{ encoding: 'utf8' },
|
|
69
|
+
);
|
|
70
|
+
return JSON.parse(fs.readFileSync(pkgFile, 'utf8')) as Record<string, unknown>;
|
|
71
|
+
} finally {
|
|
72
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* -------------------------------------------------------------------------- */
|
|
77
|
+
/* Schema validation */
|
|
78
|
+
/* -------------------------------------------------------------------------- */
|
|
79
|
+
|
|
80
|
+
describe('workspace-package-generator – schema', () => {
|
|
81
|
+
it('should have a valid scaffoldfy.json', () => {
|
|
82
|
+
const filePath = path.join(CONFIG_DIR, 'scaffoldfy.json');
|
|
83
|
+
expect(fs.existsSync(filePath)).toBe(true);
|
|
84
|
+
|
|
85
|
+
const result = validateScaffoldfyJsonFile(filePath);
|
|
86
|
+
if (!result.valid) {
|
|
87
|
+
console.error('Validation errors:', result.errors);
|
|
88
|
+
}
|
|
89
|
+
expect(result.valid).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
/* -------------------------------------------------------------------------- */
|
|
94
|
+
/* Template file existence */
|
|
95
|
+
/* -------------------------------------------------------------------------- */
|
|
96
|
+
|
|
97
|
+
describe('workspace-package-generator – template files', () => {
|
|
98
|
+
const expectedTemplates = [
|
|
99
|
+
'eslint.config.mjs.hbs',
|
|
100
|
+
'package.json.hbs',
|
|
101
|
+
'README.md.hbs',
|
|
102
|
+
'tsconfig.json.hbs',
|
|
103
|
+
'tsconfig.build.json.hbs',
|
|
104
|
+
'tsdown.config.ts.hbs',
|
|
105
|
+
'vitest.config.ts.hbs',
|
|
106
|
+
path.join('src', 'index.ts.hbs'),
|
|
107
|
+
path.join('test', 'index.test.ts.hbs'),
|
|
108
|
+
// license templates removed from this config; no expectations here
|
|
109
|
+
];
|
|
110
|
+
|
|
111
|
+
for (const tpl of expectedTemplates) {
|
|
112
|
+
it(`should have template: ${tpl}`, () => {
|
|
113
|
+
expect(fs.existsSync(path.join(TEMPLATES_DIR, tpl))).toBe(true);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
/* -------------------------------------------------------------------------- */
|
|
119
|
+
/* Helper scripts */
|
|
120
|
+
/* -------------------------------------------------------------------------- */
|
|
121
|
+
|
|
122
|
+
describe('workspace-package-generator – add-dependencies script', () => {
|
|
123
|
+
it('should add dependencies to package.json', () => {
|
|
124
|
+
const initial = { name: 'test-pkg', dependencies: {} };
|
|
125
|
+
const result = runAddDeps(initial, 'lodash axios');
|
|
126
|
+
|
|
127
|
+
expect(result.dependencies).toMatchObject({ lodash: '*', axios: '*' });
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it('should sort dependencies alphabetically', () => {
|
|
131
|
+
const initial = { name: 'test-pkg', dependencies: {} };
|
|
132
|
+
const result = runAddDeps(initial, 'zod axios chalk');
|
|
133
|
+
const keys = Object.keys(result.dependencies as Record<string, string>);
|
|
134
|
+
|
|
135
|
+
expect(keys).toEqual([...keys].sort());
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('should sort existing devDependencies alphabetically', () => {
|
|
139
|
+
const initial = {
|
|
140
|
+
name: 'test-pkg',
|
|
141
|
+
dependencies: {},
|
|
142
|
+
devDependencies: { zod: '^3.0.0', axios: '^1.0.0', chalk: '^5.0.0' },
|
|
143
|
+
};
|
|
144
|
+
const result = runAddDeps(initial, 'vitest');
|
|
145
|
+
const keys = Object.keys(result.devDependencies as Record<string, string>);
|
|
146
|
+
|
|
147
|
+
expect(keys).toEqual([...keys].sort());
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it('should exit gracefully when no deps are provided', () => {
|
|
151
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'scaffoldfy-test-'));
|
|
152
|
+
const pkgFile = path.join(tmpDir, 'package.json');
|
|
153
|
+
try {
|
|
154
|
+
const initial = { name: 'test-pkg' };
|
|
155
|
+
fs.writeFileSync(pkgFile, JSON.stringify(initial, null, 2));
|
|
156
|
+
|
|
157
|
+
expect(() =>
|
|
158
|
+
execSync(
|
|
159
|
+
`node "${path.join(SCRIPTS_DIR, 'add-dependencies.cjs')}" --file="${pkgFile}" --deps=""`,
|
|
160
|
+
{ encoding: 'utf8' },
|
|
161
|
+
),
|
|
162
|
+
).not.toThrow();
|
|
163
|
+
|
|
164
|
+
/* File should be unchanged */
|
|
165
|
+
expect(JSON.parse(fs.readFileSync(pkgFile, 'utf8'))).toMatchObject(initial);
|
|
166
|
+
} finally {
|
|
167
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
/* -------------------------------------------------------------------------- */
|
|
173
|
+
/* Template rendering – key scenarios */
|
|
174
|
+
/* -------------------------------------------------------------------------- */
|
|
175
|
+
|
|
176
|
+
describe('workspace-package-generator – package.json.hbs rendering', () => {
|
|
177
|
+
const tplPath = path.join(TEMPLATES_DIR, 'package.json.hbs');
|
|
178
|
+
|
|
179
|
+
/** Internal package (non-npm) */
|
|
180
|
+
it('should render a valid JSON for an internal package', () => {
|
|
181
|
+
const ctx = {
|
|
182
|
+
packageBaseName: 'my-package',
|
|
183
|
+
isNpmPackage: false,
|
|
184
|
+
workspace: 'packages',
|
|
185
|
+
repoDirectory: 'packages/my-package',
|
|
186
|
+
relativeRootPath: '../../',
|
|
187
|
+
author: 'Test Author',
|
|
188
|
+
repoUrl: 'https://github.com/test/monorepo.git',
|
|
189
|
+
orgName: 'myorg',
|
|
190
|
+
isBundlerTsc: false,
|
|
191
|
+
isBundlerTsdown: false,
|
|
192
|
+
hasTsdownConfig: false,
|
|
193
|
+
tsdownConfigPackage: '@pixpilot/tsdown-config',
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
197
|
+
const pkg = JSON.parse(rendered);
|
|
198
|
+
|
|
199
|
+
expect(pkg.name).toBe('@internal/my-package');
|
|
200
|
+
expect(pkg.private).toBe(true);
|
|
201
|
+
expect(pkg.publishConfig).toBeUndefined();
|
|
202
|
+
expect(pkg.files).toBeUndefined();
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
/** Public npm package with tsdown bundler */
|
|
206
|
+
it('should render valid JSON for a public npm package (tsdown)', () => {
|
|
207
|
+
const ctx = {
|
|
208
|
+
packageBaseName: 'my-package',
|
|
209
|
+
isNpmPackage: true,
|
|
210
|
+
isPublicPackage: true,
|
|
211
|
+
bundler: 'tsdown',
|
|
212
|
+
isBundlerTsc: false,
|
|
213
|
+
isBundlerTsdown: true,
|
|
214
|
+
hasTsdownConfig: false,
|
|
215
|
+
tsdownConfigPackage: '@pixpilot/tsdown-config',
|
|
216
|
+
workspace: 'packages',
|
|
217
|
+
repoDirectory: 'packages/my-package',
|
|
218
|
+
relativeRootPath: '../../',
|
|
219
|
+
author: 'Test Author',
|
|
220
|
+
repoUrl: 'https://github.com/test/monorepo.git',
|
|
221
|
+
orgName: 'myorg',
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
225
|
+
const pkg = JSON.parse(rendered);
|
|
226
|
+
|
|
227
|
+
expect(pkg.name).toBe('@myorg/my-package');
|
|
228
|
+
expect(pkg.private).toBeUndefined();
|
|
229
|
+
expect(pkg.publishConfig?.access).toBe('public');
|
|
230
|
+
expect(pkg.files).toContain('dist');
|
|
231
|
+
expect(pkg.scripts?.build).toBe('tsdown');
|
|
232
|
+
expect(pkg.devDependencies?.['@pixpilot/tsdown-config']).toBeDefined();
|
|
233
|
+
expect(pkg.devDependencies?.tsdown).toBe('catalog:dev');
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
/** Private npm package with tsc bundler */
|
|
237
|
+
it('should render valid JSON for a private npm package (tsc)', () => {
|
|
238
|
+
const ctx = {
|
|
239
|
+
packageBaseName: 'my-package',
|
|
240
|
+
isNpmPackage: true,
|
|
241
|
+
isPublicPackage: false,
|
|
242
|
+
bundler: 'tsc',
|
|
243
|
+
isBundlerTsc: true,
|
|
244
|
+
isBundlerTsdown: false,
|
|
245
|
+
hasTsdownConfig: false,
|
|
246
|
+
tsdownConfigPackage: '@pixpilot/tsdown-config',
|
|
247
|
+
workspace: 'packages',
|
|
248
|
+
repoDirectory: 'packages/my-package',
|
|
249
|
+
relativeRootPath: '../../',
|
|
250
|
+
author: 'Test Author',
|
|
251
|
+
repoUrl: 'https://github.com/test/monorepo.git',
|
|
252
|
+
orgName: '',
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
256
|
+
const pkg = JSON.parse(rendered);
|
|
257
|
+
|
|
258
|
+
expect(pkg.name).toBe('my-package');
|
|
259
|
+
expect(pkg.publishConfig?.access).toBe('restricted');
|
|
260
|
+
expect(pkg.scripts?.build).toContain('tsc');
|
|
261
|
+
expect(pkg.scripts?.['build:watch']).toContain('tsc');
|
|
262
|
+
expect(pkg.devDependencies?.tsdown).toBeUndefined();
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
/** npm package with internal tsdown config */
|
|
266
|
+
it('should use @internal/tsdown-config when hasTsdownConfig is true', () => {
|
|
267
|
+
const ctx = {
|
|
268
|
+
packageBaseName: 'my-package',
|
|
269
|
+
isNpmPackage: true,
|
|
270
|
+
isPublicPackage: true,
|
|
271
|
+
bundler: 'tsdown',
|
|
272
|
+
isBundlerTsc: false,
|
|
273
|
+
isBundlerTsdown: true,
|
|
274
|
+
hasTsdownConfig: true,
|
|
275
|
+
tsdownConfigPackage: '@internal/tsdown-config',
|
|
276
|
+
workspace: 'packages',
|
|
277
|
+
repoDirectory: 'packages/my-package',
|
|
278
|
+
relativeRootPath: '../../',
|
|
279
|
+
author: 'Test Author',
|
|
280
|
+
repoUrl: '',
|
|
281
|
+
orgName: 'myorg',
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
285
|
+
const pkg = JSON.parse(rendered);
|
|
286
|
+
|
|
287
|
+
expect(pkg.devDependencies?.['@internal/tsdown-config']).toBe('workspace:*');
|
|
288
|
+
expect(pkg.devDependencies?.['@pixpilot/tsdown-config']).toBeUndefined();
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
describe('workspace-package-generator – tsdown.config.ts.hbs rendering', () => {
|
|
293
|
+
const tplPath = path.join(TEMPLATES_DIR, 'tsdown.config.ts.hbs');
|
|
294
|
+
|
|
295
|
+
it('should render without bundle size when bundleSizeLimit is falsy', () => {
|
|
296
|
+
const ctx = {
|
|
297
|
+
tsdownConfigPackage: '@pixpilot/tsdown-config',
|
|
298
|
+
bundleSizeLimit: 0,
|
|
299
|
+
};
|
|
300
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
301
|
+
|
|
302
|
+
expect(rendered).toContain("import { defineConfig } from '@pixpilot/tsdown-config'");
|
|
303
|
+
expect(rendered).not.toContain('MAX_BUNDLE_SIZE_KB');
|
|
304
|
+
expect(rendered).toContain("entry: 'src/index.ts'");
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
it('should render bundle size limit when bundleSizeLimit is set', () => {
|
|
308
|
+
const ctx = {
|
|
309
|
+
tsdownConfigPackage: '@pixpilot/tsdown-config',
|
|
310
|
+
bundleSizeLimit: 50,
|
|
311
|
+
};
|
|
312
|
+
const rendered = renderHbs(tplPath, ctx);
|
|
313
|
+
|
|
314
|
+
expect(rendered).toContain('MAX_BUNDLE_SIZE_KB = 50');
|
|
315
|
+
expect(rendered).toContain('bundleSize: MAX_BUNDLE_SIZE_KB * KB');
|
|
316
|
+
});
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
describe('workspace-package-generator – src/index.ts.hbs rendering', () => {
|
|
320
|
+
it('should render the package name into the exported constant', () => {
|
|
321
|
+
const tplPath = path.join(TEMPLATES_DIR, 'src', 'index.ts.hbs');
|
|
322
|
+
const rendered = renderHbs(tplPath, { packageBaseName: 'cool-lib' });
|
|
323
|
+
|
|
324
|
+
expect(rendered).toContain("export const name = 'cool-lib'");
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
describe('workspace-package-generator – test/index.test.ts.hbs rendering', () => {
|
|
329
|
+
it('should render a valid vitest test file', () => {
|
|
330
|
+
const tplPath = path.join(TEMPLATES_DIR, 'test', 'index.test.ts.hbs');
|
|
331
|
+
const rendered = renderHbs(tplPath, {});
|
|
332
|
+
|
|
333
|
+
expect(rendered).toContain("from 'vitest'");
|
|
334
|
+
expect(rendered).toContain("from '../src'");
|
|
335
|
+
});
|
|
336
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
"prompts": [
|
|
6
|
+
{
|
|
7
|
+
"id": "isEnabled",
|
|
8
|
+
"type": "confirm",
|
|
9
|
+
"message": "Should Disable Next Prompt?",
|
|
10
|
+
"default": false
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
|
|
6
|
+
"extends": [
|
|
7
|
+
"./scaffoldfy-extend-with-disables.json",
|
|
8
|
+
"https://unpkg.com/@pixpilot/scaffoldfy-configs@latest/license-file/scaffoldfy.json"
|
|
9
|
+
],
|
|
10
|
+
"enabled": { "type": "condition", "value": "isEnabled == true" },
|
|
11
|
+
|
|
12
|
+
"prompts": [
|
|
13
|
+
{
|
|
14
|
+
"id": "disabledPrompt",
|
|
15
|
+
"type": "input",
|
|
16
|
+
"message": "This prompt is disabled"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
|
|
6
|
+
"prompts": [
|
|
7
|
+
{
|
|
8
|
+
"id": "filesystemDisabledPrompt",
|
|
9
|
+
"type": "input",
|
|
10
|
+
"message": "This Filesystem prompt is disabled"
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
"extends": ["./scaffoldfy-base.json", "./scaffoldfy-disabled.json"],
|
|
6
|
+
"prompts": [
|
|
7
|
+
{
|
|
8
|
+
"id": "finalPrompt",
|
|
9
|
+
"type": "confirm",
|
|
10
|
+
"message": "Is this the final prompt?",
|
|
11
|
+
"default": false
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator-base",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
|
|
6
|
+
"variables": [
|
|
7
|
+
{
|
|
8
|
+
"id": "currentYear",
|
|
9
|
+
"value": {
|
|
10
|
+
"type": "exec",
|
|
11
|
+
"value": "node -e \"process.stdout.write(String(new Date().getFullYear()))\""
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "hasTsdownConfig",
|
|
16
|
+
"required": false,
|
|
17
|
+
"value": {
|
|
18
|
+
"type": "exec-file",
|
|
19
|
+
"file": "./scripts/check-tsdown-config.cjs",
|
|
20
|
+
"runtime": "node"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "relativeRootPath",
|
|
25
|
+
"value": "../../"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "bundler",
|
|
29
|
+
"value": {
|
|
30
|
+
"type": "conditional",
|
|
31
|
+
"condition": "hasTsdownConfig === true",
|
|
32
|
+
"ifTrue": "tsdown",
|
|
33
|
+
"ifFalse": "tsc"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "isBundlerTsc",
|
|
38
|
+
"value": {
|
|
39
|
+
"type": "conditional",
|
|
40
|
+
"condition": "bundler === 'tsc'",
|
|
41
|
+
"ifTrue": true,
|
|
42
|
+
"ifFalse": false
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "isBundlerTsdown",
|
|
47
|
+
"value": {
|
|
48
|
+
"type": "conditional",
|
|
49
|
+
"condition": "bundler === 'tsdown'",
|
|
50
|
+
"ifTrue": true,
|
|
51
|
+
"ifFalse": false
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "tsdownConfigPackage",
|
|
56
|
+
"value": {
|
|
57
|
+
"type": "conditional",
|
|
58
|
+
"condition": "hasTsdownConfig === true",
|
|
59
|
+
"ifTrue": "@internal/tsdown-config",
|
|
60
|
+
"ifFalse": "@pixpilot/tsdown-config"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
|
|
65
|
+
"prompts": [
|
|
66
|
+
{
|
|
67
|
+
"id": "workspace",
|
|
68
|
+
"type": "select",
|
|
69
|
+
"message": "Select target workspace",
|
|
70
|
+
"choices": [
|
|
71
|
+
{ "name": "packages", "value": "packages" },
|
|
72
|
+
{ "name": "apps", "value": "apps" },
|
|
73
|
+
{ "name": "tooling", "value": "tooling" },
|
|
74
|
+
{ "name": "api", "value": "api" }
|
|
75
|
+
],
|
|
76
|
+
"default": "packages"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "packageBaseName",
|
|
80
|
+
"type": "input",
|
|
81
|
+
"message": "Enter the package name (e.g. my-package)",
|
|
82
|
+
"required": true,
|
|
83
|
+
"transformers": ["kebabcase"]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "deps",
|
|
87
|
+
"type": "input",
|
|
88
|
+
"message": "Enter list of dependencies (space separated, leave empty to skip)",
|
|
89
|
+
"required": false
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "isNpmPackage",
|
|
93
|
+
"type": "confirm",
|
|
94
|
+
"message": "Is this an npm package?",
|
|
95
|
+
"default": false
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "isPublicPackage",
|
|
99
|
+
"type": "confirm",
|
|
100
|
+
"message": "Is this a public package?",
|
|
101
|
+
"default": false,
|
|
102
|
+
"enabled": {
|
|
103
|
+
"type": "condition",
|
|
104
|
+
"value": "isNpmPackage === true"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "bundler",
|
|
109
|
+
"type": "select",
|
|
110
|
+
"message": "Select a bundler for this package",
|
|
111
|
+
"choices": [
|
|
112
|
+
{ "name": "TypeScript Compiler (tsc)", "value": "tsc" },
|
|
113
|
+
{ "name": "tsdown", "value": "tsdown" }
|
|
114
|
+
],
|
|
115
|
+
"default": "tsc",
|
|
116
|
+
"enabled": {
|
|
117
|
+
"type": "condition",
|
|
118
|
+
"value": "isNpmPackage === true"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "bundleSizeLimit",
|
|
123
|
+
"type": "number",
|
|
124
|
+
"message": "Enter bundle size limit in KB (0 for no limit)",
|
|
125
|
+
"default": 0,
|
|
126
|
+
"enabled": {
|
|
127
|
+
"type": "condition",
|
|
128
|
+
"value": "bundler === 'tsdown' && isPublicPackage === true"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
"extends": [
|
|
6
|
+
"https://unpkg.com/@pixpilot/scaffoldfy-configs@latest/project-info/scaffoldfy.json"
|
|
7
|
+
],
|
|
8
|
+
"enabled": { "type": "condition", "value": "isNpmPackage == true" }
|
|
9
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../node_modules/@pixpilot/scaffoldfy/schema/scaffoldfy.schema.json",
|
|
3
|
+
"name": "workspace-package-generator",
|
|
4
|
+
"description": "Generate a new package for a pnpm + Turbo monorepo workspace",
|
|
5
|
+
"extends": [
|
|
6
|
+
"./scaffoldfy-base.json",
|
|
7
|
+
"./scaffoldfy-project-info.json",
|
|
8
|
+
"../license-file/scaffoldfy.json"
|
|
9
|
+
],
|
|
10
|
+
|
|
11
|
+
"tasks": [
|
|
12
|
+
{
|
|
13
|
+
"id": "create-eslint-config",
|
|
14
|
+
"name": "Create eslint.config.mjs",
|
|
15
|
+
"description": "Create the ESLint configuration file for the new package",
|
|
16
|
+
"type": "create",
|
|
17
|
+
"config": {
|
|
18
|
+
"file": "{{workspace}}/{{packageBaseName}}/eslint.config.mjs",
|
|
19
|
+
"templateFile": "./templates/eslint.config.mjs.hbs"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "create-package-json",
|
|
24
|
+
"name": "Create package.json",
|
|
25
|
+
"description": "Create the package.json for the new package",
|
|
26
|
+
"type": "create",
|
|
27
|
+
"config": {
|
|
28
|
+
"file": "{{workspace}}/{{packageBaseName}}/package.json",
|
|
29
|
+
"templateFile": "./templates/package.json.hbs"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "create-tsconfig",
|
|
34
|
+
"name": "Create tsconfig.json",
|
|
35
|
+
"description": "Create the TypeScript configuration file for the new package",
|
|
36
|
+
"type": "create",
|
|
37
|
+
"config": {
|
|
38
|
+
"file": "{{workspace}}/{{packageBaseName}}/tsconfig.json",
|
|
39
|
+
"templateFile": "./templates/tsconfig.json.hbs"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "create-tsconfig-build",
|
|
44
|
+
"name": "Create tsconfig.build.json",
|
|
45
|
+
"description": "Create the TypeScript build configuration (tsc bundler only)",
|
|
46
|
+
"type": "create",
|
|
47
|
+
"enabled": {
|
|
48
|
+
"type": "condition",
|
|
49
|
+
"value": "bundler === 'tsc' && isNpmPackage === true"
|
|
50
|
+
},
|
|
51
|
+
"config": {
|
|
52
|
+
"file": "{{workspace}}/{{packageBaseName}}/tsconfig.build.json",
|
|
53
|
+
"templateFile": "./templates/tsconfig.build.json.hbs"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "create-tsdown-config",
|
|
58
|
+
"name": "Create tsdown.config.ts",
|
|
59
|
+
"description": "Create the tsdown bundler configuration (tsdown bundler only)",
|
|
60
|
+
"type": "create",
|
|
61
|
+
"enabled": {
|
|
62
|
+
"type": "condition",
|
|
63
|
+
"value": "bundler === 'tsdown' && isNpmPackage === true"
|
|
64
|
+
},
|
|
65
|
+
"config": {
|
|
66
|
+
"file": "{{workspace}}/{{packageBaseName}}/tsdown.config.ts",
|
|
67
|
+
"templateFile": "./templates/tsdown.config.ts.hbs"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "create-vitest-config",
|
|
72
|
+
"name": "Create vitest.config.ts",
|
|
73
|
+
"description": "Create the Vitest configuration file for the new package",
|
|
74
|
+
"type": "create",
|
|
75
|
+
"config": {
|
|
76
|
+
"file": "{{workspace}}/{{packageBaseName}}/vitest.config.ts",
|
|
77
|
+
"templateFile": "./templates/vitest.config.ts.hbs"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "create-readme",
|
|
82
|
+
"name": "Create README.md",
|
|
83
|
+
"description": "Create the README file for the new package",
|
|
84
|
+
"type": "create",
|
|
85
|
+
"config": {
|
|
86
|
+
"file": "{{workspace}}/{{packageBaseName}}/README.md",
|
|
87
|
+
"templateFile": "./templates/README.md.hbs"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"id": "create-src-index",
|
|
92
|
+
"name": "Create src/index.ts",
|
|
93
|
+
"description": "Create the main entry point source file",
|
|
94
|
+
"type": "create",
|
|
95
|
+
"config": {
|
|
96
|
+
"file": "{{workspace}}/{{packageBaseName}}/src/index.ts",
|
|
97
|
+
"templateFile": "./templates/src/index.ts.hbs"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "create-test-index",
|
|
102
|
+
"name": "Create test/index.test.ts",
|
|
103
|
+
"description": "Create the main test file",
|
|
104
|
+
"type": "create",
|
|
105
|
+
"config": {
|
|
106
|
+
"file": "{{workspace}}/{{packageBaseName}}/test/index.test.ts",
|
|
107
|
+
"templateFile": "./templates/test/index.test.ts.hbs"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "add-dependencies",
|
|
112
|
+
"name": "Add user-specified dependencies",
|
|
113
|
+
"description": "Add any extra dependencies the user specified to package.json",
|
|
114
|
+
"type": "exec-file",
|
|
115
|
+
"required": false,
|
|
116
|
+
"enabled": {
|
|
117
|
+
"type": "condition",
|
|
118
|
+
"value": "deps !== undefined && deps !== '' && deps !== null"
|
|
119
|
+
},
|
|
120
|
+
"config": {
|
|
121
|
+
"file": "./scripts/add-dependencies.cjs",
|
|
122
|
+
"runtime": "node",
|
|
123
|
+
"args": [
|
|
124
|
+
"--file={{workspace}}/{{packageBaseName}}/package.json",
|
|
125
|
+
"--deps={{deps}}"
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "install-dependencies",
|
|
131
|
+
"name": "Install dependencies",
|
|
132
|
+
"description": "Run pnpm install to install workspace dependencies",
|
|
133
|
+
"type": "exec",
|
|
134
|
+
"required": false,
|
|
135
|
+
"config": {
|
|
136
|
+
"command": "pnpm install"
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"id": "format-files",
|
|
141
|
+
"name": "Format generated files",
|
|
142
|
+
"description": "Run Prettier to format all generated files",
|
|
143
|
+
"type": "exec",
|
|
144
|
+
"required": false,
|
|
145
|
+
"config": {
|
|
146
|
+
"command": "pnpm prettier --write \"{{workspace}}/{{packageBaseName}}/**\" --ignore-unknown"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable node/prefer-global/process */
|
|
3
|
+
/**
|
|
4
|
+
* Adds user-specified dependencies to a package.json file and sorts all
|
|
5
|
+
* dependency maps alphabetically.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* node add-dependencies.js --file=<path> --deps="dep1 dep2 dep3"
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
const fs = require('node:fs');
|
|
14
|
+
|
|
15
|
+
const INDENT_SPACES = 2;
|
|
16
|
+
|
|
17
|
+
/** @param {string} prefix */
|
|
18
|
+
function getArg(prefix) {
|
|
19
|
+
const arg = process.argv.find((a) => a.startsWith(prefix));
|
|
20
|
+
return arg ? arg.slice(prefix.length) : undefined;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const file = getArg('--file=');
|
|
24
|
+
const depsRaw = getArg('--deps=');
|
|
25
|
+
|
|
26
|
+
if (!file) {
|
|
27
|
+
console.error('Missing --file argument');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (!depsRaw || !depsRaw.trim()) {
|
|
32
|
+
/* No dependencies to add — exit gracefully. */
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!fs.existsSync(file)) {
|
|
37
|
+
console.error(`File not found: ${file}`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** @type {Record<string, unknown>} */
|
|
42
|
+
let pkg;
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
pkg = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.error(`Failed to parse ${file}: ${err.message}`);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const deps = depsRaw.split(' ').filter(Boolean);
|
|
52
|
+
|
|
53
|
+
if (!pkg.dependencies || typeof pkg.dependencies !== 'object') {
|
|
54
|
+
pkg.dependencies = {};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
for (const dep of deps) {
|
|
58
|
+
pkg.dependencies[dep] = '*';
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Sort a dependency map alphabetically by key.
|
|
63
|
+
*/
|
|
64
|
+
function sortDeps(map) {
|
|
65
|
+
return Object.fromEntries(Object.entries(map).sort(([a], [b]) => a.localeCompare(b)));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (pkg.dependencies && typeof pkg.dependencies === 'object') {
|
|
69
|
+
pkg.dependencies = sortDeps(pkg.dependencies);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (pkg.devDependencies && typeof pkg.devDependencies === 'object') {
|
|
73
|
+
pkg.devDependencies = sortDeps(pkg.devDependencies);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
fs.writeFileSync(file, JSON.stringify(pkg, null, INDENT_SPACES));
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/* eslint-disable node/prefer-global/process */
|
|
3
|
+
/**
|
|
4
|
+
* Checks whether @internal/tsdown-config exists in the monorepo's node_modules.
|
|
5
|
+
* Outputs "true" or "false" to stdout.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
const fs = require('node:fs');
|
|
11
|
+
const path = require('node:path');
|
|
12
|
+
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
* In a pnpm monorepo, the workspace packages may be hoisted to the root
|
|
17
|
+
* node_modules or available via the workspace symlinks.
|
|
18
|
+
* Check common locations relative to the current working directory.
|
|
19
|
+
*/
|
|
20
|
+
const locations = [
|
|
21
|
+
path.join(cwd, 'node_modules', '@internal', 'tsdown-config'),
|
|
22
|
+
path.join(cwd, '..', 'node_modules', '@internal', 'tsdown-config'),
|
|
23
|
+
path.join(cwd, '..', '..', 'node_modules', '@internal', 'tsdown-config'),
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
const exists = locations.some((loc) => fs.existsSync(loc));
|
|
27
|
+
|
|
28
|
+
process.stdout.write(exists ? 'true' : 'false');
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{#if isNpmPackage}}{{#if orgName}}@{{orgName}}/{{packageBaseName}}{{else}}{{packageBaseName}}{{/if}}{{else}}@internal/{{packageBaseName}}{{/if}}",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
{{#unless isNpmPackage}}
|
|
6
|
+
"private": true,
|
|
7
|
+
{{/unless}}
|
|
8
|
+
"packageManager": "pnpm@10.17.0",
|
|
9
|
+
"author": "{{{author}}}",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
{{#if repoUrl}}
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "{{repoUrl}}",
|
|
15
|
+
"directory": "{{repoDirectory}}"
|
|
16
|
+
},
|
|
17
|
+
{{/if}}
|
|
18
|
+
"keywords": [],
|
|
19
|
+
"exports": "./src/index.ts",
|
|
20
|
+
{{#if isNpmPackage}}
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "{{#if isPublicPackage}}public{{else}}restricted{{/if}}",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js",
|
|
30
|
+
"require": "./dist/index.cjs"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"main": "./dist/index.cjs",
|
|
34
|
+
"module": "./dist/index.js",
|
|
35
|
+
"types": "./dist/index.d.ts"
|
|
36
|
+
},
|
|
37
|
+
{{/if}}
|
|
38
|
+
"scripts": {
|
|
39
|
+
{{#if isNpmPackage}}
|
|
40
|
+
"prepublishOnly": "pnpm run clean && pnpm run build",
|
|
41
|
+
{{/if}}
|
|
42
|
+
"clean": "git clean -xdf .cache .turbo dist",
|
|
43
|
+
"clean:all": "pnpm clean && git clean -xdf node_modules",
|
|
44
|
+
{{#if isNpmPackage}}
|
|
45
|
+
{{#if isBundlerTsc}}
|
|
46
|
+
"build": "pnpm run clean && tsc -p tsconfig.build.json",
|
|
47
|
+
"build:watch": "pnpm run clean && tsc -p tsconfig.build.json --watch",
|
|
48
|
+
{{/if}}
|
|
49
|
+
{{#if isBundlerTsdown}}
|
|
50
|
+
"build": "tsdown",
|
|
51
|
+
"build:watch": "tsdown --watch",
|
|
52
|
+
{{/if}}
|
|
53
|
+
{{/if}}
|
|
54
|
+
"test": "vitest --run --passWithNoTests",
|
|
55
|
+
"test:watch": "vitest --watch",
|
|
56
|
+
"test:ui": "vitest --ui",
|
|
57
|
+
"test:coverage": "vitest --coverage",
|
|
58
|
+
"typecheck": "tsc --noEmit",
|
|
59
|
+
"lint": "eslint",
|
|
60
|
+
"format": "prettier --check . --ignore-path {{relativeRootPath}}.gitignore --ignore-path {{relativeRootPath}}.prettierignore"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@internal/eslint-config": "workspace:*",
|
|
64
|
+
"@internal/prettier-config": "workspace:*",
|
|
65
|
+
"@internal/tsconfig": "workspace:*",
|
|
66
|
+
{{#if isNpmPackage}}
|
|
67
|
+
{{#if isBundlerTsdown}}
|
|
68
|
+
"{{tsdownConfigPackage}}": "{{#if hasTsdownConfig}}workspace:*{{else}}^1.0.0{{/if}}",
|
|
69
|
+
{{/if}}
|
|
70
|
+
{{/if}}
|
|
71
|
+
"@internal/vitest-config": "workspace:*",
|
|
72
|
+
"@types/node": "catalog:dev",
|
|
73
|
+
"eslint": "catalog:dev",
|
|
74
|
+
{{#if isNpmPackage}}
|
|
75
|
+
{{#if isBundlerTsdown}}
|
|
76
|
+
"tsdown": "catalog:dev",
|
|
77
|
+
{{/if}}
|
|
78
|
+
{{/if}}
|
|
79
|
+
"typescript": "catalog:dev"
|
|
80
|
+
},
|
|
81
|
+
"prettier": "@internal/prettier-config"
|
|
82
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const name = '{{packageBaseName}}';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defineConfig } from '{{tsdownConfigPackage}}';
|
|
2
|
+
|
|
3
|
+
{{#if bundleSizeLimit}}
|
|
4
|
+
const KB = 1024;
|
|
5
|
+
const MAX_BUNDLE_SIZE_KB = {{bundleSizeLimit}};
|
|
6
|
+
|
|
7
|
+
{{/if}}
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
{{#if bundleSizeLimit}}
|
|
10
|
+
bundleSize: MAX_BUNDLE_SIZE_KB * KB,
|
|
11
|
+
{{/if}}
|
|
12
|
+
entry: 'src/index.ts',
|
|
13
|
+
dts: true,
|
|
14
|
+
minify: true,
|
|
15
|
+
clean: true,
|
|
16
|
+
});
|