crankscript 0.11.1 → 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/transformPropertyAccessExpression/getTransformPropertyAccessExpression.js +1 -5
- package/assets/transformPropertyAccessExpression/getTransformPropertyAccessExpression.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js +10 -1
- package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js.map +1 -1
- package/src/commands/GenerateTypes/hooks/useGetVersion.d.ts +1 -0
- package/src/commands/GenerateTypes/utils/createTypeProvider.d.ts +1 -0
- package/src/commands/GenerateTypes/utils/createTypeProvider.js +8 -0
- package/src/commands/GenerateTypes/utils/createTypeProvider.js.map +1 -1
- package/src/types.d.ts +1 -0
- package/src/types.js.map +1 -1
@@ -8,13 +8,9 @@ Object.defineProperty(exports, "getTransformPropertyAccessExpression", {
|
|
8
8
|
return getTransformPropertyAccessExpression;
|
9
9
|
}
|
10
10
|
});
|
11
|
-
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
12
|
-
const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
|
13
11
|
const getTransformPropertyAccessExpression = (importMap)=>{
|
14
12
|
return (node, context)=>{
|
15
|
-
|
16
|
-
importMap.processName(node.name.text);
|
17
|
-
}
|
13
|
+
importMap.processName(node.name.text);
|
18
14
|
return context.superTransformExpression(node);
|
19
15
|
};
|
20
16
|
};
|
package/assets/transformPropertyAccessExpression/getTransformPropertyAccessExpression.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformPropertyAccessExpression/getTransformPropertyAccessExpression.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor } from 'typescript-to-lua';\nimport { ImportMap } from '../ImportMap';\n\nexport const getTransformPropertyAccessExpression = (importMap: ImportMap) => {\n return ((node, context) => {\n
|
1
|
+
{"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformPropertyAccessExpression/getTransformPropertyAccessExpression.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor } from 'typescript-to-lua';\nimport { ImportMap } from '../ImportMap';\n\nexport const getTransformPropertyAccessExpression = (importMap: ImportMap) => {\n return ((node, context) => {\n importMap.processName(node.name.text);\n\n return context.superTransformExpression(node);\n }) satisfies FunctionVisitor<ts.PropertyAccessExpression>;\n};\n"],"names":["getTransformPropertyAccessExpression","importMap","node","context","processName","name","text","superTransformExpression"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";;;;+BAIaA;;;eAAAA;;;AAAN,MAAMA,uCAAuC,CAACC;IACjD,OAAQ,CAACC,MAAMC;QACXF,UAAUG,WAAW,CAACF,KAAKG,IAAI,CAACC,IAAI;QAEpC,OAAOH,QAAQI,wBAAwB,CAACL;IAC5C;AACJ"}
|
package/package.json
CHANGED
@@ -101,7 +101,16 @@ const generateNamespace = (apiObject, incomingSubject, typeProvider, namespace,
|
|
101
101
|
}, typeProvider.getFunctionOverrideOptions(method)));
|
102
102
|
}
|
103
103
|
}
|
104
|
-
|
104
|
+
const dynamicProperties = typeProvider.getDynamicProperties(`${namespace}.${name}`).map((dynamicProperty)=>({
|
105
|
+
name: dynamicProperty.name,
|
106
|
+
docs: dynamicProperty.docs,
|
107
|
+
namespaces: namespace.split('.'),
|
108
|
+
signature: `${namespace}.${name}.${dynamicProperty.name}`
|
109
|
+
}));
|
110
|
+
for (const property of [
|
111
|
+
...apiObject.properties,
|
112
|
+
...dynamicProperties
|
113
|
+
]){
|
105
114
|
const propertyDetails = typeProvider.getPropertyDetails(property);
|
106
115
|
if (propertiesSubject) {
|
107
116
|
propertiesSubject.addProperty({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/hooks/useGenerateTypeFile.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { useMemo } from 'react';\nimport {\n ClassDeclaration,\n FunctionDeclarationStructure,\n MethodDeclarationStructure,\n ModuleDeclaration,\n Project,\n SourceFile,\n VariableDeclarationKind,\n} from 'ts-morph';\nimport { createTypeProvider } from '@/cli/commands/GenerateTypes/utils/createTypeProvider.js';\nimport { TypescriptReservedNamed } from '@/cli/constants.js';\nimport { ApiDefinitions, ApiObject, CheckListItem } from '@/cli/types.js';\n\nexport const useGenerateTypeFile = (\n path: string,\n definitions: ApiDefinitions | null,\n typeProvider: ReturnType<typeof createTypeProvider> | null\n) => {\n const generateTypeFile = useMemo(() => {\n return {\n waitingDescription: 'Waiting to generate the type file...',\n errorDescription: 'Failed to generate the type file',\n finishedDescription: () => 'Type file generated',\n runningDescription: 'Generating the type file...',\n runner: async () => {\n if (!definitions) {\n throw new Error('Definitions are not set');\n }\n\n if (!typeProvider) {\n throw new Error('Type provider is not set');\n }\n\n const project = new Project();\n const typeFile = project.createSourceFile(path, '', {\n overwrite: true,\n });\n\n const globalNamespace = definitions.global;\n\n typeFile.addStatements(typeProvider.getGlobalStatements());\n\n generateNamespace(globalNamespace, typeFile, typeProvider, '');\n\n writeFileSync(\n path,\n typeFile.getFullText().replace('*/', '*/\\n')\n );\n },\n ready: definitions !== null && typeProvider !== null,\n } satisfies CheckListItem<void>;\n }, [definitions, typeProvider]);\n\n return {\n generateTypeFile,\n };\n};\n\nconst generateNamespace = (\n apiObject: ApiObject,\n incomingSubject: SourceFile | ModuleDeclaration,\n typeProvider: ReturnType<typeof createTypeProvider>,\n namespace: string,\n name?: string\n) => {\n let subject = incomingSubject;\n const fullNamespaceName = [namespace, name].filter(Boolean).join('.');\n\n if (name) {\n subject = incomingSubject.addModule({\n name,\n });\n }\n\n if (name === 'playdate') {\n subject.addStatements(typeProvider.getStatements());\n }\n\n for (const constant of typeProvider.getConstants(fullNamespaceName)) {\n subject.addVariableStatement({\n declarations: [constant],\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n });\n }\n\n for (const func of apiObject.functions) {\n const isFunctionNameReserved = TypescriptReservedNamed.includes(\n func.name\n );\n const resolvedName = `_${func.name}`;\n const parameters = typeProvider.getParameters(func);\n\n subject.addFunction({\n name: isFunctionNameReserved ? resolvedName : func.name,\n docs: [func.docs],\n parameters,\n returnType: typeProvider.getFunctionReturnType(func),\n isExported: !!name,\n ...(typeProvider.getFunctionOverrideOptions(\n func\n ) as FunctionDeclarationStructure),\n });\n\n if (isFunctionNameReserved) {\n subject.addExportDeclaration({\n namedExports: [\n {\n name: resolvedName,\n alias: func.name,\n },\n ],\n });\n }\n }\n\n let propertiesSubject: ClassDeclaration | null = null;\n\n if (name && apiObject.methods.length > 0) {\n const typeClass = incomingSubject.addClass({\n name,\n ...typeProvider.getClassOptions(fullNamespaceName),\n });\n propertiesSubject = typeClass;\n\n for (const method of apiObject.methods) {\n const parameters = typeProvider.getParameters(method);\n\n typeClass.addMethod({\n name: method.name,\n docs: [method.docs],\n parameters,\n returnType: typeProvider.getFunctionReturnType(method),\n ...(typeProvider.getFunctionOverrideOptions(\n method\n ) as Partial<MethodDeclarationStructure>),\n });\n }\n }\n\n for (const property of apiObject.properties) {\n const propertyDetails = typeProvider.getPropertyDetails(property);\n\n if (propertiesSubject) {\n propertiesSubject.addProperty({\n name: property.name,\n docs: [property.docs],\n type: propertyDetails.type,\n isStatic: propertyDetails.isStatic,\n isReadonly: propertyDetails.isReadOnly,\n });\n } else {\n subject.addVariableStatement({\n docs: [property.docs],\n declarations: [\n {\n name: property.name,\n type: propertyDetails.type,\n },\n ],\n });\n }\n }\n\n for (const eachNamespace of Object.entries(apiObject.namespaces)) {\n generateNamespace(\n eachNamespace[1],\n subject,\n typeProvider,\n fullNamespaceName,\n eachNamespace[0]\n );\n }\n};\n"],"names":["writeFileSync","useMemo","Project","VariableDeclarationKind","TypescriptReservedNamed","useGenerateTypeFile","path","definitions","typeProvider","generateTypeFile","waitingDescription","errorDescription","finishedDescription","runningDescription","runner","Error","project","typeFile","createSourceFile","overwrite","globalNamespace","global","addStatements","getGlobalStatements","generateNamespace","getFullText","replace","ready","apiObject","incomingSubject","namespace","name","subject","fullNamespaceName","filter","Boolean","join","addModule","getStatements","constant","getConstants","addVariableStatement","declarations","isExported","declarationKind","Const","func","functions","isFunctionNameReserved","includes","resolvedName","parameters","getParameters","addFunction","docs","returnType","getFunctionReturnType","getFunctionOverrideOptions","addExportDeclaration","namedExports","alias","propertiesSubject","methods","length","typeClass","addClass","getClassOptions","method","addMethod","property","properties","propertyDetails","getPropertyDetails","addProperty","type","isStatic","isReadonly","isReadOnly","eachNamespace","Object","entries","namespaces"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/hooks/useGenerateTypeFile.ts"],"sourcesContent":["import { writeFileSync } from 'node:fs';\nimport { useMemo } from 'react';\nimport {\n ClassDeclaration,\n FunctionDeclarationStructure,\n MethodDeclarationStructure,\n ModuleDeclaration,\n Project,\n SourceFile,\n VariableDeclarationKind,\n} from 'ts-morph';\nimport { createTypeProvider } from '@/cli/commands/GenerateTypes/utils/createTypeProvider.js';\nimport { TypescriptReservedNamed } from '@/cli/constants.js';\nimport {\n ApiDefinitions,\n ApiObject,\n CheckListItem,\n PropertyDescription,\n} from '@/cli/types.js';\n\nexport const useGenerateTypeFile = (\n path: string,\n definitions: ApiDefinitions | null,\n typeProvider: ReturnType<typeof createTypeProvider> | null\n) => {\n const generateTypeFile = useMemo(() => {\n return {\n waitingDescription: 'Waiting to generate the type file...',\n errorDescription: 'Failed to generate the type file',\n finishedDescription: () => 'Type file generated',\n runningDescription: 'Generating the type file...',\n runner: async () => {\n if (!definitions) {\n throw new Error('Definitions are not set');\n }\n\n if (!typeProvider) {\n throw new Error('Type provider is not set');\n }\n\n const project = new Project();\n const typeFile = project.createSourceFile(path, '', {\n overwrite: true,\n });\n\n const globalNamespace = definitions.global;\n\n typeFile.addStatements(typeProvider.getGlobalStatements());\n\n generateNamespace(globalNamespace, typeFile, typeProvider, '');\n\n writeFileSync(\n path,\n typeFile.getFullText().replace('*/', '*/\\n')\n );\n },\n ready: definitions !== null && typeProvider !== null,\n } satisfies CheckListItem<void>;\n }, [definitions, typeProvider]);\n\n return {\n generateTypeFile,\n };\n};\n\nconst generateNamespace = (\n apiObject: ApiObject,\n incomingSubject: SourceFile | ModuleDeclaration,\n typeProvider: ReturnType<typeof createTypeProvider>,\n namespace: string,\n name?: string\n) => {\n let subject = incomingSubject;\n const fullNamespaceName = [namespace, name].filter(Boolean).join('.');\n\n if (name) {\n subject = incomingSubject.addModule({\n name,\n });\n }\n\n if (name === 'playdate') {\n subject.addStatements(typeProvider.getStatements());\n }\n\n for (const constant of typeProvider.getConstants(fullNamespaceName)) {\n subject.addVariableStatement({\n declarations: [constant],\n isExported: true,\n declarationKind: VariableDeclarationKind.Const,\n });\n }\n\n for (const func of apiObject.functions) {\n const isFunctionNameReserved = TypescriptReservedNamed.includes(\n func.name\n );\n const resolvedName = `_${func.name}`;\n const parameters = typeProvider.getParameters(func);\n\n subject.addFunction({\n name: isFunctionNameReserved ? resolvedName : func.name,\n docs: [func.docs],\n parameters,\n returnType: typeProvider.getFunctionReturnType(func),\n isExported: !!name,\n ...(typeProvider.getFunctionOverrideOptions(\n func\n ) as FunctionDeclarationStructure),\n });\n\n if (isFunctionNameReserved) {\n subject.addExportDeclaration({\n namedExports: [\n {\n name: resolvedName,\n alias: func.name,\n },\n ],\n });\n }\n }\n\n let propertiesSubject: ClassDeclaration | null = null;\n\n if (name && apiObject.methods.length > 0) {\n const typeClass = incomingSubject.addClass({\n name,\n ...typeProvider.getClassOptions(fullNamespaceName),\n });\n propertiesSubject = typeClass;\n\n for (const method of apiObject.methods) {\n const parameters = typeProvider.getParameters(method);\n\n typeClass.addMethod({\n name: method.name,\n docs: [method.docs],\n parameters,\n returnType: typeProvider.getFunctionReturnType(method),\n ...(typeProvider.getFunctionOverrideOptions(\n method\n ) as Partial<MethodDeclarationStructure>),\n });\n }\n }\n\n const dynamicProperties = typeProvider\n .getDynamicProperties(`${namespace}.${name}`)\n .map(\n (dynamicProperty) =>\n ({\n name: dynamicProperty.name,\n docs: dynamicProperty.docs,\n namespaces: namespace.split('.'),\n signature: `${namespace}.${name}.${dynamicProperty.name}`,\n } satisfies PropertyDescription)\n );\n\n for (const property of [...apiObject.properties, ...dynamicProperties]) {\n const propertyDetails = typeProvider.getPropertyDetails(property);\n\n if (propertiesSubject) {\n propertiesSubject.addProperty({\n name: property.name,\n docs: [property.docs],\n type: propertyDetails.type,\n isStatic: propertyDetails.isStatic,\n isReadonly: propertyDetails.isReadOnly,\n });\n } else {\n subject.addVariableStatement({\n docs: [property.docs],\n declarations: [\n {\n name: property.name,\n type: propertyDetails.type,\n },\n ],\n });\n }\n }\n\n for (const eachNamespace of Object.entries(apiObject.namespaces)) {\n generateNamespace(\n eachNamespace[1],\n subject,\n typeProvider,\n fullNamespaceName,\n eachNamespace[0]\n );\n }\n};\n"],"names":["writeFileSync","useMemo","Project","VariableDeclarationKind","TypescriptReservedNamed","useGenerateTypeFile","path","definitions","typeProvider","generateTypeFile","waitingDescription","errorDescription","finishedDescription","runningDescription","runner","Error","project","typeFile","createSourceFile","overwrite","globalNamespace","global","addStatements","getGlobalStatements","generateNamespace","getFullText","replace","ready","apiObject","incomingSubject","namespace","name","subject","fullNamespaceName","filter","Boolean","join","addModule","getStatements","constant","getConstants","addVariableStatement","declarations","isExported","declarationKind","Const","func","functions","isFunctionNameReserved","includes","resolvedName","parameters","getParameters","addFunction","docs","returnType","getFunctionReturnType","getFunctionOverrideOptions","addExportDeclaration","namedExports","alias","propertiesSubject","methods","length","typeClass","addClass","getClassOptions","method","addMethod","dynamicProperties","getDynamicProperties","map","dynamicProperty","namespaces","split","signature","property","properties","propertyDetails","getPropertyDetails","addProperty","type","isStatic","isReadonly","isReadOnly","eachNamespace","Object","entries"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
@@ -14,6 +14,7 @@ export declare const useGetVersion: (version: PlaydateSdkVersion) => {
|
|
14
14
|
getStatements: () => string[];
|
15
15
|
getClassOptions: (className: string) => Partial<import("ts-morph").ClassDeclarationStructure>;
|
16
16
|
getPropertyDetails: (property: import("../../../types.js").PropertyDescription) => import("../../../types.js").PropertyDetails;
|
17
|
+
getDynamicProperties: (namespace: string) => Pick<import("../../../types.js").PropertyDescription, "name" | "docs">[];
|
17
18
|
getFunctionReturnType: (func: import("../../../types.js").FunctionDescription) => string;
|
18
19
|
getParameterDetails: (func: import("../../../types.js").FunctionDescription, parameter: string) => import("../../../types.js").ParameterDetails;
|
19
20
|
getParameters: (func: import("../../../types.js").FunctionDescription) => import("ts-morph").FunctionDeclarationStructure["parameters"];
|
@@ -5,6 +5,7 @@ export declare const createTypeProvider: (version: string) => {
|
|
5
5
|
getStatements: () => string[];
|
6
6
|
getClassOptions: (className: string) => Partial<import("ts-morph").ClassDeclarationStructure>;
|
7
7
|
getPropertyDetails: (property: PropertyDescription) => PropertyDetails;
|
8
|
+
getDynamicProperties: (namespace: string) => Pick<PropertyDescription, "name" | "docs">[];
|
8
9
|
getFunctionReturnType: (func: FunctionDescription) => string;
|
9
10
|
getParameterDetails: (func: FunctionDescription, parameter: string) => ParameterDetails;
|
10
11
|
getParameters: (func: FunctionDescription) => FunctionDeclarationStructure["parameters"];
|
@@ -15,6 +15,7 @@ export const createTypeProvider = (version)=>{
|
|
15
15
|
statements: [],
|
16
16
|
classes: {},
|
17
17
|
properties: {},
|
18
|
+
dynamicProperties: {},
|
18
19
|
functions: {}
|
19
20
|
};
|
20
21
|
const provider = {
|
@@ -23,6 +24,7 @@ export const createTypeProvider = (version)=>{
|
|
23
24
|
statements: fallbackProvider.statements,
|
24
25
|
classes: fallbackProvider.classes,
|
25
26
|
properties: {},
|
27
|
+
dynamicProperties: {},
|
26
28
|
functions: {}
|
27
29
|
};
|
28
30
|
const visitedProperties = new Map();
|
@@ -54,6 +56,11 @@ export const createTypeProvider = (version)=>{
|
|
54
56
|
visitedProperties.set(property.signature, result);
|
55
57
|
return result;
|
56
58
|
};
|
59
|
+
const getDynamicProperties = (namespace)=>{
|
60
|
+
var _provider_dynamicProperties, _fallbackProvider_dynamicProperties;
|
61
|
+
var _provider_dynamicProperties_namespace, _ref;
|
62
|
+
return (_ref = (_provider_dynamicProperties_namespace = (_provider_dynamicProperties = provider.dynamicProperties) == null ? void 0 : _provider_dynamicProperties[namespace]) != null ? _provider_dynamicProperties_namespace : (_fallbackProvider_dynamicProperties = fallbackProvider.dynamicProperties) == null ? void 0 : _fallbackProvider_dynamicProperties[namespace]) != null ? _ref : [];
|
63
|
+
};
|
57
64
|
const getFunctionDetails = (func)=>{
|
58
65
|
if (visitedFunctions.has(func.signature)) {
|
59
66
|
return visitedFunctions.get(func.signature);
|
@@ -157,6 +164,7 @@ export const createTypeProvider = (version)=>{
|
|
157
164
|
getStatements,
|
158
165
|
getClassOptions,
|
159
166
|
getPropertyDetails,
|
167
|
+
getDynamicProperties,
|
160
168
|
getFunctionReturnType,
|
161
169
|
getParameterDetails,
|
162
170
|
getParameters,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/utils/createTypeProvider.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FunctionDeclarationStructure,\n ParameterDeclarationStructure,\n StructureKind,\n VariableDeclarationStructure,\n} from 'ts-morph';\nimport { DataFolder } from '@/cli/constants.js';\nimport {\n FunctionDescription,\n FunctionDetails,\n ParameterDetails,\n PropertyDescription,\n PropertyDetails,\n TypeProviderData,\n} from '@/cli/types.js';\n\nfunction kebabToCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nexport const createTypeProvider = (version: string) => {\n const path = join(DataFolder, `${version}.json`);\n const fallbackProvider = existsSync(path)\n ? (JSON.parse(readFileSync(path, 'utf-8')) as TypeProviderData)\n : ({\n globalStatements: [],\n constants: {},\n statements: [],\n classes: {},\n properties: {},\n functions: {},\n } satisfies TypeProviderData);\n const provider = {\n globalStatements: fallbackProvider.globalStatements,\n constants: fallbackProvider.constants,\n statements: fallbackProvider.statements,\n classes: fallbackProvider.classes,\n properties: {},\n functions: {},\n } as TypeProviderData;\n const visitedProperties = new Map<string, PropertyDetails>();\n const visitedFunctions = new Map<string, FunctionDetails>();\n\n const getClassOptions = (className: string) => {\n return provider.classes[className] ?? {};\n };\n\n const getPropertyDetails = (property: PropertyDescription) => {\n if (visitedProperties.has(property.signature)) {\n return visitedProperties.get(property.signature) as PropertyDetails;\n }\n\n let result: PropertyDetails;\n let prop = provider.properties[property.signature];\n\n if (!prop) {\n prop = fallbackProvider.properties[property.signature];\n }\n\n if (!prop) {\n const details = {\n signature: property.signature,\n type: 'any',\n } satisfies PropertyDetails;\n\n provider.properties[property.signature] = details;\n\n result = details;\n } else {\n provider.properties[property.signature] = prop;\n\n result = prop;\n }\n\n visitedProperties.set(property.signature, result);\n\n return result;\n };\n\n const getFunctionDetails = (func: FunctionDescription): FunctionDetails => {\n if (visitedFunctions.has(func.signature)) {\n return visitedFunctions.get(func.signature) as FunctionDetails;\n }\n\n let result: FunctionDetails;\n let fn = provider.functions[func.signature];\n\n if (!fn) {\n fn = fallbackProvider.functions[func.signature];\n }\n\n if (!fn) {\n const details = {\n signature: func.signature,\n parameters: func.parameters.map((p) => ({\n name: p.name,\n type: 'any',\n })),\n returnType: 'any',\n } satisfies FunctionDetails;\n\n provider.functions[func.signature] = details;\n\n result = details;\n } else {\n provider.functions[func.signature] = fn;\n\n result = fn;\n }\n\n visitedFunctions.set(func.signature, result);\n\n return result;\n };\n\n const getGlobalStatements = () => {\n return provider.globalStatements;\n };\n\n const getStatements = () => {\n return provider.statements;\n };\n\n const getFunctionReturnType = (func: FunctionDescription) => {\n const { returnType } = getFunctionDetails(func);\n\n return returnType;\n };\n\n const getParameterDetails = (\n func: FunctionDescription,\n parameter: string\n ) => {\n const { parameters } = getFunctionDetails(func);\n const param = parameters.find((p) => p.name === parameter);\n\n if (!param) {\n return {\n name: parameter,\n type: 'any',\n } satisfies ParameterDetails;\n }\n\n return param;\n };\n\n const getParameters = (\n func: FunctionDescription\n ): FunctionDeclarationStructure['parameters'] => {\n const { overrideParameters = false, parameters } =\n getFunctionDetails(func);\n const getParameterFromDetails = (parameter: ParameterDetails) => {\n return {\n kind: StructureKind.Parameter,\n name: kebabToCamelCase(parameter.name),\n type: parameter.type,\n ...(parameter.overrideOptions ?? {}),\n } satisfies ParameterDeclarationStructure;\n };\n\n if (overrideParameters) {\n return parameters.map((details) => {\n return getParameterFromDetails(details);\n });\n }\n\n return func.parameters.map((parameter) => {\n const details = getParameterDetails(func, parameter.name);\n\n return {\n hasQuestionToken: !parameter.required,\n ...getParameterFromDetails(details),\n } satisfies ParameterDeclarationStructure;\n });\n };\n\n const getFunctionOverrideOptions = (func: FunctionDescription) => {\n const options = getFunctionDetails(func).overrideOptions ?? {};\n\n if ('overloads' in options && Array.isArray(options.overloads)) {\n return {\n overloads: options.overloads.map((overload) => ({\n ...overload,\n docs: [func.docs],\n })),\n };\n }\n\n return options;\n };\n\n const getConstants = (fullNamespace: string) => {\n return (provider.constants[fullNamespace] ?? []).map((constant) => {\n return {\n kind: StructureKind.VariableDeclaration,\n name: typeof constant === 'string' ? constant : constant.name,\n type: typeof constant === 'string' ? 'number' : constant.type,\n } satisfies VariableDeclarationStructure;\n });\n };\n\n const save = () => {\n const contents = JSON.stringify(provider, null, 4) + '\\n';\n\n writeFileSync(path, contents, 'utf-8');\n };\n\n return {\n getGlobalStatements,\n getStatements,\n getClassOptions,\n getPropertyDetails,\n getFunctionReturnType,\n getParameterDetails,\n getParameters,\n getFunctionOverrideOptions,\n getConstants,\n save,\n };\n};\n"],"names":["readFileSync","existsSync","writeFileSync","join","StructureKind","DataFolder","kebabToCamelCase","str","replace","_","letter","toUpperCase","createTypeProvider","version","path","fallbackProvider","JSON","parse","globalStatements","constants","statements","classes","properties","functions","provider","visitedProperties","Map","visitedFunctions","getClassOptions","className","getPropertyDetails","property","has","signature","get","result","prop","details","type","set","getFunctionDetails","func","fn","parameters","map","p","name","returnType","getGlobalStatements","getStatements","getFunctionReturnType","getParameterDetails","parameter","param","find","getParameters","overrideParameters","getParameterFromDetails","kind","Parameter","overrideOptions","hasQuestionToken","required","getFunctionOverrideOptions","options","Array","isArray","overloads","overload","docs","getConstants","fullNamespace","constant","VariableDeclaration","save","contents","stringify"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/cli/src/commands/GenerateTypes/utils/createTypeProvider.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { existsSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FunctionDeclarationStructure,\n ParameterDeclarationStructure,\n StructureKind,\n VariableDeclarationStructure,\n} from 'ts-morph';\nimport { DataFolder } from '@/cli/constants.js';\nimport {\n FunctionDescription,\n FunctionDetails,\n ParameterDetails,\n PropertyDescription,\n PropertyDetails,\n TypeProviderData,\n} from '@/cli/types.js';\n\nfunction kebabToCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\nexport const createTypeProvider = (version: string) => {\n const path = join(DataFolder, `${version}.json`);\n const fallbackProvider = existsSync(path)\n ? (JSON.parse(readFileSync(path, 'utf-8')) as TypeProviderData)\n : ({\n globalStatements: [],\n constants: {},\n statements: [],\n classes: {},\n properties: {},\n dynamicProperties: {},\n functions: {},\n } satisfies TypeProviderData);\n const provider = {\n globalStatements: fallbackProvider.globalStatements,\n constants: fallbackProvider.constants,\n statements: fallbackProvider.statements,\n classes: fallbackProvider.classes,\n properties: {},\n dynamicProperties: {},\n functions: {},\n } as TypeProviderData;\n const visitedProperties = new Map<string, PropertyDetails>();\n const visitedFunctions = new Map<string, FunctionDetails>();\n\n const getClassOptions = (className: string) => {\n return provider.classes[className] ?? {};\n };\n\n const getPropertyDetails = (property: PropertyDescription) => {\n if (visitedProperties.has(property.signature)) {\n return visitedProperties.get(property.signature) as PropertyDetails;\n }\n\n let result: PropertyDetails;\n let prop = provider.properties[property.signature];\n\n if (!prop) {\n prop = fallbackProvider.properties[property.signature];\n }\n\n if (!prop) {\n const details = {\n signature: property.signature,\n type: 'any',\n } satisfies PropertyDetails;\n\n provider.properties[property.signature] = details;\n\n result = details;\n } else {\n provider.properties[property.signature] = prop;\n\n result = prop;\n }\n\n visitedProperties.set(property.signature, result);\n\n return result;\n };\n\n const getDynamicProperties = (namespace: string) => {\n return (\n provider.dynamicProperties?.[namespace] ??\n fallbackProvider.dynamicProperties?.[namespace] ??\n []\n );\n };\n\n const getFunctionDetails = (func: FunctionDescription): FunctionDetails => {\n if (visitedFunctions.has(func.signature)) {\n return visitedFunctions.get(func.signature) as FunctionDetails;\n }\n\n let result: FunctionDetails;\n let fn = provider.functions[func.signature];\n\n if (!fn) {\n fn = fallbackProvider.functions[func.signature];\n }\n\n if (!fn) {\n const details = {\n signature: func.signature,\n parameters: func.parameters.map((p) => ({\n name: p.name,\n type: 'any',\n })),\n returnType: 'any',\n } satisfies FunctionDetails;\n\n provider.functions[func.signature] = details;\n\n result = details;\n } else {\n provider.functions[func.signature] = fn;\n\n result = fn;\n }\n\n visitedFunctions.set(func.signature, result);\n\n return result;\n };\n\n const getGlobalStatements = () => {\n return provider.globalStatements;\n };\n\n const getStatements = () => {\n return provider.statements;\n };\n\n const getFunctionReturnType = (func: FunctionDescription) => {\n const { returnType } = getFunctionDetails(func);\n\n return returnType;\n };\n\n const getParameterDetails = (\n func: FunctionDescription,\n parameter: string\n ) => {\n const { parameters } = getFunctionDetails(func);\n const param = parameters.find((p) => p.name === parameter);\n\n if (!param) {\n return {\n name: parameter,\n type: 'any',\n } satisfies ParameterDetails;\n }\n\n return param;\n };\n\n const getParameters = (\n func: FunctionDescription\n ): FunctionDeclarationStructure['parameters'] => {\n const { overrideParameters = false, parameters } =\n getFunctionDetails(func);\n const getParameterFromDetails = (parameter: ParameterDetails) => {\n return {\n kind: StructureKind.Parameter,\n name: kebabToCamelCase(parameter.name),\n type: parameter.type,\n ...(parameter.overrideOptions ?? {}),\n } satisfies ParameterDeclarationStructure;\n };\n\n if (overrideParameters) {\n return parameters.map((details) => {\n return getParameterFromDetails(details);\n });\n }\n\n return func.parameters.map((parameter) => {\n const details = getParameterDetails(func, parameter.name);\n\n return {\n hasQuestionToken: !parameter.required,\n ...getParameterFromDetails(details),\n } satisfies ParameterDeclarationStructure;\n });\n };\n\n const getFunctionOverrideOptions = (func: FunctionDescription) => {\n const options = getFunctionDetails(func).overrideOptions ?? {};\n\n if ('overloads' in options && Array.isArray(options.overloads)) {\n return {\n overloads: options.overloads.map((overload) => ({\n ...overload,\n docs: [func.docs],\n })),\n };\n }\n\n return options;\n };\n\n const getConstants = (fullNamespace: string) => {\n return (provider.constants[fullNamespace] ?? []).map((constant) => {\n return {\n kind: StructureKind.VariableDeclaration,\n name: typeof constant === 'string' ? constant : constant.name,\n type: typeof constant === 'string' ? 'number' : constant.type,\n } satisfies VariableDeclarationStructure;\n });\n };\n\n const save = () => {\n const contents = JSON.stringify(provider, null, 4) + '\\n';\n\n writeFileSync(path, contents, 'utf-8');\n };\n\n return {\n getGlobalStatements,\n getStatements,\n getClassOptions,\n getPropertyDetails,\n getDynamicProperties,\n getFunctionReturnType,\n getParameterDetails,\n getParameters,\n getFunctionOverrideOptions,\n getConstants,\n save,\n };\n};\n"],"names":["readFileSync","existsSync","writeFileSync","join","StructureKind","DataFolder","kebabToCamelCase","str","replace","_","letter","toUpperCase","createTypeProvider","version","path","fallbackProvider","JSON","parse","globalStatements","constants","statements","classes","properties","dynamicProperties","functions","provider","visitedProperties","Map","visitedFunctions","getClassOptions","className","getPropertyDetails","property","has","signature","get","result","prop","details","type","set","getDynamicProperties","namespace","getFunctionDetails","func","fn","parameters","map","p","name","returnType","getGlobalStatements","getStatements","getFunctionReturnType","getParameterDetails","parameter","param","find","getParameters","overrideParameters","getParameterFromDetails","kind","Parameter","overrideOptions","hasQuestionToken","required","getFunctionOverrideOptions","options","Array","isArray","overloads","overload","docs","getConstants","fullNamespace","constant","VariableDeclaration","save","contents","stringify"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/src/types.d.ts
CHANGED
@@ -91,6 +91,7 @@ export type TypeProviderData = {
|
|
91
91
|
constants: Record<string, (ConstantDefinition | string)[]>;
|
92
92
|
classes: Record<string, Partial<ClassDeclarationStructure>>;
|
93
93
|
properties: Record<string, PropertyDetails>;
|
94
|
+
dynamicProperties: Record<string, Pick<PropertyDescription, 'name' | 'docs'>[]>;
|
94
95
|
functions: Record<string, FunctionDetails>;
|
95
96
|
};
|
96
97
|
export type FunctionTypeOverrideMap = Record<string, {
|
package/src/types.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../libs/cli/src/types.ts"],"sourcesContent":["import {\n ClassDeclarationStructure,\n FunctionDeclarationStructure,\n MethodDeclarationStructure,\n ParameterDeclarationStructure,\n} from 'ts-morph';\nimport { Environment } from '@/cli/environment/dto/Environment.js';\nimport { PlaydateSdkPath } from '@/cli/environment/path/dto/PlaydateSdkPath.js';\n\nexport enum PlaydateSdkVersionIdentifier {\n Latest = 'latest',\n}\n\nexport type PlaydateSdkVersion = PlaydateSdkVersionIdentifier.Latest | string;\n\nexport type EnvironmentHealthResult =\n | {\n isHealthy: true;\n environment: Environment;\n health: EnvironmentHealth;\n }\n | {\n isHealthy: false;\n health: EnvironmentHealth;\n };\n\nexport enum HealthCheckStatusType {\n Healthy = 'Healthy',\n Unhealthy = 'Unhealthy',\n Unknown = 'Unknown',\n}\n\nexport type HealthCheckStatus<TArgument> =\n | {\n healthStatus:\n | HealthCheckStatusType.Unknown\n | HealthCheckStatusType.Unhealthy;\n }\n | {\n healthStatus: HealthCheckStatusType.Healthy;\n argument: TArgument;\n };\n\nexport interface EnvironmentHealth {\n sdkPathKnown: HealthCheckStatus<PlaydateSdkPath>;\n}\n\nexport type CheckListItem<TResult> = {\n runningDescription: string;\n waitingDescription: string;\n errorDescription: string;\n finishedDescription: (result: TResult) => string;\n runner: () => Promise<TResult> | Promise<false>;\n onFinish?: (result: TResult) => void;\n ready?: boolean;\n};\n\nexport interface ParameterDescription {\n name: string;\n required: boolean;\n}\n\nexport interface PropertyDescription {\n signature: string;\n name: string;\n namespaces: string[];\n docs: string;\n}\n\nexport interface FunctionDescription {\n signature: string;\n name: string;\n namespaces: string[];\n parameters: ParameterDescription[];\n hasSelf: boolean;\n docs: string;\n}\n\nexport interface ApiObject {\n functions: FunctionDescription[];\n methods: FunctionDescription[];\n properties: PropertyDescription[];\n namespaces: Record<string, ApiObject>;\n}\n\nexport interface ApiDefinitions {\n global: ApiObject;\n}\n\nexport interface ParameterDetails {\n name: string;\n type: string;\n overrideOptions?: Partial<\n Omit<ParameterDeclarationStructure, 'kind' | 'name' | 'type'>\n >;\n}\n\nexport interface PropertyDetails {\n signature: string;\n type: string;\n isStatic?: boolean;\n isReadOnly?: boolean;\n}\n\nexport interface FunctionDetails {\n signature: string;\n parameters: ParameterDetails[];\n returnType: string;\n overrideParameters?: boolean;\n overrideOptions?: Partial<\n FunctionDeclarationStructure | MethodDeclarationStructure\n >;\n}\n\nexport interface ConstantDefinition {\n name: string;\n type: string;\n}\n\nexport type TypeProviderData = {\n globalStatements: string[];\n statements: string[];\n constants: Record<string, (ConstantDefinition | string)[]>;\n classes: Record<string, Partial<ClassDeclarationStructure>>;\n properties: Record<string, PropertyDetails>;\n functions: Record<string, FunctionDetails>;\n};\n\nexport type FunctionTypeOverrideMap = Record<string, { isMethod: boolean }>;\n\nexport enum TemplateName {\n Blank = 'blank',\n}\n"],"names":["PlaydateSdkVersionIdentifier","HealthCheckStatusType","TemplateName"],"rangeMappings":";;;;;;;;;;;;;","mappings":";UASYA;;GAAAA,iCAAAA;;UAiBAC;;;;GAAAA,0BAAAA;;
|
1
|
+
{"version":3,"sources":["../../../../libs/cli/src/types.ts"],"sourcesContent":["import {\n ClassDeclarationStructure,\n FunctionDeclarationStructure,\n MethodDeclarationStructure,\n ParameterDeclarationStructure,\n} from 'ts-morph';\nimport { Environment } from '@/cli/environment/dto/Environment.js';\nimport { PlaydateSdkPath } from '@/cli/environment/path/dto/PlaydateSdkPath.js';\n\nexport enum PlaydateSdkVersionIdentifier {\n Latest = 'latest',\n}\n\nexport type PlaydateSdkVersion = PlaydateSdkVersionIdentifier.Latest | string;\n\nexport type EnvironmentHealthResult =\n | {\n isHealthy: true;\n environment: Environment;\n health: EnvironmentHealth;\n }\n | {\n isHealthy: false;\n health: EnvironmentHealth;\n };\n\nexport enum HealthCheckStatusType {\n Healthy = 'Healthy',\n Unhealthy = 'Unhealthy',\n Unknown = 'Unknown',\n}\n\nexport type HealthCheckStatus<TArgument> =\n | {\n healthStatus:\n | HealthCheckStatusType.Unknown\n | HealthCheckStatusType.Unhealthy;\n }\n | {\n healthStatus: HealthCheckStatusType.Healthy;\n argument: TArgument;\n };\n\nexport interface EnvironmentHealth {\n sdkPathKnown: HealthCheckStatus<PlaydateSdkPath>;\n}\n\nexport type CheckListItem<TResult> = {\n runningDescription: string;\n waitingDescription: string;\n errorDescription: string;\n finishedDescription: (result: TResult) => string;\n runner: () => Promise<TResult> | Promise<false>;\n onFinish?: (result: TResult) => void;\n ready?: boolean;\n};\n\nexport interface ParameterDescription {\n name: string;\n required: boolean;\n}\n\nexport interface PropertyDescription {\n signature: string;\n name: string;\n namespaces: string[];\n docs: string;\n}\n\nexport interface FunctionDescription {\n signature: string;\n name: string;\n namespaces: string[];\n parameters: ParameterDescription[];\n hasSelf: boolean;\n docs: string;\n}\n\nexport interface ApiObject {\n functions: FunctionDescription[];\n methods: FunctionDescription[];\n properties: PropertyDescription[];\n namespaces: Record<string, ApiObject>;\n}\n\nexport interface ApiDefinitions {\n global: ApiObject;\n}\n\nexport interface ParameterDetails {\n name: string;\n type: string;\n overrideOptions?: Partial<\n Omit<ParameterDeclarationStructure, 'kind' | 'name' | 'type'>\n >;\n}\n\nexport interface PropertyDetails {\n signature: string;\n type: string;\n isStatic?: boolean;\n isReadOnly?: boolean;\n}\n\nexport interface FunctionDetails {\n signature: string;\n parameters: ParameterDetails[];\n returnType: string;\n overrideParameters?: boolean;\n overrideOptions?: Partial<\n FunctionDeclarationStructure | MethodDeclarationStructure\n >;\n}\n\nexport interface ConstantDefinition {\n name: string;\n type: string;\n}\n\nexport type TypeProviderData = {\n globalStatements: string[];\n statements: string[];\n constants: Record<string, (ConstantDefinition | string)[]>;\n classes: Record<string, Partial<ClassDeclarationStructure>>;\n properties: Record<string, PropertyDetails>;\n dynamicProperties: Record<\n string,\n Pick<PropertyDescription, 'name' | 'docs'>[]\n >;\n functions: Record<string, FunctionDetails>;\n};\n\nexport type FunctionTypeOverrideMap = Record<string, { isMethod: boolean }>;\n\nexport enum TemplateName {\n Blank = 'blank',\n}\n"],"names":["PlaydateSdkVersionIdentifier","HealthCheckStatusType","TemplateName"],"rangeMappings":";;;;;;;;;;;;;","mappings":";UASYA;;GAAAA,iCAAAA;;UAiBAC;;;;GAAAA,0BAAAA;;UA4GAC;;GAAAA,iBAAAA"}
|