MCPcopy Create free account
hub / github.com/violentmonkey/violentmonkey / uploadResource

Function uploadResource

scripts/transifex.mjs:95–132  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

93}
94
95async function uploadResource() {
96 const source = yaml.load(await readFile(RESOURCE_FILE, 'utf8'));
97 const content = Object.entries(source).reduce((prev, [key, value]) => {
98 if (value.touched !== false) {
99 prev[key] = {
100 description: value.description,
101 message: value.message,
102 };
103 }
104 return prev;
105 }, {});
106 let { result } = await request('/resource_strings_async_uploads', {
107 method: 'POST',
108 body: {
109 data: {
110 type: 'resource_strings_async_uploads',
111 attributes: {
112 content: JSON.stringify(content),
113 content_encoding: 'text',
114 },
115 relationships: {
116 resource: {
117 data: {
118 id: RESOURCE_ID,
119 type: 'resources',
120 },
121 },
122 },
123 },
124 },
125 });
126 while (['pending', 'processing'].includes(result.data.attributes.status)) {
127 await delay(500);
128 ({ result } = await request(`/resource_strings_async_uploads/${result.data.id}`));
129 }
130 if (result.data.attributes.status !== 'succeeded') throw { result };
131 return result.data.attributes.details;
132}
133
134async function getLanguages() {
135 const { result } = await request(`/projects/${PROJECT_ID}/languages`);

Callers 1

updateResourceFunction · 0.85

Calls 3

requestFunction · 0.85
delayFunction · 0.85
loadMethod · 0.45

Tested by

no test coverage detected