1*082815dcSEvan Bacon"use strict";
2*082815dcSEvan Bacon
3*082815dcSEvan BaconObject.defineProperty(exports, "__esModule", {
4*082815dcSEvan Bacon  value: true
5*082815dcSEvan Bacon});
6*082815dcSEvan Baconexports.getProjectStringsXMLPathAsync = getProjectStringsXMLPathAsync;
7*082815dcSEvan Baconexports.removeStringItem = removeStringItem;
8*082815dcSEvan Baconexports.setStringItem = setStringItem;
9*082815dcSEvan Baconfunction _Paths() {
10*082815dcSEvan Bacon  const data = require("./Paths");
11*082815dcSEvan Bacon  _Paths = function () {
12*082815dcSEvan Bacon    return data;
13*082815dcSEvan Bacon  };
14*082815dcSEvan Bacon  return data;
15*082815dcSEvan Bacon}
16*082815dcSEvan Baconasync function getProjectStringsXMLPathAsync(projectRoot, {
17*082815dcSEvan Bacon  kind
18*082815dcSEvan Bacon} = {}) {
19*082815dcSEvan Bacon  return (0, _Paths().getResourceXMLPathAsync)(projectRoot, {
20*082815dcSEvan Bacon    kind,
21*082815dcSEvan Bacon    name: 'strings'
22*082815dcSEvan Bacon  });
23*082815dcSEvan Bacon}
24*082815dcSEvan Baconfunction setStringItem(itemToAdd, stringFileContentsJSON) {
25*082815dcSEvan Bacon  var _stringFileContentsJS;
26*082815dcSEvan Bacon  if (!(stringFileContentsJSON !== null && stringFileContentsJSON !== void 0 && (_stringFileContentsJS = stringFileContentsJSON.resources) !== null && _stringFileContentsJS !== void 0 && _stringFileContentsJS.string)) {
27*082815dcSEvan Bacon    if (!stringFileContentsJSON.resources || typeof stringFileContentsJSON.resources === 'string') {
28*082815dcSEvan Bacon      // file was empty and JSON is `{resources : ''}`
29*082815dcSEvan Bacon      stringFileContentsJSON.resources = {};
30*082815dcSEvan Bacon    }
31*082815dcSEvan Bacon    stringFileContentsJSON.resources.string = itemToAdd;
32*082815dcSEvan Bacon    return stringFileContentsJSON;
33*082815dcSEvan Bacon  }
34*082815dcSEvan Bacon  for (const newItem of itemToAdd) {
35*082815dcSEvan Bacon    const stringNameExists = stringFileContentsJSON.resources.string.findIndex(e => e.$.name === newItem.$.name);
36*082815dcSEvan Bacon    if (stringNameExists > -1) {
37*082815dcSEvan Bacon      // replace the previous item
38*082815dcSEvan Bacon      stringFileContentsJSON.resources.string[stringNameExists] = newItem;
39*082815dcSEvan Bacon    } else {
40*082815dcSEvan Bacon      stringFileContentsJSON.resources.string = stringFileContentsJSON.resources.string.concat(newItem);
41*082815dcSEvan Bacon    }
42*082815dcSEvan Bacon  }
43*082815dcSEvan Bacon  return stringFileContentsJSON;
44*082815dcSEvan Bacon}
45*082815dcSEvan Baconfunction removeStringItem(named, stringFileContentsJSON) {
46*082815dcSEvan Bacon  var _stringFileContentsJS2;
47*082815dcSEvan Bacon  if (stringFileContentsJSON !== null && stringFileContentsJSON !== void 0 && (_stringFileContentsJS2 = stringFileContentsJSON.resources) !== null && _stringFileContentsJS2 !== void 0 && _stringFileContentsJS2.string) {
48*082815dcSEvan Bacon    const stringNameExists = stringFileContentsJSON.resources.string.findIndex(e => e.$.name === named);
49*082815dcSEvan Bacon    if (stringNameExists > -1) {
50*082815dcSEvan Bacon      // replace the previous value
51*082815dcSEvan Bacon      stringFileContentsJSON.resources.string.splice(stringNameExists, 1);
52*082815dcSEvan Bacon    }
53*082815dcSEvan Bacon  }
54*082815dcSEvan Bacon  return stringFileContentsJSON;
55*082815dcSEvan Bacon}
56*082815dcSEvan Bacon//# sourceMappingURL=Strings.js.map