onesky-fetch

0.0.7 • Public • Published

OneSky Fetch Build Status npm version

An npm package that provides you with a simple promise API, that fetches languages and translations from the OneSky REST API and can also upload files to it.

Installation

npm install --save onesky-fetch

Usage

Import

// ES5 syntax
var OneSkyFetch = require('onesky-fetch');

// ES6 syntax
import OneSkyFetch from 'onesky-fetch';

Configuration

Obtain the necessary settings from here:

https://<Your OneSky URL prefix>.oneskyapp.com/admin/site/settings

and here:

https://<Your OneSky URL prefix>.oneskyapp.com/admin/project/dashboard/project/<The ID of the currently open project>

// ES6 syntax
const oneSkyConfig = {
  secret: '<Your OneSky Secret Key>',
  apiKey: '<Your OneSky Public Key',
  projectId: '<Your OneSky project ID'
};

Instantiation

// ES6 syntax
const osf = OneSkyFetch(oneSkyConfig);

Fetching Languages

// in ES5 syntax
osf.fetchLanguages()
  .then(function(languages) {
    console.log(languages);
  });

// or ES6 syntax
osf.fetchLanguages()
  .then(languages => {
    console.log(languages);
  });

// or even async / await syntax
async function test() {
  const languages = await osf.fetchLanguages();
  console.log(languages);
}

Output

[ 
    { 
        code: 'it-IT',
        english_name: 'Italian (Italy)',
        local_name: 'Italiano (Italia)\u0000',
        custom_locale: null,
        locale: 'it',
        region: 'IT',
        is_base_language: false,
        is_ready_to_publish: false,
        translation_progress: '0.0%',
        last_updated_at: '#####',
        last_updated_at_timestamp: ##### 
    },
    // other languages
]

Fetching Translations

const languages = ['en','it-IT'];
const fileName = 'strings.json';

osf.fetchTranslations(languages, fileName)
  .then(function(translations) {
    console.log(translations);
  });

Output

[
  { language: 'en', text: '<Your english strings>' },
  { language: 'it-IT', text: '<Your italian strings>' }
]

Fetching all translations

A convenient function to fetch all translations:

const fileName = 'strings.json';

osf.fetchAllTranslations(fileName)
  .then(function(translations) {
    console.log(translations);
  });

This is just a chain of fetching languages and fetching their translations.

Feel free to contribute with additional functions.

Uploading Files

That isn't really a fetch, but it may be a useful extension to the existing features. The options paramter is optional and can be used to pass additional parameters, like for example locale to upload specific translations - see OneSky's API documentation for more information.

const content = '{"hello","Hallo"}';
const fileName = 'string.json';
const fileFormat = 'HIERARCHICAL_JSON';
const options = {locale: 'de'};

osf.uploadFile(content, fileName, fileFormat, options)
  .then(function(result) {
    console.log("Status Code:", result.status);
  });

Output

Status Code: 201

Readme

Keywords

Package Sidebar

Install

npm i onesky-fetch

Weekly Downloads

211

Version

0.0.7

License

MIT

Last publish

Collaborators

  • rkretzschmar