Skip to content

Instantly share code, notes, and snippets.

@J2D2Development
J2D2Development / argument-alias-alt.js
Last active September 23, 2017 23:31
Pass function for returning data directly to "run"
async function run(products, dataReturnFx) {
async function crawlPage(url) {
const page = await browser.newPage();
const pageResult = await page.goto(url);
let resultObj = { success: pageResult.ok, url };
resultGroup.push(resultObj);
dataReturnFx('crawled', resultObj);
return page.close();
}
@J2D2Development
J2D2Development / argument-alias.js
Last active September 23, 2017 23:32
Optional argument- alias if not there
//products is your array to crawl, if crawlEmitter is passed, it's used (for broadcasting via socket to frontend).
//If not, it's aliased to console.log so the code with the logic stays the same (everything calls "crawlEmitter.emit").
async function run(products, crawlEmitter) {
if(!crawlEmitter) {
crawlEmitter = {
emit: function() {
console.log.apply(null, Array.from(arguments));
}
}
import { AfterViewInit, Directive, ElementRef } from '@angular/core';
@Directive({ selector: '[ifautofocus]' })
export class IfAutofocus implements AfterViewInit {
constructor(private elementRef: ElementRef) {}
ngAfterViewInit() {
this.elementRef.nativeElement.focus();
}
}
@J2D2Development
J2D2Development / strip-stream.js
Created August 25, 2017 13:07
Take a file, use transform stream to strip multi-spaces, stream to different path
'use strict';
const fs = require('fs');
const spaceStripStream = require('./multi-space-strip');
const pathSplitter = require('./path-splitter');
const filePath = process.argv[2];
fs.createReadStream(filePath)
.pipe(spaceStripStream)
@J2D2Development
J2D2Development / multi-space.strip.js
Last active August 25, 2017 13:04
Custom Node Transform Stream (just removes multi-spaces)
'use strict';
const { Transform } = require('stream');
class MultiSpaceStrip extends Transform {
constructor(options) {
super(options);
}
_transform(chunk, encoding, callback) {
@J2D2Development
J2D2Development / path-splitter.js
Created August 25, 2017 12:59
Insert new string into path
'use strict';
module.exports = function(filePath, additionalName) {
const filePathArray = filePath.split('.');
const lastItemInPath = filePathArray[filePathArray.length - 2];
filePathArray[filePathArray.length - 2] = `${lastItemInPath}-${additionalName}`;
return filePathArray.join('.');
};
@J2D2Development
J2D2Development / strip-fs.js
Last active August 25, 2017 13:01
Using Node's fs module to strip multi spaces from a file
'use strict';
const fs = require('fs');
const pathSplitter = require('./path-splitter');
const filePath = process.argv[2];
fs.readFile(filePath, (err, data) => {
const stripped = data.toString().replace(/\s+/g, ' ');
fs.writeFile(pathSplitter(filePath, 'stripped'), stripped);
@J2D2Development
J2D2Development / es6-umd.js
Created August 10, 2017 16:38
Replace es6 with umd bundle
'use strict';
const { readFile, writeFile } = require('fs');
const { join } = require('path');
readFile(join(__dirname, '../dist-server/main.bundle.js'), 'utf-8', (err, data) => {
if(err) { return console.log('Error reading file:', err); }
const ssrPageScrollBundle = 'ng2-page-scroll/bundles/ng2-page-scroll.umd.js'
const newCode = data.replace('ng2-page-scroll', ssrPageScrollBundle)
<Card key={key}>
<CardHeader title={light.name} subtitle={light.type} />
<CardTitle title={
<LightSwitch
id={key} switchedOn={light.state.on}
updateLightHandler={updateLightHandler}
/>}
/>
<CardActions>
<FlatButton label="Manage" primary={true} />
//small conversion array, still somewhat ugly helper logic, simple loop in main
const conversions = [
{nextLetter: 'X', midLetter: 'V', letter: 'I'},
{nextLetter: 'C', midLetter: 'L', letter: 'X'},
{nextLetter: 'M', midLetter: 'D', letter: 'C'}
];
function convert(n, legend) {
let origNum = Number(n);