UNPKG

4.08 kBSource Map (JSON)View Raw
1{"version":3,"file":"Strings.js","sourceRoot":"","sources":["../../src/android/Strings.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wDAA0B;AAC1B,mCAAyC;AAIzC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAE5C,KAAK,UAAU,6BAA6B,CAAC,UAAkB;IACpE,IAAI;QACF,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,kBAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAC;YAChF,MAAM,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YACjC,OAAO,WAAW,CAAC;SACpB;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;KAChE;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,sEAaC;AAEM,KAAK,UAAU,mBAAmB,CAAC,WAAmB;IAC3D,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC;AAClB,CAAC;AALD,kDAKC;AAEM,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,cAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,gBAAO,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9C,MAAM,kBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAPD,oDAOC;AAED,SAAgB,aAAa,CAAC,SAAoB,EAAE,sBAAgC;IAClF,IAAI,sBAAsB,CAAC,SAAS,CAAC,MAAM,EAAE;QAC3C,IAAI,gBAAgB,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CACnE,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,gBAAgB,EAAE;YACpB,6BAA6B;YAC7B,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3C;aAAM;YACL,sBAAsB,CAAC,SAAS,CAAC,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CACtF,SAAS,CACV,CAAC;SACH;KACF;SAAM;QACL,IAAI,OAAO,sBAAsB,CAAC,SAAS,KAAK,QAAQ,EAAE;YACxD,gDAAgD;YAChD,sBAAsB,CAAC,SAAS,GAAG,EAAE,CAAC;SACvC;QACD,sBAAsB,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC;KACrD;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC;AArBD,sCAqBC","sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { Builder, Parser } from 'xml2js';\nimport { Document } from './Manifest';\nimport { XMLItem } from './Styles';\n\nconst BASE_STRINGS_XML = `<resources></resources>`;\n\nexport async function getProjectStringsXMLPathAsync(projectDir: string): Promise<string | null> {\n try {\n const shellPath = path.join(projectDir, 'android');\n if ((await fs.stat(shellPath)).isDirectory()) {\n const stringsPath = path.join(shellPath, 'app/src/main/res/values/strings.xml');\n await fs.ensureFile(stringsPath);\n return stringsPath;\n }\n } catch (error) {\n throw new Error('No android directory found in your project.');\n }\n\n return null;\n}\n\nexport async function readStringsXMLAsync(stringsPath: string): Promise<Document> {\n const contents = await fs.readFile(stringsPath, { encoding: 'utf8', flag: 'r' });\n const parser = new Parser();\n const manifest = parser.parseStringPromise(contents || BASE_STRINGS_XML);\n return manifest;\n}\n\nexport async function writeStringsXMLAsync(\n stringsPath: string,\n stringsContent: any\n): Promise<void> {\n const stringsXml = new Builder().buildObject(stringsContent);\n await fs.ensureDir(path.dirname(stringsPath));\n await fs.writeFile(stringsPath, stringsXml);\n}\n\nexport function setStringItem(itemToAdd: XMLItem[], stringFileContentsJSON: Document) {\n if (stringFileContentsJSON.resources.string) {\n let stringNameExists = stringFileContentsJSON.resources.string.filter(\n (e: XMLItem) => e['$'].name === itemToAdd[0]['$'].name\n )[0];\n if (stringNameExists) {\n // replace the previous value\n stringNameExists['_'] = itemToAdd[0]['_'];\n } else {\n stringFileContentsJSON.resources.string = stringFileContentsJSON.resources.string.concat(\n itemToAdd\n );\n }\n } else {\n if (typeof stringFileContentsJSON.resources === 'string') {\n // file was empty and JSON is `{resources : ''}`\n stringFileContentsJSON.resources = {};\n }\n stringFileContentsJSON.resources.string = itemToAdd;\n }\n return stringFileContentsJSON;\n}\n"]}
\No newline at end of file