Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/michalzaq12/xpda-dev

Cross platform desktop app development tools
https://github.com/michalzaq12/xpda-dev

Last synced: about 2 months ago
JSON representation

Cross platform desktop app development tools

Awesome Lists containing this project

README

        





xpda-dev



Cross platform desktop app development tools



Everything in xpda-dev is based on high level abstraction, so you can easily write own implementation




Install

Install with npm:

```bash
npm install --save-dev @xpda-dev/core
```

Concepts

### Steps

Step allows you to build or do everything you wish with your application to make it ready to use.

**Each step must implement [IStep](https://github.com/michalzaq12/xpda-dev/blob/master/packages/core/src/IStep.ts) interface**

| Name | Description | Constructor options | Requirements |
| ------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| Webpack | Transpile your code with [webpack](https://github.com/webpack/webpack) | [IWebpackOptions](https://github.com/michalzaq12/xpda-dev/blob/master/packages/webpack-step/src/Webpack.ts#L8) | [@xpda-dev/webpack-step](https://www.npmjs.com/package/@xpda-dev/webpack-step) |

### Launcher

Launcher allows you to run application when all steps completed (step may fail). _Launcher works only in development mode._

**Launcher must implement [ILauncher](https://github.com/michalzaq12/xpda-dev/blob/master/packages/core/src/ILauncher.ts) interface**

| Name | Description | Options | Requirements |
| ---------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| ElectronLauncher | Launch [electron](https://github.com/electron/electron) | [IElectronOptions](https://github.com/michalzaq12/xpda-dev/blob/master/packages/electron-launcher/src/ElectronLauncher.ts#L6) | [@xpda-dev/electron-launcher](https://www.npmjs.com/package/@xpda-dev/electron-launcher) |

### Launcher

// TODO

Examples

- Electron cross platform app. Main process was written with help of Typescript

```javascript
const electron = require('electron')
const { Pipeline } = require('@xpda-dev/core')
const { Webpack } = require('@xpda-dev/webpack-step')
const { ElectronLauncher } = require('@xpda-dev/electron-launcher')

const launcher = new ElectronLauncher({
entryFile: './dist/index.js',
electronPath: electron,
})

const webpackConfig = Webpack.getTypescriptConfig({
tsconfig: './tsconfig.json',
entry: './index.ts',
output: {
filename: 'index.js',
path: './dist',
},
})

const webpackStep = new Webpack({
webpackConfig: webpackConfig,
launcher: launcher,
})

const pipe = new Pipeline({
title: 'electron-pipeline',
isDevelopment: true,
steps: [webpackStep],
launcher: launcher,
})

pipe.run()
```