Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export async function listBuiltinFavicons ({filter, offset, limit} = {}) {
if (filter) {
filter = new RegExp(filter, 'i')
}
// list files in assets/favicons and filter on the name
var dir = jetpack.cwd(__dirname).cwd('assets/favicons')
var items = (await dir.listAsync())
.filter(filename => {
if (filter && !filter.test(filename)) {
return false
}
return filename.endsWith('.ico')
})
return items.slice(offset || 0, limit || Number.POSITIVE_INFINITY)
}
'use strict';
var gulp = require('gulp');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
var ts = require('gulp-typescript');
var plumber = require('gulp-plumber');
var jetpack = require('fs-jetpack');
var bundle = require('./bundle');
var utils = require('./utils');
// var ts = require('typescript');
var projectDir = jetpack;
var srcDir = jetpack.cwd('./src');
var distDir = jetpack.cwd('./dist');
var destDir = jetpack.cwd('./app');
gulp.task('bundle', function() {
return Promise.all([
bundle(distDir.path('background', 'parser.js'), destDir.path('parser.js')),
bundle(distDir.path('background', 'app.js'), destDir.path('background.js')),
bundle(distDir.path('ui', 'app.js'), destDir.path('app.js'))
]);
});
var tsProject = ts.createProject('tsconfig.json');
gulp.task('ts', function() {
var tsResult = gulp.src('src/**/*.ts').pipe(tsProject());
return tsResult.js.pipe(gulp.dest('dist'));
});
* the electron project directory LICENSE file.
*
* @fileoverview Electron entry point continues here. Creates windows and
* handles system events.
*/
const electron = require('electron');
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
const appMenu = require('./appmenu.js');
const server = require('./servermgr.js');
const projectLocator = require('./projectlocator.js');
const createWindow = require('./helpers/window');
const winston = require('winston');
const packageData = require('fs-jetpack').cwd(app.getAppPath()).read('package.json', 'json');
const tag = '[ArdublocklyElec] ';
// Global reference of the window object must be maintain, or the window will
// be closed automatically when the JavaScript object is garbage collected.
var mainWindow = null;
var splashWindow = null;
// Set up the app data directory within the Ardublockly root directory
(function setAppData() {
var appDataPath = projectLocator.getExecDirJetpack().cwd('appdata');
app.setPath('appData', appDataPath.path());
app.setPath('userData', appDataPath.path());
app.setPath('cache', appDataPath.path('GenCache'));
app.setPath('userCache', appDataPath.path('AppCache'));
app.setPath('temp', appDataPath.path('temp'));
// Spec files are scattered through the whole project. Here we're searching
// for them and generate one entry file which will run all the tests.
'use strict'
const jetpack = require('fs-jetpack')
const srcDir = jetpack.cwd('src')
const fileName = 'spec.js.autogenerated'
const fileBanner = '// This file is generated automatically.\n' +
"// All your modifications to it will be lost (so don't do it).\n"
const whatToInclude = [
'*.spec.js',
'!node_modules/**'
]
module.exports = function () {
return srcDir.findAsync('.', { matching: whatToInclude }, 'relativePath')
.then(function (specPaths) {
let fileContent = specPaths.map(function (path) {
return 'import "' + path + '";'
}).join('\n')
return srcDir.writeAsync(fileName, fileBanner + fileContent)
// Imports
import os from 'os';
import request from 'superagent';
import {
remote,
ipcRenderer
} from 'electron';
import jetpack from 'fs-jetpack';
import env from './env';
// Globals
var app = remote.app;
var ipc = ipcRenderer;
var shell = remote.shell;
var appDir = jetpack.cwd(app.getAppPath());
// App
(function ($) {
'use strict';
var App = function () {
var timeout;
var flatline = false;
var $save = $('#save');
var $model = $(".model");
var $url = $("#url__value");
var $reset = $("#reset-settings");
var $go_offline = $('#go-offline');
gulp.task('build-unit', gulp.parallel('environment', function () {
var srcDir = jetpack.cwd('src');
var destDir = jetpack.cwd('app');
return generateEntryFile(srcDir, 'specs.js.autogenerated', '*.spec.js')
.then(function (entryFilePath) {
return bundle(entryFilePath, destDir.path('specs.js.autogenerated'), {
rollupPlugins: [
istanbul({
exclude: ['**/*.spec.js', '**/specs.js.autogenerated'],
sourceMap: true
})
]
});
});
}));
export async function getBuiltinFavicon (name) {
var dir = jetpack.cwd(__dirname).cwd('assets/favicons')
return dir.readAsync(name, 'buffer')
}
'use strict';
var gulp = require('gulp');
var less = require('gulp-less');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
var plumber = require('gulp-plumber');
var jetpack = require('fs-jetpack');
var bundle = require('./bundle');
var utils = require('./utils');
var projectDir = jetpack;
var srcDir = jetpack.cwd('./src');
var destDir = jetpack.cwd('./app');
gulp.task('bundle', function () {
return Promise.all([
bundle(srcDir.path('background.js'), destDir.path('background.js')),
bundle(srcDir.path('app.js'), destDir.path('app.js')),
bundle(srcDir.path('karma.js'), destDir.path('karma.js')),
]);
});
gulp.task('less', function () {
return gulp.src(srcDir.path('stylesheets/main.less'))
.pipe(plumber())
.pipe(less())
.pipe(gulp.dest(destDir.path('stylesheets')));
});
function createWindow () {
/**
* If there is already data in old directory. Moved it to new
*/
const oldDirectory = jetpack.cwd(app.getPath('userData'))
const newDirectory = jetpack.cwd(app.getPath('home'))
const existsArticle = jetpack.exists(oldDirectory.path('articles.db'))
const existsFeed = jetpack.exists(oldDirectory.path('feeds.db'))
const winURL = process.env.NODE_ENV === 'development' ? 'http://localhost:9080' : `file://${__dirname}/index.html`
if (existsArticle && existsFeed) {
jetpack.move(oldDirectory.path('feeds.db'), newDirectory.path('.rss-reader/feeds.db'))
jetpack.move(oldDirectory.path('articles.db'), newDirectory.path('.rss-reader/articles.db'))
}
/**
* Initial window options
*/
mainWindow = new BrowserWindow({
webPreferences: {
webviewTag: true,
nodeIntegration: true,