{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":";;AAAA,iCAA0B;AAC1B,+BAAiC;AAEjC,MAAM,gBAAgB,GAA2B;IAC7C,MAAM,EAAE,uBAAuB;IAC/B,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,mBAAmB;IACzB,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,yBAAyB;IAC7B,IAAI,EAAE,mBAAmB;IACzB,GAAG,EAAE,kBAAkB;CAC1B,CAAA;AAED,SAAS,WAAW;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;EAOd,MAAM;QACJ,IAAI,CAAC,gBAAgB,CAAC;QACtB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,SAAS,QAAQ,KAAK,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAC7C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;;;;6DAI+C,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,IAAI,GAAG,IAAA,cAAI,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,QAAgB,CAAC;AACrB,KAAK,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACf,QAAQ,GAAG,MAAM,CAAC;IACtB,CAAC;AACL,CAAC;AAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,WAAW,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,CAAC;IACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,IAAA,cAAQ,EAAC,QAAQ,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,CAAC;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC,CAAC;AAEP,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC;AAClB,CAAC","sourcesContent":["import argv from \"./argv\";\nimport { generate } from \"./api\";\n\nconst supportedTargets: Record<string, string> = {\n    csharp: 'generate for C#/Unity',\n    cpp: 'generate for C++',\n    haxe: 'generate for Haxe',\n    ts: 'generate for TypeScript',\n    js: 'generate for JavaScript',\n    java: 'generate for Java',\n    lua: 'generate for LUA',\n}\n\nfunction displayHelp() {\n    console.log(`\\nschema-codegen [path/to/Schema.ts]\n\nUsage (C#/Unity)\n    schema-codegen src/Schema.ts --output client-side/ --csharp --namespace MyGame.Schema\n\nValid options:\n    --output: the output directory for generated client-side schema files\n${Object.\n    keys(supportedTargets).\n    map((targetId) => (\n`    --${targetId}: ${supportedTargets[targetId]}`\n    )).\n    join(\"\\n\")}\n\nOptional:\n    --namespace: generate namespace on output code\n    --decorator: custom name for @type decorator to scan for`);\n    process.exit();\n}\n\nconst args = argv(process.argv.slice(2));\nif (args.help) {\n    displayHelp();\n}\n\nlet targetId: string;\nfor (let target in supportedTargets) {\n    if (args[target]) {\n        targetId = target;\n    }\n}\n\nif (!args.output) {\n    console.error(\"You must provide a valid --output directory.\");\n    displayHelp();\n}\n\ntry {\n    args.files = args._;\n    generate(targetId, {\n        files: args._,\n        decorator: args.decorator,\n        output: args.output,\n        namespace: args.namespace\n    });\n\n} catch (e) {\n    console.error(e.message);\n    console.error(e.stack);\n    displayHelp();\n}\n"]}