* add @angular/cli to the project * increase nodejs version -> 8.2.1 * add lerna * merge web and shared module * move electron module into packages as uhk-agent Electron agent functionality is not working * delete symlinker * convert private properties to public of component if used in html * revert uhk-message.component * fix component path * fix the correct name of the uhk-message.component.scss * building web and electron module * delete uhk-renderer package * handle device connect disconnect state * add privilege detection * fix set privilege functionality * turn back download keymap functionality * add bootstrap, select2 js and fix null pointer exception * turn back upload data to keyboard * fix send keymap * fix test-serializer * add missing package.json * merging * fix appveyor build * fix linting * turn back electron storage service * commit the missing electron-datastorage-repository * update node to 8.3.0 in .nvmrc and log node version in appveyor build * set exact version number in appveyor build * vertical align privilege and missing device components * set back node version to 8 in appveyor * move node-usb dependency from usb dir to root maybe it is fix the appveyor build * revert usb to root * fix electron builder script * fix electron builder script * turn off electron devtools * remove CTRL+U functionality * fix CTRL+o * fix lint error * turnoff store freeze * start process when got `Error: EPERM: operation not permitted` error * move files from root usb dir -> packages/usb
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
export { Constants } from './constants';
|
|
export { IpcEvents } from './ipcEvents';
|
|
|
|
// Source: http://stackoverflow.com/questions/13720256/javascript-regex-camelcase-to-sentence
|
|
export function camelCaseToSentence(camelCasedText: string): string {
|
|
return camelCasedText.replace(/^[a-z]|[A-Z]/g, function (v, i) {
|
|
return i === 0 ? v.toUpperCase() : ' ' + v.toLowerCase();
|
|
});
|
|
}
|
|
|
|
export function capitalizeFirstLetter(text: string): string {
|
|
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
}
|
|
|
|
/**
|
|
* This function coerces a string into a string literal type.
|
|
* Using tagged union types in TypeScript 2.0, this enables
|
|
* powerful typechecking of our reducers.
|
|
*
|
|
* Since every action label passes through this function it
|
|
* is a good place to ensure all of our action labels
|
|
* are unique.
|
|
*/
|
|
|
|
const typeCache: { [label: string]: boolean } = {};
|
|
|
|
export function type<T>(label: T | ''): T {
|
|
if (typeCache[<string>label]) {
|
|
throw new Error(`Action type "${label}" is not unique"`);
|
|
}
|
|
|
|
typeCache[<string>label] = true;
|
|
|
|
return <T>label;
|
|
}
|
|
|
|
export function runInElectron() {
|
|
return window && (<any>window).process && (<any>window).process.type;
|
|
}
|