Created
August 12, 2021 03:36
-
-
Save apappas1129/739b277acf33f1537db8fee89a82f760 to your computer and use it in GitHub Desktop.
deep-translate-str-values
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var data: { [k: string]: unknown } = { | |
| "count": 82, | |
| "next": "https://swapi.dev/api/people/?page=2", | |
| "previous": null, | |
| "results": [ | |
| { | |
| "name": "Luke Skywalker", | |
| "height": "172", | |
| "mass": "77", | |
| "hair_color": "blond", | |
| "skin_color": "fair", | |
| "eye_color": "blue", | |
| "birth_year": "19BBY", | |
| "gender": "male", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [ | |
| "https://swapi.dev/api/vehicles/14/", | |
| "https://swapi.dev/api/vehicles/30/" | |
| ], | |
| "starships": [ | |
| "https://swapi.dev/api/starships/12/", | |
| "https://swapi.dev/api/starships/22/" | |
| ], | |
| "created": "2014-12-09T13:50:51.644000Z", | |
| "edited": "2014-12-20T21:17:56.891000Z", | |
| "url": "https://swapi.dev/api/people/1/" | |
| }, | |
| { | |
| "name": "C-3PO", | |
| "height": "167", | |
| "mass": "75", | |
| "hair_color": "n/a", | |
| "skin_color": "gold", | |
| "eye_color": "yellow", | |
| "birth_year": "112BBY", | |
| "gender": "n/a", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/4/", | |
| "https://swapi.dev/api/films/5/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [ | |
| "https://swapi.dev/api/species/2/" | |
| ], | |
| "vehicles": [], | |
| "starships": [], | |
| "created": "2014-12-10T15:10:51.357000Z", | |
| "edited": "2014-12-20T21:17:50.309000Z", | |
| "url": "https://swapi.dev/api/people/2/" | |
| }, | |
| { | |
| "name": "R2-D2", | |
| "height": "96", | |
| "mass": "32", | |
| "hair_color": "n/a", | |
| "skin_color": "white, blue", | |
| "eye_color": "red", | |
| "birth_year": "33BBY", | |
| "gender": "n/a", | |
| "homeworld": "https://swapi.dev/api/planets/8/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/4/", | |
| "https://swapi.dev/api/films/5/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [ | |
| "https://swapi.dev/api/species/2/" | |
| ], | |
| "vehicles": [], | |
| "starships": [], | |
| "created": "2014-12-10T15:11:50.376000Z", | |
| "edited": "2014-12-20T21:17:50.311000Z", | |
| "url": "https://swapi.dev/api/people/3/" | |
| }, | |
| { | |
| "name": "Darth Vader", | |
| "height": "202", | |
| "mass": "136", | |
| "hair_color": "none", | |
| "skin_color": "white", | |
| "eye_color": "yellow", | |
| "birth_year": "41.9BBY", | |
| "gender": "male", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [], | |
| "starships": [ | |
| "https://swapi.dev/api/starships/13/" | |
| ], | |
| "created": "2014-12-10T15:18:20.704000Z", | |
| "edited": "2014-12-20T21:17:50.313000Z", | |
| "url": "https://swapi.dev/api/people/4/" | |
| }, | |
| { | |
| "name": "Leia Organa", | |
| "height": "150", | |
| "mass": "49", | |
| "hair_color": "brown", | |
| "skin_color": "light", | |
| "eye_color": "brown", | |
| "birth_year": "19BBY", | |
| "gender": "female", | |
| "homeworld": "https://swapi.dev/api/planets/2/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [ | |
| "https://swapi.dev/api/vehicles/30/" | |
| ], | |
| "starships": [], | |
| "created": "2014-12-10T15:20:09.791000Z", | |
| "edited": "2014-12-20T21:17:50.315000Z", | |
| "url": "https://swapi.dev/api/people/5/" | |
| }, | |
| { | |
| "name": "Owen Lars", | |
| "height": "178", | |
| "mass": "120", | |
| "hair_color": "brown, grey", | |
| "skin_color": "light", | |
| "eye_color": "blue", | |
| "birth_year": "52BBY", | |
| "gender": "male", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/5/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [], | |
| "starships": [], | |
| "created": "2014-12-10T15:52:14.024000Z", | |
| "edited": "2014-12-20T21:17:50.317000Z", | |
| "url": "https://swapi.dev/api/people/6/" | |
| }, | |
| { | |
| "name": "Beru Whitesun lars", | |
| "height": "165", | |
| "mass": "75", | |
| "hair_color": "brown", | |
| "skin_color": "light", | |
| "eye_color": "blue", | |
| "birth_year": "47BBY", | |
| "gender": "female", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/5/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [], | |
| "starships": [], | |
| "created": "2014-12-10T15:53:41.121000Z", | |
| "edited": "2014-12-20T21:17:50.319000Z", | |
| "url": "https://swapi.dev/api/people/7/" | |
| }, | |
| { | |
| "name": "R5-D4", | |
| "height": "97", | |
| "mass": "32", | |
| "hair_color": "n/a", | |
| "skin_color": "white, red", | |
| "eye_color": "red", | |
| "birth_year": "unknown", | |
| "gender": "n/a", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/" | |
| ], | |
| "species": [ | |
| "https://swapi.dev/api/species/2/" | |
| ], | |
| "vehicles": [], | |
| "starships": [], | |
| "created": "2014-12-10T15:57:50.959000Z", | |
| "edited": "2014-12-20T21:17:50.321000Z", | |
| "url": "https://swapi.dev/api/people/8/" | |
| }, | |
| { | |
| "name": "Biggs Darklighter", | |
| "height": "183", | |
| "mass": "84", | |
| "hair_color": "black", | |
| "skin_color": "light", | |
| "eye_color": "brown", | |
| "birth_year": "24BBY", | |
| "gender": "male", | |
| "homeworld": "https://swapi.dev/api/planets/1/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/" | |
| ], | |
| "species": [], | |
| "vehicles": [], | |
| "starships": [ | |
| "https://swapi.dev/api/starships/12/" | |
| ], | |
| "created": "2014-12-10T15:59:50.509000Z", | |
| "edited": "2014-12-20T21:17:50.323000Z", | |
| "url": "https://swapi.dev/api/people/9/" | |
| }, | |
| { | |
| "name": "Obi-Wan Kenobi", | |
| "height": "182", | |
| "mass": "77", | |
| "hair_color": "auburn, white", | |
| "skin_color": "fair", | |
| "eye_color": "blue-gray", | |
| "birth_year": "57BBY", | |
| "gender": "male", | |
| "homeworld": "https://swapi.dev/api/planets/20/", | |
| "films": [ | |
| "https://swapi.dev/api/films/1/", | |
| "https://swapi.dev/api/films/2/", | |
| "https://swapi.dev/api/films/3/", | |
| "https://swapi.dev/api/films/4/", | |
| "https://swapi.dev/api/films/5/", | |
| "https://swapi.dev/api/films/6/" | |
| ], | |
| "species": [], | |
| "vehicles": [ | |
| "https://swapi.dev/api/vehicles/38/" | |
| ], | |
| "starships": [ | |
| "https://swapi.dev/api/starships/48/", | |
| "https://swapi.dev/api/starships/59/", | |
| "https://swapi.dev/api/starships/64/", | |
| "https://swapi.dev/api/starships/65/", | |
| "https://swapi.dev/api/starships/74/" | |
| ], | |
| "created": "2014-12-10T16:16:29.192000Z", | |
| "edited": "2014-12-20T21:17:50.325000Z", | |
| "url": "https://swapi.dev/api/people/10/" | |
| } | |
| ] | |
| }; | |
| function translate(prop: unknown) { | |
| if (typeof (prop) === 'string') | |
| return prop = 'TRANSLATED: ' + prop; // translate | |
| if (prop && prop.constructor === ({}).constructor) | |
| deepTranslate(prop as { [k: string]: unknown }); | |
| else if (Array.isArray(prop)) | |
| prop = prop.map(e => translate(e)) | |
| return prop | |
| } | |
| export default function deepTranslate(jsonObj: { [k: string]: unknown }) { | |
| Object.keys(jsonObj).forEach(key => jsonObj[key] = translate(jsonObj[key])); | |
| } | |
| deepTranslate(data); | |
| console.log(data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment