UNPKG

2.93 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/commands/init/validate.ts"],"names":["NAME_REGEX","javaKeywords","reservedNames","validateProjectName","name","String","match","InvalidNameError","lowerCaseName","toLowerCase","includes","ReservedNameError","HelloWorldError"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,MAAMA,UAAU,GAAG,uBAAnB,C,CAEA;;AACA,MAAMC,YAAY,GAAG,CACnB,UADmB,EAEnB,UAFmB,EAGnB,KAHmB,EAInB,KAJmB,EAKnB,QALmB,EAMnB,QANmB,EAOnB,SAPmB,EAQnB,MARmB,EASnB,SATmB,EAUnB,cAVmB,EAWnB,SAXmB,EAYnB,IAZmB,EAanB,IAbmB,EAcnB,SAdmB,EAenB,MAfmB,EAgBnB,OAhBmB,EAiBnB,QAjBmB,EAkBnB,YAlBmB,EAmBnB,WAnBmB,EAoBnB,OApBmB,EAqBnB,MArBmB,EAsBnB,MAtBmB,EAuBnB,QAvBmB,EAwBnB,QAxBmB,EAyBnB,QAzBmB,EA0BnB,MA1BmB,EA2BnB,MA3BmB,EA4BnB,YA5BmB,EA6BnB,QA7BmB,EA8BnB,WA9BmB,EA+BnB,OA/BmB,EAgCnB,SAhCmB,EAiCnB,KAjCmB,EAkCnB,OAlCmB,EAmCnB,KAnCmB,EAoCnB,MApCmB,EAqCnB,OArCmB,EAsCnB,WAtCmB,EAuCnB,QAvCmB,EAwCnB,MAxCmB,EAyCnB,OAzCmB,EA0CnB,SA1CmB,EA2CnB,MA3CmB,EA4CnB,UA5CmB,EA6CnB,UA7CmB,EA8CnB,OA9CmB,EA+CnB,OA/CmB,EAgDnB,QAhDmB,EAiDnB,OAjDmB,EAkDnB,OAlDmB,CAArB;AAqDA,MAAMC,aAAa,GAAG,CAAC,OAAD,EAAU,cAAV,EAA0B,GAAGD,YAA7B,CAAtB;;AAEO,SAASE,mBAAT,CAA6BC,IAA7B,EAA2C;AAChD,MAAI,CAACC,MAAM,CAACD,IAAD,CAAN,CAAaE,KAAb,CAAmBN,UAAnB,CAAL,EAAqC;AACnC,UAAM,IAAIO,yBAAJ,CAAqBH,IAArB,CAAN;AACD;;AAED,QAAMI,aAAa,GAAGJ,IAAI,CAACK,WAAL,EAAtB;;AACA,MAAIP,aAAa,CAACQ,QAAd,CAAuBF,aAAvB,CAAJ,EAA2C;AACzC,UAAM,IAAIG,0BAAJ,CAAsBH,aAAtB,CAAN;AACD;;AAED,MAAIJ,IAAI,CAACE,KAAL,CAAW,cAAX,CAAJ,EAAgC;AAC9B,UAAM,IAAIM,wBAAJ,EAAN;AACD;AACF","sourcesContent":["import InvalidNameError from './errors/InvalidNameError';\nimport ReservedNameError from './errors/ReservedNameError';\nimport HelloWorldError from './errors/HelloWorldError';\n\nconst NAME_REGEX = /^[$A-Z_][0-9A-Z_$]*$/i;\n\n// ref: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html\nconst javaKeywords = [\n 'abstract',\n 'continue',\n 'for',\n 'new',\n 'switch',\n 'assert',\n 'default',\n 'goto',\n 'package',\n 'synchronized',\n 'boolean',\n 'do',\n 'if',\n 'private',\n 'this',\n 'break',\n 'double',\n 'implements',\n 'protected',\n 'throw',\n 'byte',\n 'else',\n 'import',\n 'public',\n 'throws',\n 'case',\n 'enum',\n 'instanceof',\n 'return',\n 'transient',\n 'catch',\n 'extends',\n 'int',\n 'short',\n 'try',\n 'char',\n 'final',\n 'interface',\n 'static',\n 'void',\n 'class',\n 'finally',\n 'long',\n 'strictfp',\n 'volatile',\n 'const',\n 'float',\n 'native',\n 'super',\n 'while',\n];\n\nconst reservedNames = ['react', 'react-native', ...javaKeywords];\n\nexport function validateProjectName(name: string) {\n if (!String(name).match(NAME_REGEX)) {\n throw new InvalidNameError(name);\n }\n\n const lowerCaseName = name.toLowerCase();\n if (reservedNames.includes(lowerCaseName)) {\n throw new ReservedNameError(lowerCaseName);\n }\n\n if (name.match(/helloworld/gi)) {\n throw new HelloWorldError();\n }\n}\n"]}
\No newline at end of file