crankscript 0.1.2 → 0.1.5-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/README.md +1 -11
  2. package/assets/package.json +4 -0
  3. package/assets/plugin.js +260 -0
  4. package/assets/plugin.ts +372 -0
  5. package/assets/tsconfig.json +10 -0
  6. package/package.json +30 -17
  7. package/src/commands/CompileCommand/CompileCommand.d.ts +8 -0
  8. package/src/commands/CompileCommand/CompileCommand.js +21 -0
  9. package/src/commands/CompileCommand/CompileCommand.js.map +1 -0
  10. package/src/commands/CompileCommand/components/Compile.d.ts +7 -0
  11. package/src/commands/CompileCommand/components/Compile.js +14 -0
  12. package/src/commands/CompileCommand/components/Compile.js.map +1 -0
  13. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.d.ts +2 -0
  14. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.js +6 -0
  15. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.js.map +1 -0
  16. package/src/commands/CompileCommand/fn/getSimulatorPathFromEnvironment.d.ts +2 -0
  17. package/src/commands/CompileCommand/fn/getSimulatorPathFromEnvironment.js +6 -0
  18. package/src/commands/CompileCommand/fn/getSimulatorPathFromEnvironment.js.map +1 -0
  19. package/src/commands/CompileCommand/hooks/useCompileTasks.d.ts +2 -0
  20. package/src/commands/CompileCommand/hooks/useCompileTasks.js +60 -0
  21. package/src/commands/CompileCommand/hooks/useCompileTasks.js.map +1 -0
  22. package/src/commands/CompileCommand/index.d.ts +1 -0
  23. package/src/commands/CompileCommand/index.js +3 -0
  24. package/src/commands/CompileCommand/index.js.map +1 -0
  25. package/src/commands/DoctorCommand.d.ts +7 -0
  26. package/src/commands/DoctorCommand.js +26 -0
  27. package/src/commands/DoctorCommand.js.map +1 -0
  28. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.d.ts +9 -0
  29. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.js +25 -0
  30. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.js.map +1 -0
  31. package/src/commands/EnvironmentAwareCommand/components/HealthReport.d.ts +7 -0
  32. package/src/commands/EnvironmentAwareCommand/components/HealthReport.js +41 -0
  33. package/src/commands/EnvironmentAwareCommand/components/HealthReport.js.map +1 -0
  34. package/src/commands/EnvironmentAwareCommand/index.d.ts +1 -0
  35. package/src/commands/EnvironmentAwareCommand/index.js +3 -0
  36. package/src/commands/EnvironmentAwareCommand/index.js.map +1 -0
  37. package/src/commands/GenerateTypes/GenerateTypesCommand.d.ts +10 -0
  38. package/src/commands/GenerateTypes/GenerateTypesCommand.js +45 -0
  39. package/src/commands/GenerateTypes/GenerateTypesCommand.js.map +1 -0
  40. package/src/commands/GenerateTypes/components/GenerateTypes.d.ts +9 -0
  41. package/src/commands/GenerateTypes/components/GenerateTypes.js +36 -0
  42. package/src/commands/GenerateTypes/components/GenerateTypes.js.map +1 -0
  43. package/src/commands/GenerateTypes/constants.d.ts +1 -0
  44. package/src/commands/GenerateTypes/constants.js +3 -0
  45. package/src/commands/GenerateTypes/constants.js.map +1 -0
  46. package/src/commands/GenerateTypes/fn/getApiDefinitions.d.ts +2 -0
  47. package/src/commands/GenerateTypes/fn/getApiDefinitions.js +39 -0
  48. package/src/commands/GenerateTypes/fn/getApiDefinitions.js.map +1 -0
  49. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.d.ts +5 -0
  50. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.js +78 -0
  51. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.js.map +1 -0
  52. package/src/commands/GenerateTypes/fn/getFunctionTypeOverride.d.ts +1 -0
  53. package/src/commands/GenerateTypes/fn/getFunctionTypeOverride.js +7 -0
  54. package/src/commands/GenerateTypes/fn/getFunctionTypeOverride.js.map +1 -0
  55. package/src/commands/GenerateTypes/fn/getHtmlForVersion.d.ts +1 -0
  56. package/src/commands/GenerateTypes/fn/getHtmlForVersion.js +21 -0
  57. package/src/commands/GenerateTypes/fn/getHtmlForVersion.js.map +1 -0
  58. package/src/commands/GenerateTypes/fn/parseFunctionSignature.d.ts +10 -0
  59. package/src/commands/GenerateTypes/fn/parseFunctionSignature.js +22 -0
  60. package/src/commands/GenerateTypes/fn/parseFunctionSignature.js.map +1 -0
  61. package/src/commands/GenerateTypes/hooks/useFetchHtml.d.ts +12 -0
  62. package/src/commands/GenerateTypes/hooks/useFetchHtml.js +31 -0
  63. package/src/commands/GenerateTypes/hooks/useFetchHtml.js.map +1 -0
  64. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.d.ts +12 -0
  65. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js +126 -0
  66. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js.map +1 -0
  67. package/src/commands/GenerateTypes/hooks/useGetVersion.d.ts +53 -0
  68. package/src/commands/GenerateTypes/hooks/useGetVersion.js +52 -0
  69. package/src/commands/GenerateTypes/hooks/useGetVersion.js.map +1 -0
  70. package/src/commands/GenerateTypes/hooks/useParseDocumentation.d.ts +13 -0
  71. package/src/commands/GenerateTypes/hooks/useParseDocumentation.js +34 -0
  72. package/src/commands/GenerateTypes/hooks/useParseDocumentation.js.map +1 -0
  73. package/src/commands/GenerateTypes/index.d.ts +1 -0
  74. package/src/commands/GenerateTypes/index.js +3 -0
  75. package/src/commands/GenerateTypes/index.js.map +1 -0
  76. package/src/commands/GenerateTypes/utils/createTypeProvider.d.ts +43 -0
  77. package/src/commands/GenerateTypes/utils/createTypeProvider.js +156 -0
  78. package/src/commands/GenerateTypes/utils/createTypeProvider.js.map +1 -0
  79. package/src/commands/GenerateTypes/utils/functionTypeOverrides.d.ts +2 -0
  80. package/src/commands/GenerateTypes/utils/functionTypeOverrides.js +18 -0
  81. package/src/commands/GenerateTypes/utils/functionTypeOverrides.js.map +1 -0
  82. package/src/commands/NewCommand/NewCommand.d.ts +10 -0
  83. package/src/commands/NewCommand/NewCommand.js +35 -0
  84. package/src/commands/NewCommand/NewCommand.js.map +1 -0
  85. package/src/commands/NewCommand/components/New.d.ts +8 -0
  86. package/src/commands/NewCommand/components/New.js +26 -0
  87. package/src/commands/NewCommand/components/New.js.map +1 -0
  88. package/src/commands/RenderableCommand.d.ts +7 -0
  89. package/src/commands/RenderableCommand.js +12 -0
  90. package/src/commands/RenderableCommand.js.map +1 -0
  91. package/src/commands/SimulatorCommand/SimulatorCommand.d.ts +12 -0
  92. package/src/commands/SimulatorCommand/SimulatorCommand.js +39 -0
  93. package/src/commands/SimulatorCommand/SimulatorCommand.js.map +1 -0
  94. package/src/commands/SimulatorCommand/components/Simulator.d.ts +11 -0
  95. package/src/commands/SimulatorCommand/components/Simulator.js +80 -0
  96. package/src/commands/SimulatorCommand/components/Simulator.js.map +1 -0
  97. package/src/commands/SimulatorCommand/index.d.ts +1 -0
  98. package/src/commands/SimulatorCommand/index.js +3 -0
  99. package/src/commands/SimulatorCommand/index.js.map +1 -0
  100. package/src/commands/TranspileCommand/TranspileCommand.d.ts +9 -0
  101. package/src/commands/TranspileCommand/TranspileCommand.js +31 -0
  102. package/src/commands/TranspileCommand/TranspileCommand.js.map +1 -0
  103. package/src/commands/TranspileCommand/components/Transpile.d.ts +6 -0
  104. package/src/commands/TranspileCommand/components/Transpile.js +12 -0
  105. package/src/commands/TranspileCommand/components/Transpile.js.map +1 -0
  106. package/src/commands/TranspileCommand/fn/transpile.d.ts +1 -0
  107. package/src/commands/TranspileCommand/fn/transpile.js +19 -0
  108. package/src/commands/TranspileCommand/fn/transpile.js.map +1 -0
  109. package/src/commands/TranspileCommand/hooks/useTranspileTasks.d.ts +2 -0
  110. package/src/commands/TranspileCommand/hooks/useTranspileTasks.js +18 -0
  111. package/src/commands/TranspileCommand/hooks/useTranspileTasks.js.map +1 -0
  112. package/src/commands/TranspileCommand/index.d.ts +1 -0
  113. package/src/commands/TranspileCommand/index.js +3 -0
  114. package/src/commands/TranspileCommand/index.js.map +1 -0
  115. package/src/components/CheckList/CheckList.d.ts +8 -0
  116. package/src/components/CheckList/CheckList.js +34 -0
  117. package/src/components/CheckList/CheckList.js.map +1 -0
  118. package/src/components/CheckList/Item.d.ts +7 -0
  119. package/src/components/CheckList/Item.js +87 -0
  120. package/src/components/CheckList/Item.js.map +1 -0
  121. package/src/components/CheckList/index.d.ts +1 -0
  122. package/src/components/CheckList/index.js +3 -0
  123. package/src/components/CheckList/index.js.map +1 -0
  124. package/src/components/Spinner.d.ts +3 -0
  125. package/src/components/Spinner.js +26 -0
  126. package/src/components/Spinner.js.map +1 -0
  127. package/src/constants.d.ts +3 -0
  128. package/src/constants.js +11 -0
  129. package/src/constants.js.map +1 -0
  130. package/src/environment/createEnvironment.d.ts +12 -0
  131. package/src/environment/createEnvironment.js +37 -0
  132. package/src/environment/createEnvironment.js.map +1 -0
  133. package/src/environment/dto/Environment.d.ts +7 -0
  134. package/src/environment/dto/Environment.js +7 -0
  135. package/src/environment/dto/Environment.js.map +1 -0
  136. package/src/environment/error/EnvironmentError.d.ts +2 -0
  137. package/src/environment/error/EnvironmentError.js +4 -0
  138. package/src/environment/error/EnvironmentError.js.map +1 -0
  139. package/src/environment/path/dto/PlaydateSdkPath.d.ts +5 -0
  140. package/src/environment/path/dto/PlaydateSdkPath.js +10 -0
  141. package/src/environment/path/dto/PlaydateSdkPath.js.map +1 -0
  142. package/src/environment/path/error/PlaydateSdkPathVariableNotSetError.d.ts +4 -0
  143. package/src/environment/path/error/PlaydateSdkPathVariableNotSetError.js +8 -0
  144. package/src/environment/path/error/PlaydateSdkPathVariableNotSetError.js.map +1 -0
  145. package/src/environment/path/getPlaydateSdkPath.d.ts +14 -0
  146. package/src/environment/path/getPlaydateSdkPath.js +16 -0
  147. package/src/environment/path/getPlaydateSdkPath.js.map +1 -0
  148. package/src/index.d.ts +1 -1
  149. package/src/index.js +30 -13
  150. package/src/index.js.map +1 -1
  151. package/src/types.d.ts +96 -0
  152. package/src/types.js +16 -0
  153. package/src/types.js.map +1 -0
  154. package/src/utils/dirname.d.ts +1 -0
  155. package/src/utils/dirname.js +5 -0
  156. package/src/utils/dirname.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/cli/src/commands/TranspileCommand/components/Transpile.tsx"],"sourcesContent":["import React from 'react';\nimport { useTranspileTasks } from '@/cli/commands/TranspileCommand/hooks/useTranspileTasks.js';\nimport { CheckList } from '@/cli/components/CheckList/index.js';\n\ninterface Props {\n path: string;\n}\n\nexport const Transpile = ({ path }: Props) => {\n const items = useTranspileTasks(path);\n\n return <CheckList items={items} onFinish={process.exit} />;\n};\n"],"names":["React","useTranspileTasks","CheckList","Transpile","path","items","onFinish","process","exit"],"rangeMappings":";;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ,6DAA6D;AAC/F,SAASC,SAAS,QAAQ,sCAAsC;AAMhE,OAAO,MAAMC,YAAY,CAAC,EAAEC,IAAI,EAAS;IACrC,MAAMC,QAAQJ,kBAAkBG;IAEhC,qBAAO,oBAACF;QAAUG,OAAOA;QAAOC,UAAUC,QAAQC,IAAI;;AAC1D,EAAE"}
@@ -0,0 +1 @@
1
+ export declare const transpile: (path: string) => void;
@@ -0,0 +1,19 @@
1
+ import { join } from 'node:path';
2
+ import * as tstl from 'typescript-to-lua';
3
+ import { LuaTarget } from 'typescript-to-lua';
4
+ import { RootFolder } from '../../../constants.js';
5
+ export const transpile = (path)=>{
6
+ tstl.transpileProject(join(path, 'tsconfig.json'), {
7
+ luaTarget: LuaTarget.Lua54,
8
+ outDir: join(path, 'Source'),
9
+ luaBundle: 'main.lua',
10
+ luaBundleEntry: join(path, 'src', 'index.ts'),
11
+ luaPlugins: [
12
+ {
13
+ name: join(RootFolder, 'assets', 'plugin.js')
14
+ }
15
+ ]
16
+ });
17
+ };
18
+
19
+ //# sourceMappingURL=transpile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/cli/src/commands/TranspileCommand/fn/transpile.ts"],"sourcesContent":["import { join } from 'node:path';\nimport * as tstl from 'typescript-to-lua';\nimport { LuaTarget } from 'typescript-to-lua';\nimport { RootFolder } from '@/cli/constants.js';\n\nexport const transpile = (path: string) => {\n tstl.transpileProject(join(path, 'tsconfig.json'), {\n luaTarget: LuaTarget.Lua54,\n outDir: join(path, 'Source'),\n luaBundle: 'main.lua',\n luaBundleEntry: join(path, 'src', 'index.ts'),\n luaPlugins: [\n {\n name: join(RootFolder, 'assets', 'plugin.js'),\n },\n ],\n });\n};\n"],"names":["join","tstl","LuaTarget","RootFolder","transpile","path","transpileProject","luaTarget","Lua54","outDir","luaBundle","luaBundleEntry","luaPlugins","name"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,IAAI,QAAQ,YAAY;AACjC,YAAYC,UAAU,oBAAoB;AAC1C,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,OAAO,MAAMC,YAAY,CAACC;IACtBJ,KAAKK,gBAAgB,CAACN,KAAKK,MAAM,kBAAkB;QAC/CE,WAAWL,UAAUM,KAAK;QAC1BC,QAAQT,KAAKK,MAAM;QACnBK,WAAW;QACXC,gBAAgBX,KAAKK,MAAM,OAAO;QAClCO,YAAY;YACR;gBACIC,MAAMb,KAAKG,YAAY,UAAU;YACrC;SACH;IACL;AACJ,EAAE"}
@@ -0,0 +1,2 @@
1
+ import { CheckListItem } from '../../../types.js';
2
+ export declare const useTranspileTasks: (path: string) => CheckListItem<unknown>[];
@@ -0,0 +1,18 @@
1
+ import { useMemo } from 'react';
2
+ import { transpile } from '../../../commands/TranspileCommand/fn/transpile.js';
3
+ export const useTranspileTasks = (path)=>{
4
+ return useMemo(()=>[
5
+ {
6
+ waitingDescription: 'Waiting to transpile code...',
7
+ errorDescription: 'Could not transpile code',
8
+ runningDescription: 'Transpiling code...',
9
+ finishedDescription: ()=>'Code transpiled',
10
+ runner: async ()=>{
11
+ transpile(path);
12
+ },
13
+ ready: true
14
+ }
15
+ ], []);
16
+ };
17
+
18
+ //# sourceMappingURL=useTranspileTasks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/cli/src/commands/TranspileCommand/hooks/useTranspileTasks.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { transpile } from '@/cli/commands/TranspileCommand/fn/transpile.js';\nimport { CheckListItem } from '@/cli/types.js';\n\nexport const useTranspileTasks = (path: string) => {\n return useMemo(\n () => [\n {\n waitingDescription: 'Waiting to transpile code...',\n errorDescription: 'Could not transpile code',\n runningDescription: 'Transpiling code...',\n finishedDescription: () => 'Code transpiled',\n runner: async () => {\n transpile(path);\n },\n ready: true,\n },\n ],\n []\n ) as CheckListItem<unknown>[];\n};\n"],"names":["useMemo","transpile","useTranspileTasks","path","waitingDescription","errorDescription","runningDescription","finishedDescription","runner","ready"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,SAAS,QAAQ,kDAAkD;AAG5E,OAAO,MAAMC,oBAAoB,CAACC;IAC9B,OAAOH,QACH,IAAM;YACF;gBACII,oBAAoB;gBACpBC,kBAAkB;gBAClBC,oBAAoB;gBACpBC,qBAAqB,IAAM;gBAC3BC,QAAQ;oBACJP,UAAUE;gBACd;gBACAM,OAAO;YACX;SACH,EACD,EAAE;AAEV,EAAE"}
@@ -0,0 +1 @@
1
+ export * from './TranspileCommand.js';
@@ -0,0 +1,3 @@
1
+ export * from './TranspileCommand.js';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/commands/TranspileCommand/index.ts"],"sourcesContent":["export * from './TranspileCommand.js';\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,wBAAwB"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { CheckListItem } from '../../types.js';
3
+ interface Props {
4
+ items: CheckListItem<unknown>[];
5
+ onFinish?: () => void;
6
+ }
7
+ export declare const CheckList: ({ items, onFinish }: Props) => React.JSX.Element;
8
+ export {};
@@ -0,0 +1,34 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import React, { useEffect, useState } from 'react';
3
+ import { Item } from './Item.js';
4
+ export const CheckList = ({ items, onFinish })=>{
5
+ const [currentIndex, setCurrentIndex] = useState(null);
6
+ useEffect(()=>{
7
+ if (currentIndex === null && items.length > 0) {
8
+ setCurrentIndex(0);
9
+ }
10
+ }, [
11
+ currentIndex,
12
+ items
13
+ ]);
14
+ const handleFinish = (index)=>{
15
+ if (index + 1 < items.length) {
16
+ setCurrentIndex(index + 1);
17
+ } else {
18
+ onFinish == null ? void 0 : onFinish();
19
+ }
20
+ };
21
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, items.map((item, index)=>/*#__PURE__*/ React.createElement(Item, {
22
+ key: item.waitingDescription,
23
+ item: _extends({}, item, {
24
+ onFinish: (result)=>{
25
+ var _item_onFinish;
26
+ item == null ? void 0 : (_item_onFinish = item.onFinish) == null ? void 0 : _item_onFinish.call(item, result);
27
+ handleFinish(index);
28
+ }
29
+ }),
30
+ start: index === currentIndex
31
+ })));
32
+ };
33
+
34
+ //# sourceMappingURL=CheckList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/CheckList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { CheckListItem } from '@/cli/types.js';\nimport { Item } from './Item.js';\n\ninterface Props {\n items: CheckListItem<unknown>[];\n onFinish?: () => void;\n}\n\nexport const CheckList = ({ items, onFinish }: Props) => {\n const [currentIndex, setCurrentIndex] = useState<number | null>(null);\n\n useEffect(() => {\n if (currentIndex === null && items.length > 0) {\n setCurrentIndex(0);\n }\n }, [currentIndex, items]);\n\n const handleFinish = (index: number) => {\n if (index + 1 < items.length) {\n setCurrentIndex(index + 1);\n } else {\n onFinish?.();\n }\n };\n\n return (\n <>\n {items.map((item, index) => (\n <Item\n key={item.waitingDescription}\n item={{\n ...item,\n onFinish: (result: unknown) => {\n item?.onFinish?.(result);\n handleFinish(index);\n },\n }}\n start={index === currentIndex}\n />\n ))}\n </>\n );\n};\n"],"names":["React","useEffect","useState","Item","CheckList","items","onFinish","currentIndex","setCurrentIndex","length","handleFinish","index","map","item","key","waitingDescription","result","start"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,SAASC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAEnD,SAASC,IAAI,QAAQ,YAAY;AAOjC,OAAO,MAAMC,YAAY,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAS;IAChD,MAAM,CAACC,cAAcC,gBAAgB,GAAGN,SAAwB;IAEhED,UAAU;QACN,IAAIM,iBAAiB,QAAQF,MAAMI,MAAM,GAAG,GAAG;YAC3CD,gBAAgB;QACpB;IACJ,GAAG;QAACD;QAAcF;KAAM;IAExB,MAAMK,eAAe,CAACC;QAClB,IAAIA,QAAQ,IAAIN,MAAMI,MAAM,EAAE;YAC1BD,gBAAgBG,QAAQ;QAC5B,OAAO;YACHL,4BAAAA;QACJ;IACJ;IAEA,qBACI,0CACKD,MAAMO,GAAG,CAAC,CAACC,MAAMF,sBACd,oBAACR;YACGW,KAAKD,KAAKE,kBAAkB;YAC5BF,MAAM,aACCA;gBACHP,UAAU,CAACU;wBACPH;oBAAAA,yBAAAA,iBAAAA,KAAMP,QAAQ,qBAAdO,oBAAAA,MAAiBG;oBACjBN,aAAaC;gBACjB;;YAEJM,OAAON,UAAUJ;;AAKrC,EAAE"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { CheckListItem } from '../../types.js';
3
+ export interface ItemProps<TResult> {
4
+ item: CheckListItem<TResult>;
5
+ start: boolean;
6
+ }
7
+ export declare const Item: <TResult>({ item: { runningDescription, waitingDescription, errorDescription, finishedDescription, runner, onFinish, ready, }, start, }: ItemProps<TResult>) => React.JSX.Element;
@@ -0,0 +1,87 @@
1
+ import { StatusMessage } from '@inkjs/ui';
2
+ import { Text } from 'ink';
3
+ import React, { useEffect, useRef, useState } from 'react';
4
+ import { Spinner } from '../../components/Spinner.js';
5
+ export const Item = ({ item: { runningDescription, waitingDescription, errorDescription, finishedDescription, runner, onFinish, ready }, start })=>{
6
+ const executed = useRef(false);
7
+ const interval = useRef(null);
8
+ const [dotCount, setDotCount] = useState(0);
9
+ const [result, setResult] = useState(null);
10
+ const [failedReason, setfailedReason] = useState(null);
11
+ const hasResult = !failedReason && result !== null;
12
+ const isRunning = !failedReason && !hasResult && start && ready !== false;
13
+ const isWaiting = !failedReason && !hasResult && (!start || !ready);
14
+ const couldStartButNotReady = !failedReason && !hasResult && start && ready === false;
15
+ useEffect(()=>{
16
+ if (failedReason) {
17
+ process.exit();
18
+ }
19
+ }, [
20
+ failedReason
21
+ ]);
22
+ useEffect(()=>{
23
+ if (couldStartButNotReady) {
24
+ interval.current = setInterval(()=>{
25
+ setDotCount((count)=>(count + 1) % 4);
26
+ }, 250);
27
+ } else {
28
+ if (interval.current) {
29
+ clearInterval(interval.current);
30
+ }
31
+ }
32
+ return ()=>{
33
+ if (interval.current) {
34
+ clearInterval(interval.current);
35
+ }
36
+ };
37
+ }, [
38
+ couldStartButNotReady
39
+ ]);
40
+ useEffect(()=>{
41
+ if (!start || executed.current || ready === false) {
42
+ return;
43
+ }
44
+ runner().then((result)=>{
45
+ executed.current = true;
46
+ if (result === false) {
47
+ setfailedReason(errorDescription);
48
+ return;
49
+ }
50
+ setResult(result);
51
+ onFinish == null ? void 0 : onFinish(result);
52
+ }).catch((reason)=>{
53
+ console.log(reason);
54
+ setfailedReason(reason.message);
55
+ });
56
+ }, [
57
+ errorDescription,
58
+ onFinish,
59
+ runner,
60
+ start
61
+ ]);
62
+ let message = waitingDescription;
63
+ let variant = 'info';
64
+ if (failedReason) {
65
+ message = ` ${failedReason}`;
66
+ variant = 'error';
67
+ } else if (isRunning) {
68
+ message = runningDescription;
69
+ variant = 'warning';
70
+ } else if (hasResult) {
71
+ message = finishedDescription(result);
72
+ variant = 'success';
73
+ }
74
+ if (isRunning) {
75
+ return /*#__PURE__*/ React.createElement(Spinner, {
76
+ label: message
77
+ });
78
+ }
79
+ return /*#__PURE__*/ React.createElement(StatusMessage, {
80
+ variant: variant
81
+ }, /*#__PURE__*/ React.createElement(Text, {
82
+ bold: !isWaiting,
83
+ color: isRunning ? 'yellow' : isWaiting ? 'gray' : failedReason ? 'red' : 'green'
84
+ }, message, ' ', couldStartButNotReady && `— not ready yet${'.'.repeat(dotCount)}`));
85
+ };
86
+
87
+ //# sourceMappingURL=Item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/Item.tsx"],"sourcesContent":["import { StatusMessage, StatusMessageProps } from '@inkjs/ui';\nimport { Text } from 'ink';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Spinner } from '@/cli/components/Spinner.js';\nimport { CheckListItem } from '@/cli/types.js';\n\nexport interface ItemProps<TResult> {\n item: CheckListItem<TResult>;\n start: boolean;\n}\n\nexport const Item = <TResult,>({\n item: {\n runningDescription,\n waitingDescription,\n errorDescription,\n finishedDescription,\n runner,\n onFinish,\n ready,\n },\n start,\n}: ItemProps<TResult>) => {\n const executed = useRef(false);\n const interval = useRef<NodeJS.Timeout | null>(null);\n const [dotCount, setDotCount] = useState(0);\n const [result, setResult] = useState<TResult | null>(null);\n const [failedReason, setfailedReason] = useState<string | null>(null);\n const hasResult = !failedReason && result !== null;\n const isRunning = !failedReason && !hasResult && start && ready !== false;\n const isWaiting = !failedReason && !hasResult && (!start || !ready);\n const couldStartButNotReady =\n !failedReason && !hasResult && start && ready === false;\n\n useEffect(() => {\n if (failedReason) {\n process.exit();\n }\n }, [failedReason]);\n\n useEffect(() => {\n if (couldStartButNotReady) {\n interval.current = setInterval(() => {\n setDotCount((count) => (count + 1) % 4);\n }, 250);\n } else {\n if (interval.current) {\n clearInterval(interval.current);\n }\n }\n\n return () => {\n if (interval.current) {\n clearInterval(interval.current);\n }\n };\n }, [couldStartButNotReady]);\n\n useEffect(() => {\n if (!start || executed.current || ready === false) {\n return;\n }\n\n runner()\n .then((result) => {\n executed.current = true;\n\n if (result === false) {\n setfailedReason(errorDescription);\n\n return;\n }\n\n setResult(result);\n onFinish?.(result);\n })\n .catch((reason) => {\n console.log(reason);\n setfailedReason(reason.message);\n });\n }, [errorDescription, onFinish, runner, start]);\n\n let message = waitingDescription;\n let variant: StatusMessageProps['variant'] = 'info';\n\n if (failedReason) {\n message = ` ${failedReason}`;\n variant = 'error';\n } else if (isRunning) {\n message = runningDescription;\n variant = 'warning';\n } else if (hasResult) {\n message = finishedDescription(result);\n variant = 'success';\n }\n\n if (isRunning) {\n return <Spinner label={message} />;\n }\n\n return (\n <StatusMessage variant={variant}>\n <Text\n bold={!isWaiting}\n color={\n isRunning\n ? 'yellow'\n : isWaiting\n ? 'gray'\n : failedReason\n ? 'red'\n : 'green'\n }\n >\n {message}{' '}\n {couldStartButNotReady &&\n `— not ready yet${'.'.repeat(dotCount)}`}\n </Text>\n </StatusMessage>\n );\n};\n"],"names":["StatusMessage","Text","React","useEffect","useRef","useState","Spinner","Item","item","runningDescription","waitingDescription","errorDescription","finishedDescription","runner","onFinish","ready","start","executed","interval","dotCount","setDotCount","result","setResult","failedReason","setfailedReason","hasResult","isRunning","isWaiting","couldStartButNotReady","process","exit","current","setInterval","count","clearInterval","then","catch","reason","console","log","message","variant","label","bold","color","repeat"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,aAAa,QAA4B,YAAY;AAC9D,SAASC,IAAI,QAAQ,MAAM;AAC3B,OAAOC,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAQ;AAC3D,SAASC,OAAO,QAAQ,8BAA8B;AAQtD,OAAO,MAAMC,OAAO,CAAW,EAC3BC,MAAM,EACFC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,EAChBC,mBAAmB,EACnBC,MAAM,EACNC,QAAQ,EACRC,KAAK,EACR,EACDC,KAAK,EACY;IACjB,MAAMC,WAAWb,OAAO;IACxB,MAAMc,WAAWd,OAA8B;IAC/C,MAAM,CAACe,UAAUC,YAAY,GAAGf,SAAS;IACzC,MAAM,CAACgB,QAAQC,UAAU,GAAGjB,SAAyB;IACrD,MAAM,CAACkB,cAAcC,gBAAgB,GAAGnB,SAAwB;IAChE,MAAMoB,YAAY,CAACF,gBAAgBF,WAAW;IAC9C,MAAMK,YAAY,CAACH,gBAAgB,CAACE,aAAaT,SAASD,UAAU;IACpE,MAAMY,YAAY,CAACJ,gBAAgB,CAACE,aAAc,CAAA,CAACT,SAAS,CAACD,KAAI;IACjE,MAAMa,wBACF,CAACL,gBAAgB,CAACE,aAAaT,SAASD,UAAU;IAEtDZ,UAAU;QACN,IAAIoB,cAAc;YACdM,QAAQC,IAAI;QAChB;IACJ,GAAG;QAACP;KAAa;IAEjBpB,UAAU;QACN,IAAIyB,uBAAuB;YACvBV,SAASa,OAAO,GAAGC,YAAY;gBAC3BZ,YAAY,CAACa,QAAU,AAACA,CAAAA,QAAQ,CAAA,IAAK;YACzC,GAAG;QACP,OAAO;YACH,IAAIf,SAASa,OAAO,EAAE;gBAClBG,cAAchB,SAASa,OAAO;YAClC;QACJ;QAEA,OAAO;YACH,IAAIb,SAASa,OAAO,EAAE;gBAClBG,cAAchB,SAASa,OAAO;YAClC;QACJ;IACJ,GAAG;QAACH;KAAsB;IAE1BzB,UAAU;QACN,IAAI,CAACa,SAASC,SAASc,OAAO,IAAIhB,UAAU,OAAO;YAC/C;QACJ;QAEAF,SACKsB,IAAI,CAAC,CAACd;YACHJ,SAASc,OAAO,GAAG;YAEnB,IAAIV,WAAW,OAAO;gBAClBG,gBAAgBb;gBAEhB;YACJ;YAEAW,UAAUD;YACVP,4BAAAA,SAAWO;QACf,GACCe,KAAK,CAAC,CAACC;YACJC,QAAQC,GAAG,CAACF;YACZb,gBAAgBa,OAAOG,OAAO;QAClC;IACR,GAAG;QAAC7B;QAAkBG;QAAUD;QAAQG;KAAM;IAE9C,IAAIwB,UAAU9B;IACd,IAAI+B,UAAyC;IAE7C,IAAIlB,cAAc;QACdiB,UAAU,CAAC,CAAC,EAAEjB,aAAa,CAAC;QAC5BkB,UAAU;IACd,OAAO,IAAIf,WAAW;QAClBc,UAAU/B;QACVgC,UAAU;IACd,OAAO,IAAIhB,WAAW;QAClBe,UAAU5B,oBAAoBS;QAC9BoB,UAAU;IACd;IAEA,IAAIf,WAAW;QACX,qBAAO,oBAACpB;YAAQoC,OAAOF;;IAC3B;IAEA,qBACI,oBAACxC;QAAcyC,SAASA;qBACpB,oBAACxC;QACG0C,MAAM,CAAChB;QACPiB,OACIlB,YACM,WACAC,YACA,SACAJ,eACA,QACA;OAGTiB,SAAS,KACTZ,yBACG,CAAC,eAAe,EAAE,IAAIiB,MAAM,CAAC1B,UAAU,CAAC;AAI5D,EAAE"}
@@ -0,0 +1 @@
1
+ export * from './CheckList.js';
@@ -0,0 +1,3 @@
1
+ export * from './CheckList.js';
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/components/CheckList/index.ts"],"sourcesContent":["export * from './CheckList.js';\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,iBAAiB"}
@@ -0,0 +1,3 @@
1
+ import { SpinnerProps } from '@inkjs/ui';
2
+ import React from 'react';
3
+ export declare const Spinner: (props: SpinnerProps) => React.JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { Spinner as InkUiSpinner, extendTheme, defaultTheme, ThemeProvider } from '@inkjs/ui';
3
+ import React from 'react';
4
+ const SpinnerTheme = extendTheme(defaultTheme, {
5
+ components: {
6
+ Spinner: {
7
+ styles: {
8
+ frame: ()=>({
9
+ color: 'yellowBright'
10
+ }),
11
+ label: ()=>({
12
+ color: 'yellowBright'
13
+ })
14
+ }
15
+ }
16
+ }
17
+ });
18
+ export const Spinner = (props)=>{
19
+ return /*#__PURE__*/ React.createElement(ThemeProvider, {
20
+ theme: SpinnerTheme
21
+ }, /*#__PURE__*/ React.createElement(InkUiSpinner, _extends({}, props, {
22
+ label: ` ${props.label}`
23
+ })));
24
+ };
25
+
26
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../libs/cli/src/components/Spinner.tsx"],"sourcesContent":["import {\n Spinner as InkUiSpinner,\n SpinnerProps,\n extendTheme,\n defaultTheme,\n ThemeProvider,\n} from '@inkjs/ui';\nimport { TextProps } from 'ink';\nimport React from 'react';\n\nconst SpinnerTheme = extendTheme(defaultTheme, {\n components: {\n Spinner: {\n styles: {\n frame: (): TextProps => ({\n color: 'yellowBright',\n }),\n label: (): TextProps => ({\n color: 'yellowBright',\n }),\n },\n },\n },\n});\n\nexport const Spinner = (props: SpinnerProps) => {\n return (\n <ThemeProvider theme={SpinnerTheme}>\n <InkUiSpinner {...props} label={` ${props.label}`} />\n </ThemeProvider>\n );\n};\n"],"names":["Spinner","InkUiSpinner","extendTheme","defaultTheme","ThemeProvider","React","SpinnerTheme","components","styles","frame","color","label","props","theme"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SACIA,WAAWC,YAAY,EAEvBC,WAAW,EACXC,YAAY,EACZC,aAAa,QACV,YAAY;AAEnB,OAAOC,WAAW,QAAQ;AAE1B,MAAMC,eAAeJ,YAAYC,cAAc;IAC3CI,YAAY;QACRP,SAAS;YACLQ,QAAQ;gBACJC,OAAO,IAAkB,CAAA;wBACrBC,OAAO;oBACX,CAAA;gBACAC,OAAO,IAAkB,CAAA;wBACrBD,OAAO;oBACX,CAAA;YACJ;QACJ;IACJ;AACJ;AAEA,OAAO,MAAMV,UAAU,CAACY;IACpB,qBACI,oBAACR;QAAcS,OAAOP;qBAClB,oBAACL,2BAAiBW;QAAOD,OAAO,CAAC,CAAC,EAAEC,MAAMD,KAAK,CAAC,CAAC;;AAG7D,EAAE"}
@@ -0,0 +1,3 @@
1
+ export declare const TypescriptReservedNamed: string[];
2
+ export declare const RootFolder: string;
3
+ export declare const DataFolder: string;
@@ -0,0 +1,11 @@
1
+ import { join } from 'node:path';
2
+ import { __dirname } from './utils/dirname.js';
3
+ export const TypescriptReservedNamed = [
4
+ 'delete',
5
+ 'new',
6
+ 'function'
7
+ ];
8
+ export const RootFolder = join(__dirname, '..', '..');
9
+ export const DataFolder = join(RootFolder, 'src', 'data');
10
+
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../libs/cli/src/constants.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { __dirname } from './utils/dirname.js';\n\nexport const TypescriptReservedNamed = ['delete', 'new', 'function'];\nexport const RootFolder = join(__dirname, '..', '..');\nexport const DataFolder = join(RootFolder, 'src', 'data');\n"],"names":["join","__dirname","TypescriptReservedNamed","RootFolder","DataFolder"],"rangeMappings":";;;;;;;;","mappings":"AAAA,SAASA,IAAI,QAAQ,YAAY;AACjC,SAASC,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,0BAA0B;IAAC;IAAU;IAAO;CAAW,CAAC;AACrE,OAAO,MAAMC,aAAaH,KAAKC,WAAW,MAAM,MAAM;AACtD,OAAO,MAAMG,aAAaJ,KAAKG,YAAY,OAAO,QAAQ"}
@@ -0,0 +1,12 @@
1
+ import { EnvironmentHealthResult } from '../types.js';
2
+ /**
3
+ * Will create a configuration object from the environment.
4
+ */
5
+ export declare const createEnvironment: (input?: {
6
+ /**
7
+ * The environment to create the configuration from.
8
+ *
9
+ * Defaults to `process.env`.
10
+ */
11
+ environment: Record<string, unknown>;
12
+ }) => EnvironmentHealthResult;
@@ -0,0 +1,37 @@
1
+ import { HealthCheckStatusType } from '../types.js';
2
+ import { Environment } from './dto/Environment.js';
3
+ import { getPlaydateSdkPath } from './path/getPlaydateSdkPath.js';
4
+ /**
5
+ * Will create a configuration object from the environment.
6
+ */ export const createEnvironment = (input)=>{
7
+ const { environment = process.env } = input != null ? input : {};
8
+ let sdkPath;
9
+ try {
10
+ sdkPath = getPlaydateSdkPath({
11
+ environment
12
+ });
13
+ } catch (error) {
14
+ return {
15
+ isHealthy: false,
16
+ health: {
17
+ sdkPathKnown: {
18
+ healthStatus: HealthCheckStatusType.Unhealthy
19
+ }
20
+ }
21
+ };
22
+ }
23
+ return {
24
+ isHealthy: true,
25
+ environment: new Environment({
26
+ sdkPath
27
+ }),
28
+ health: {
29
+ sdkPathKnown: {
30
+ healthStatus: HealthCheckStatusType.Healthy,
31
+ argument: sdkPath
32
+ }
33
+ }
34
+ };
35
+ };
36
+
37
+ //# sourceMappingURL=createEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../libs/cli/src/environment/createEnvironment.ts"],"sourcesContent":["import { EnvironmentHealthResult, HealthCheckStatusType } from '../types.js';\nimport { Environment } from './dto/Environment.js';\nimport { PlaydateSdkPath } from './path/dto/PlaydateSdkPath.js';\nimport { getPlaydateSdkPath } from './path/getPlaydateSdkPath.js';\n\n/**\n * Will create a configuration object from the environment.\n */\nexport const createEnvironment = (input?: {\n /**\n * The environment to create the configuration from.\n *\n * Defaults to `process.env`.\n */\n environment: Record<string, unknown>;\n}): EnvironmentHealthResult => {\n const { environment = process.env } = input ?? {};\n let sdkPath: PlaydateSdkPath;\n\n try {\n sdkPath = getPlaydateSdkPath({ environment });\n } catch (error) {\n return {\n isHealthy: false,\n health: {\n sdkPathKnown: { healthStatus: HealthCheckStatusType.Unhealthy },\n },\n };\n }\n\n return {\n isHealthy: true,\n environment: new Environment({\n sdkPath,\n }),\n health: {\n sdkPathKnown: {\n healthStatus: HealthCheckStatusType.Healthy,\n argument: sdkPath,\n },\n },\n };\n};\n"],"names":["HealthCheckStatusType","Environment","getPlaydateSdkPath","createEnvironment","input","environment","process","env","sdkPath","error","isHealthy","health","sdkPathKnown","healthStatus","Unhealthy","Healthy","argument"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAAkCA,qBAAqB,QAAQ,cAAc;AAC7E,SAASC,WAAW,QAAQ,uBAAuB;AAEnD,SAASC,kBAAkB,QAAQ,+BAA+B;AAElE;;CAEC,GACD,OAAO,MAAMC,oBAAoB,CAACC;IAQ9B,MAAM,EAAEC,cAAcC,QAAQC,GAAG,EAAE,GAAGH,gBAAAA,QAAS,CAAC;IAChD,IAAII;IAEJ,IAAI;QACAA,UAAUN,mBAAmB;YAAEG;QAAY;IAC/C,EAAE,OAAOI,OAAO;QACZ,OAAO;YACHC,WAAW;YACXC,QAAQ;gBACJC,cAAc;oBAAEC,cAAcb,sBAAsBc,SAAS;gBAAC;YAClE;QACJ;IACJ;IAEA,OAAO;QACHJ,WAAW;QACXL,aAAa,IAAIJ,YAAY;YACzBO;QACJ;QACAG,QAAQ;YACJC,cAAc;gBACVC,cAAcb,sBAAsBe,OAAO;gBAC3CC,UAAUR;YACd;QACJ;IACJ;AACJ,EAAE"}
@@ -0,0 +1,7 @@
1
+ import { PlaydateSdkPath } from '../path/dto/PlaydateSdkPath.js';
2
+ export declare class Environment {
3
+ sdkPath: PlaydateSdkPath;
4
+ constructor({ sdkPath }: {
5
+ sdkPath: PlaydateSdkPath;
6
+ });
7
+ }
@@ -0,0 +1,7 @@
1
+ export class Environment {
2
+ constructor({ sdkPath }){
3
+ this.sdkPath = sdkPath;
4
+ }
5
+ }
6
+
7
+ //# sourceMappingURL=Environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/environment/dto/Environment.ts"],"sourcesContent":["import { PlaydateSdkPath } from '../path/dto/PlaydateSdkPath.js';\n\nexport class Environment {\n sdkPath: PlaydateSdkPath;\n\n public constructor({ sdkPath }: { sdkPath: PlaydateSdkPath }) {\n this.sdkPath = sdkPath;\n }\n}\n"],"names":["Environment","sdkPath"],"rangeMappings":";;;;","mappings":"AAEA,OAAO,MAAMA;IAGT,YAAmB,EAAEC,OAAO,EAAgC,CAAE;QAC1D,IAAI,CAACA,OAAO,GAAGA;IACnB;AACJ"}
@@ -0,0 +1,2 @@
1
+ export declare class EnvironmentError extends Error {
2
+ }
@@ -0,0 +1,4 @@
1
+ export class EnvironmentError extends Error {
2
+ }
3
+
4
+ //# sourceMappingURL=EnvironmentError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/environment/error/EnvironmentError.ts"],"sourcesContent":["export class EnvironmentError extends Error {}\n"],"names":["EnvironmentError","Error"],"rangeMappings":";","mappings":"AAAA,OAAO,MAAMA,yBAAyBC;AAAO"}
@@ -0,0 +1,5 @@
1
+ export declare class PlaydateSdkPath {
2
+ readonly path: string;
3
+ private constructor();
4
+ static fromString(path: string): PlaydateSdkPath;
5
+ }
@@ -0,0 +1,10 @@
1
+ export class PlaydateSdkPath {
2
+ static fromString(path) {
3
+ return new PlaydateSdkPath(path);
4
+ }
5
+ constructor(path){
6
+ this.path = path;
7
+ }
8
+ }
9
+
10
+ //# sourceMappingURL=PlaydateSdkPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/cli/src/environment/path/dto/PlaydateSdkPath.ts"],"sourcesContent":["export class PlaydateSdkPath {\n private constructor(public readonly path: string) {}\n\n public static fromString(path: string): PlaydateSdkPath {\n return new PlaydateSdkPath(path);\n }\n}\n"],"names":["PlaydateSdkPath","fromString","path"],"rangeMappings":";;;;;;;","mappings":"AAAA,OAAO,MAAMA;IAGT,OAAcC,WAAWC,IAAY,EAAmB;QACpD,OAAO,IAAIF,gBAAgBE;IAC/B;IAJA,YAAoB,AAAgBA,IAAY,CAAE;aAAdA,OAAAA;IAAe;AAKvD"}
@@ -0,0 +1,4 @@
1
+ import { EnvironmentError } from '../../error/EnvironmentError.js';
2
+ export declare class PlaydateSdkPathVariableNotSetError extends EnvironmentError {
3
+ constructor();
4
+ }
@@ -0,0 +1,8 @@
1
+ import { EnvironmentError } from '../../error/EnvironmentError.js';
2
+ export class PlaydateSdkPathVariableNotSetError extends EnvironmentError {
3
+ constructor(){
4
+ super('Playdate SDK path variable not set.');
5
+ }
6
+ }
7
+
8
+ //# sourceMappingURL=PlaydateSdkPathVariableNotSetError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../libs/cli/src/environment/path/error/PlaydateSdkPathVariableNotSetError.ts"],"sourcesContent":["import { EnvironmentError } from '../../error/EnvironmentError.js';\n\nexport class PlaydateSdkPathVariableNotSetError extends EnvironmentError {\n constructor() {\n super('Playdate SDK path variable not set.');\n }\n}\n"],"names":["EnvironmentError","PlaydateSdkPathVariableNotSetError","constructor"],"rangeMappings":";;;;;","mappings":"AAAA,SAASA,gBAAgB,QAAQ,kCAAkC;AAEnE,OAAO,MAAMC,2CAA2CD;IACpDE,aAAc;QACV,KAAK,CAAC;IACV;AACJ"}
@@ -0,0 +1,14 @@
1
+ import { PlaydateSdkPath } from './dto/PlaydateSdkPath.js';
2
+ /**
3
+ * Get the path to the Playdate SDK from the environment.
4
+ *
5
+ * @throws {PlaydateSdkPathVariableNotSetError} Thrown if the PLAYDATE_SDK_PATH environment variable is not set.
6
+ */
7
+ export declare const getPlaydateSdkPath: (input: {
8
+ /**
9
+ * The environment to get the Playdate SDK path from.
10
+ *
11
+ * Defaults to `process.env`.
12
+ */
13
+ environment: Record<string, unknown>;
14
+ }) => PlaydateSdkPath;
@@ -0,0 +1,16 @@
1
+ import * as process from 'node:process';
2
+ import { PlaydateSdkPath } from './dto/PlaydateSdkPath.js';
3
+ import { PlaydateSdkPathVariableNotSetError } from './error/PlaydateSdkPathVariableNotSetError.js';
4
+ /**
5
+ * Get the path to the Playdate SDK from the environment.
6
+ *
7
+ * @throws {PlaydateSdkPathVariableNotSetError} Thrown if the PLAYDATE_SDK_PATH environment variable is not set.
8
+ */ export const getPlaydateSdkPath = (input)=>{
9
+ const { environment = process.env } = input;
10
+ if (!('PLAYDATE_SDK_PATH' in environment)) {
11
+ throw new PlaydateSdkPathVariableNotSetError();
12
+ }
13
+ return PlaydateSdkPath.fromString(environment['PLAYDATE_SDK_PATH']);
14
+ };
15
+
16
+ //# sourceMappingURL=getPlaydateSdkPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../libs/cli/src/environment/path/getPlaydateSdkPath.ts"],"sourcesContent":["import * as process from 'node:process';\nimport { PlaydateSdkPath } from './dto/PlaydateSdkPath.js';\nimport { PlaydateSdkPathVariableNotSetError } from './error/PlaydateSdkPathVariableNotSetError.js';\n\n/**\n * Get the path to the Playdate SDK from the environment.\n *\n * @throws {PlaydateSdkPathVariableNotSetError} Thrown if the PLAYDATE_SDK_PATH environment variable is not set.\n */\nexport const getPlaydateSdkPath = (input: {\n /**\n * The environment to get the Playdate SDK path from.\n *\n * Defaults to `process.env`.\n */\n environment: Record<string, unknown>;\n}) => {\n const { environment = process.env } = input;\n\n if (!('PLAYDATE_SDK_PATH' in environment)) {\n throw new PlaydateSdkPathVariableNotSetError();\n }\n\n return PlaydateSdkPath.fromString(\n environment['PLAYDATE_SDK_PATH'] as string\n );\n};\n"],"names":["process","PlaydateSdkPath","PlaydateSdkPathVariableNotSetError","getPlaydateSdkPath","input","environment","env","fromString"],"rangeMappings":";;;;;;;;;;;;;","mappings":"AAAA,YAAYA,aAAa,eAAe;AACxC,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,kCAAkC,QAAQ,gDAAgD;AAEnG;;;;CAIC,GACD,OAAO,MAAMC,qBAAqB,CAACC;IAQ/B,MAAM,EAAEC,cAAcL,QAAQM,GAAG,EAAE,GAAGF;IAEtC,IAAI,CAAE,CAAA,uBAAuBC,WAAU,GAAI;QACvC,MAAM,IAAIH;IACd;IAEA,OAAOD,gBAAgBM,UAAU,CAC7BF,WAAW,CAAC,oBAAoB;AAExC,EAAE"}
package/src/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node --no-warnings=ExperimentalWarning
2
2
  export {};
package/src/index.js CHANGED
@@ -1,16 +1,33 @@
1
- #!/usr/bin/env node
2
- import yargs from 'yargs';
3
- import { hideBin } from 'yargs/helpers';
4
- import { readFileSync } from 'node:fs';
5
- import { dirname, join } from 'node:path';
6
- import { fileURLToPath } from 'node:url';
7
- const __dirname = dirname(fileURLToPath(import.meta.url));
8
- const packageJsonContents = readFileSync(join(__dirname, '..', 'package.json'), 'utf-8');
1
+ #!/usr/bin/env node --no-warnings=ExperimentalWarning
2
+ import { readFileSync } from 'fs';
3
+ import { join } from 'node:path';
4
+ import { Builtins, Cli } from 'clipanion';
5
+ import { CompileCommand } from './commands/CompileCommand/index.js';
6
+ import { DoctorCommand } from './commands/DoctorCommand.js';
7
+ import { GenerateTypesCommand } from './commands/GenerateTypes/index.js';
8
+ import { NewCommand } from './commands/NewCommand/NewCommand.js';
9
+ import { SimulatorCommand } from './commands/SimulatorCommand/index.js';
10
+ import { TranspileCommand } from './commands/TranspileCommand/index.js';
11
+ import { RootFolder } from './constants.js';
12
+ const packageJsonContents = readFileSync(join(RootFolder, 'package.json'), 'utf-8');
9
13
  const packageJson = JSON.parse(packageJsonContents);
10
- yargs(hideBin(process.argv)).version(packageJson.version).scriptName('crankscript').command('hello', 'says hello', {}, ()=>{
11
- console.info('Hello...');
12
- }).command('$0', 'says hi', {}, ()=>{
13
- console.info('Hi! Something here soon.');
14
- }).help().parse();
14
+ const args = process.argv.slice(2);
15
+ const cli = new Cli({
16
+ binaryLabel: 'crankscript',
17
+ binaryName: 'crankscript',
18
+ binaryVersion: packageJson.version
19
+ });
20
+ process.on('SIGINT', function() {
21
+ process.exit();
22
+ });
23
+ cli.register(Builtins.HelpCommand);
24
+ cli.register(Builtins.VersionCommand);
25
+ cli.register(DoctorCommand);
26
+ cli.register(NewCommand);
27
+ cli.register(TranspileCommand);
28
+ cli.register(CompileCommand);
29
+ cli.register(GenerateTypesCommand);
30
+ cli.register(SimulatorCommand);
31
+ cli.runExit(args);
15
32
 
16
33
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../libs/cli/src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nconst packageJsonContents = readFileSync(\n join(__dirname, '..', 'package.json'),\n 'utf-8'\n);\nconst packageJson = JSON.parse(packageJsonContents);\n\nyargs(hideBin(process.argv))\n .version(packageJson.version)\n .scriptName('crankscript')\n .command('hello', 'says hello', {}, () => {\n console.info('Hello...');\n })\n .command('$0', 'says hi', {}, () => {\n console.info('Hi! Something here soon.');\n })\n .help()\n .parse();\n"],"names":["yargs","hideBin","readFileSync","dirname","join","fileURLToPath","__dirname","url","packageJsonContents","packageJson","JSON","parse","process","argv","version","scriptName","command","console","info","help"],"rangeMappings":";;;;;;;;;;;;;","mappings":";AAEA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,YAAY,QAAQ,UAAU;AACvC,SAASC,OAAO,EAAEC,IAAI,QAAQ,YAAY;AAC1C,SAASC,aAAa,QAAQ,WAAW;AAEzC,MAAMC,YAAYH,QAAQE,cAAc,YAAYE,GAAG;AAEvD,MAAMC,sBAAsBN,aACxBE,KAAKE,WAAW,MAAM,iBACtB;AAEJ,MAAMG,cAAcC,KAAKC,KAAK,CAACH;AAE/BR,MAAMC,QAAQW,QAAQC,IAAI,GACrBC,OAAO,CAACL,YAAYK,OAAO,EAC3BC,UAAU,CAAC,eACXC,OAAO,CAAC,SAAS,cAAc,CAAC,GAAG;IAChCC,QAAQC,IAAI,CAAC;AACjB,GACCF,OAAO,CAAC,MAAM,WAAW,CAAC,GAAG;IAC1BC,QAAQC,IAAI,CAAC;AACjB,GACCC,IAAI,GACJR,KAAK"}
1
+ {"version":3,"sources":["../../../../libs/cli/src/index.ts"],"sourcesContent":["#!/usr/bin/env node --no-warnings=ExperimentalWarning\n\nimport { readFileSync } from 'fs';\nimport { join } from 'node:path';\nimport { Builtins, Cli } from 'clipanion';\nimport { CompileCommand } from '@/cli/commands/CompileCommand/index.js';\nimport { DoctorCommand } from '@/cli/commands/DoctorCommand.js';\nimport { GenerateTypesCommand } from '@/cli/commands/GenerateTypes/index.js';\nimport { NewCommand } from '@/cli/commands/NewCommand/NewCommand.js';\nimport { SimulatorCommand } from '@/cli/commands/SimulatorCommand/index.js';\nimport { TranspileCommand } from '@/cli/commands/TranspileCommand/index.js';\nimport { RootFolder } from '@/cli/constants.js';\n\nconst packageJsonContents = readFileSync(\n join(RootFolder, 'package.json'),\n 'utf-8'\n);\nconst packageJson = JSON.parse(packageJsonContents);\n\nconst args = process.argv.slice(2);\n\nconst cli = new Cli({\n binaryLabel: 'crankscript',\n binaryName: 'crankscript',\n binaryVersion: packageJson.version,\n});\n\nprocess.on('SIGINT', function () {\n process.exit();\n});\n\ncli.register(Builtins.HelpCommand);\ncli.register(Builtins.VersionCommand);\ncli.register(DoctorCommand);\ncli.register(NewCommand);\ncli.register(TranspileCommand);\ncli.register(CompileCommand);\ncli.register(GenerateTypesCommand);\ncli.register(SimulatorCommand);\ncli.runExit(args);\n"],"names":["readFileSync","join","Builtins","Cli","CompileCommand","DoctorCommand","GenerateTypesCommand","NewCommand","SimulatorCommand","TranspileCommand","RootFolder","packageJsonContents","packageJson","JSON","parse","args","process","argv","slice","cli","binaryLabel","binaryName","binaryVersion","version","on","exit","register","HelpCommand","VersionCommand","runExit"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAEA,SAASA,YAAY,QAAQ,KAAK;AAClC,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,QAAQ,EAAEC,GAAG,QAAQ,YAAY;AAC1C,SAASC,cAAc,QAAQ,yCAAyC;AACxE,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,oBAAoB,QAAQ,wCAAwC;AAC7E,SAASC,UAAU,QAAQ,0CAA0C;AACrE,SAASC,gBAAgB,QAAQ,2CAA2C;AAC5E,SAASC,gBAAgB,QAAQ,2CAA2C;AAC5E,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,MAAMC,sBAAsBX,aACxBC,KAAKS,YAAY,iBACjB;AAEJ,MAAME,cAAcC,KAAKC,KAAK,CAACH;AAE/B,MAAMI,OAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC;AAEhC,MAAMC,MAAM,IAAIhB,IAAI;IAChBiB,aAAa;IACbC,YAAY;IACZC,eAAeV,YAAYW,OAAO;AACtC;AAEAP,QAAQQ,EAAE,CAAC,UAAU;IACjBR,QAAQS,IAAI;AAChB;AAEAN,IAAIO,QAAQ,CAACxB,SAASyB,WAAW;AACjCR,IAAIO,QAAQ,CAACxB,SAAS0B,cAAc;AACpCT,IAAIO,QAAQ,CAACrB;AACbc,IAAIO,QAAQ,CAACnB;AACbY,IAAIO,QAAQ,CAACjB;AACbU,IAAIO,QAAQ,CAACtB;AACbe,IAAIO,QAAQ,CAACpB;AACba,IAAIO,QAAQ,CAAClB;AACbW,IAAIU,OAAO,CAACd"}