Skip to content

Content classified under "Software"

Page 5 of 21

Change the File Extension in Typescript - Using Path

April 28, 2017Categories: Software, Tutorial
Following from my previous post , I've updated the function to use only the path module. Now, the code looks like: I've updated the workflow presented previously to: isolate the dir , ext and root components of the path replace the ext with the new extension return the normalized version…

Change the File Extension in Typescript (or Javascript)

April 18, 2017Categories: Software, Tutorial
TL;DR: You need to get the root name (without the extension) and append the new extension. Then, it only depends on how tolerant you are. The other day I figured I needed a function to change the file extension (from a .jpg to a .nfo ). Since I haven't found a ready made function to do this, I…

Consistent Testing electron-settings

April 6, 2017Categories: Software, Tutorial
TL;DR : Delete the settings file before starting the test. Today I implemented a simple wrapper over the electron-settings functionality to gibe me access to a set of properties via get/set methods. My scenario is simple: I have a property named path.backup and I want to be able to get , set…

Delete Dependent Entries of a Table in Oracle PL/SQL

March 13, 2017Categories: Software, Tutorial
The other day I had a task to clean up a database which was populated with a list of records. Unfortunately, my main table is linked to a host of other tables via foreign key dependencies and, to make things worse, no CASCADE constraints are specified. The process I want to is as follows: Scan…

Poor Man's Mocks in TypeScript

March 7, 2017Categories: Software, Tutorial
Today I went against my better judgement of usign a mock framework and decided to create my own mocks to allow coverage testing for an IPC-calling code. My reference code I wanted to test is: The code would use an angular service named PathService which, for the purpose of this test only has a…

Use "toThrowError" and "toThrow" in TypeScript with Objects

March 2, 2017Category: Software
TL;DR: wrap your method call in the expect() statement. Instead of expect(obj.method()).toThrow() , write expect( () => { obj.method() }).toThrow() . While in the process of improving the code coverage, I needed to write a test for a method throwing an exception. My initial code would have been…

Fix Angular 2 Tests with Karma

March 1, 2017Category: Software
Below are some fixes I had to apply in order to make Angular 2 tests work with karma . Binding Error : Can't bind to 'ngModel' since it isn't a known property of 'input' Solution : Import FormsModule in your test: Unknown component Error : 'custom-component' is not a known element Solution…

Initialize a Typescript Interface with JSON

February 20, 2017Category: Software
TL;DR: You can initialise a typescript interface using JSON objects. On my quest to load and save objects as JSON, I found that you can convert a JSON object to an interface via something called type assertion . Basically, if you have an interface: you can load a JSON object via JSON.parse(json…

Angular 2Refresh Bound Variables from Callback

January 31, 2017Category: Software
TL;DR: Use ChangeDetectorRef 's detectChanges() at the end of your callback code. While developing my electron.js app, I've had the following workflow: I have an input element and a button The input element is capable of editing a path The button triggers a File Open dialog The…

Load FontAwesome Fonts with Webpack 2

January 23, 2017Category: Software
TL;DR: : Add the (s)css dependency to your main (s)css file and specify where to find the fonts too. Then use the proper loaders in your webpack.config.js file. The past few days I had trouble loading the font-awesome fonts with webpack. I tried quite a few solutions: Using the font-awesome-sass…

All categories