Skip to content

Commit

Permalink
feat(provider): Add suppor for native filesystem
Browse files Browse the repository at this point in the history
  • Loading branch information
FranklinWaller committed Dec 12, 2019
1 parent 8e7961e commit 29f8dc9
Show file tree
Hide file tree
Showing 23 changed files with 3,236 additions and 42 deletions.
8 changes: 8 additions & 0 deletions capacitor.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"appId": "io.playos.app",
"appName": "PlayOS",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"cordova": {}
}
1 change: 1 addition & 0 deletions declaration.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
declare var __non_webpack_require__: any;
6 changes: 6 additions & 0 deletions electron/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# NPM renames .gitignore to .npmignore
# In order to prevent that, we remove the initial "."
# And the CLI then renames it

app/
node_modules/
8 changes: 8 additions & 0 deletions electron/capacitor.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"appId": "io.playos.app",
"appName": "PlayOS",
"bundledWebRuntime": false,
"npmClient": "npm",
"webDir": "www",
"cordova": {}
}
93 changes: 93 additions & 0 deletions electron/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
const { app, BrowserWindow, Menu } = require('electron');
const isDevMode = require('electron-is-dev');
const { CapacitorSplashScreen } = require('@capacitor/electron');
const path = require('path');

app.setName('PlayOS');

// Place holders for our windows so they don't get garbage collected.
let mainWindow = null;

// Placeholder for SplashScreen ref
let splashScreen = null;

// Change this if you do not wish to have a splash screen
const useSplashScreen = false;

// Create simple menu for easy devtools access, and for demo
const menuTemplateDev = [
{
label: 'Options',
submenu: [
{
label: 'Open Dev Tools',
click() {
mainWindow.openDevTools();
},
},
],
},
];

async function createWindow() {
// Define our main window size
mainWindow = new BrowserWindow({
title: 'PlayOS',
height: 920,
width: 1600,
show: false,
webPreferences: {
nodeIntegration: true,
preload: path.join(
__dirname,
'node_modules',
'@capacitor',
'electron',
'dist',
'electron-bridge.js',
),
},
});

if (isDevMode) {
// Set our above template to the Menu Object if we are in development mode, dont want users having the devtools.
Menu.setApplicationMenu(Menu.buildFromTemplate(menuTemplateDev));
// If we are developers we might as well open the devtools by default.
mainWindow.webContents.openDevTools();
}

if (useSplashScreen) {
splashScreen = new CapacitorSplashScreen(mainWindow);
splashScreen.init(false);
} else {
mainWindow.setTitle('PlayOS');
mainWindow.loadURL(`file://${__dirname}/app/index.html`);
mainWindow.webContents.on('dom-ready', () => {
mainWindow.show();
});
}
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some Electron APIs can only be used after this event occurs.
app.on('ready', createWindow);

// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
if (process.platform !== 'darwin') {
app.quit();
}
});

app.on('activate', () => {
// On OS X it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (mainWindow === null) {
createWindow();
}
});

// Define any IPC or other custom functionality below here
Loading

0 comments on commit 29f8dc9

Please sign in to comment.