GithubHelp home page GithubHelp logo

apex-ui-slim's Introduction

No longer maintained

This software is no longer being maintainted and should not be chosen for new projects. See this issue for more information

Apex Serverless Architecture

Apex lets you build, deploy, and manage AWS Lambda functions with ease. With Apex you can use languages that are not natively supported by AWS Lambda through the use of a Node.js shim injected into the build. A variety of workflow related tooling is provided for testing functions, rolling back deploys, viewing metrics, tailing logs, hooking into the build system and more.

This project is designed for event-driven pipelines as it does not abstract away FaaS (functions as a service). If you are building web applications, APIs, or sites, consider using Apex Up, which provides a more out-of-the-box experience for these use-cases.

Installation

On macOS, Linux, or OpenBSD run the following:

curl https://raw.githubusercontent.com/apex/apex/master/install.sh | sh

Note that you may need to run the sudo version below, or alternatively chown /usr/local:

curl https://raw.githubusercontent.com/apex/apex/master/install.sh | sudo sh

On Windows download binary.

After downloading, rename binary file 'apex.exe', then add to PATH.

If already installed, upgrade with:

apex upgrade

Runtimes

Currently supports:

  • Node.js
  • Golang
  • Python
  • Ruby
  • Java
  • Rust
  • Clojure

Example projects for all supported runtimes can be found in _examples directory.

Features

  • Supports languages Lambda does not natively support via shim
  • Binary install (install apex quickly for continuous deployment in CI etc)
  • Hook support for running commands (transpile code, lint, dependency management, etc)
  • Batteries included but optional (opt-in to higher level abstractions)
  • Environment variable population via command-line, file, or inline config
  • Idempotent deployments (checksums skip already-deployed code)
  • Multiple environments via project.ENV.json and function.ENV.json files
  • Configuration inheritance and overrides
  • Command-line function invocation with JSON streams
  • Command & function name autocompletion
  • Function name globbing (ex: apex deploy api_*)
  • Transparently generates a zip for your deploy
  • Project bootstrapping with optional Terraform support
  • Function metrics and cost analysis
  • Ignore deploying files with .apexignore
  • Function rollback support
  • Tail function logs
  • Concurrency for quick deploys
  • Dry-run to preview changes
  • VPC support
  • Multiple region support
  • Lambda@Edge support

Sponsors

Does your company use Apex? Help keep the project bug-free and feature rich by sponsoring the project.

Backers

Love our work and community? Become a backer.

Example

Apex projects are made up of a project.json configuration file, and zero or more Lambda functions defined in the "functions" directory. Here's an example file structure:

project.json
functions
├── bar
│   ├── function.json
│   └── index.js
└── foo
    ├── function.json
    └── index.js

The project.json file defines project level configuration that applies to all functions, and defines dependencies. For this simple example the following will do:

{
  "name": "example",
  "description": "Example project"
}

Each function uses a function.json configuration file to define function-specific properties such as the runtime, amount of memory allocated, and timeout. This file is completely optional, as you can specify defaults in your project.json file. For example:

{
  "name": "bar",
  "description": "Node.js example function",
  "runtime": "nodejs4.3",
  "memory": 128,
  "timeout": 5,
  "role": "arn:aws:iam::293503197324:role/lambda"
}

Now the directory structure for your project would be:

project.json
functions
├── bar
│   └── index.js
└── foo
    └── index.js

Finally the source for the functions themselves look like this in Node.js:

console.log('start bar')
exports.handle = function(e, ctx) {
  ctx.succeed({ hello: e.name })
}

Apex operates at the project level, but many commands allow you to specify specific functions. For example you may deploy the entire project with a single command:

$ apex deploy

Or whitelist functions to deploy:

$ apex deploy foo bar

Invoke it!

$ echo '{ "name": "Tobi" }' | apex invoke bar
{ "hello": "Tobi" }

See the Documentation for more information.

Links


Build Status Slack Status GoDoc OpenCollective OpenCollective

apex-ui-slim's People

Contributors

choco-cieslik avatar dpo avatar tj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

apex-ui-slim's Issues

Publish

APM is not letting me publish. Until then you might have to clone and apm link

atom/apm#454

Issue with tool-bar package

I use the julia-client package, which provides a custom tool bar (using the API provided by the tool-bar package). When the tool bar is on the left or right, the top icon is cropped (only is very bottom is visible):

screen shot 2017-09-03 at 14 54 26

If the tool bar is on the top, only the very top of icons is visible. The rest is hidden by the tabs. If the tool bar is on the bottom, only the rightmost icons are visible. The others are hidden by the tree view. I'm not sure what settings need to be adjusted to fix this.

OS X controls being overlayed

HOT DAMN THIS IS HOT! AWESOME WORK!

One issue from my side, and it's more an annoyance than anything else at the moment.

I installed the apex-ui-slim along with the apex-syntax. I also enabled custom toolbars, but now I see the following:

screenshot 2017-01-17 15 08 46

If I install the no-title-bar then the tabs get all compressed and ugly:

screenshot 2017-01-17 15 10 11


System: macOS Sierra 10.12.2
Atom: 1.13.0 x64

Example stylesheet adjustments to fix some common issues

Hey 😃

I have been putting fixes in my custom stylesheet to help with some common problems I have been experiencing. It helps with #10 and #11

I thought it worth sharing here. I will keep updating it as I find more issues/fixes. Perhaps after a while we could consider patching your plugin with some of these.

/**
 * FIXES FOR APEX-UI-SLIM AND APEX-SYNTAX PLUGINS 
 * Last Updated: 2017/01/23 12:57 UTC+00:00
 */

// Drops the tree-view on left so that the OS X controls aren't overlayed.
atom-panel.tool-panel.panel-left .tree-view-scroller {
  margin-top: 30px;
}

// We dont't want to see the title bar.
atom-panel.panel-header .title-bar {
  visibility: hidden;
}

// Fixes Modals as their widths vary drastically and tend to shift as you
// type input, so preferring a fixed width.
.tree-view-dialog,
.modal.overlay > .select-list {
  width: 80vw;
}

// The highlighted/selected text is too invisible to see.
.command-palette .list-group .character-match {
  color: #000;
}

// Fix the highlighting of items in the tree-view, as the colors change,
// especially with git status it's easier to use an underline to indicate
// the currently selected item.
.tree-view .directory.selected > .header,
.tree-view .list-item.selected {
  color: #212529;
  text-decoration: underline;
}

// Show currently selected item in select lists.
.select-list .list-group li.selected {
  border-left: solid 1px #212529;
}

// We want our wrap guides still. :)
atom-text-editor .wrap-guide, atom-text-editor .wrap-guide {
  background-color: #edecec;
}

// Fixes text highlight on modal popups
.modal atom-text-editor .highlight > .region {
  background: #edecec !important;
}

The above works well with the apex-ui-slim and apex-syntax plugins, along with the atom setting to allow custom titlebars enabled:

screenshot 2017-01-23 09 26 18

Tabs misses top-margin

Hey!

After installer apex-ui-slim and no-title-bar my tab doesn't have any top-margin.

Example:
screen shot 2017-01-13 at 16 33 41

How to fix that?

gutter and line number improvements

// ===============================================================
// https://github.com/apex/apex-ui-slim/blob/81f8ac49c0b1632e459a7d04a6febbdb3a39261c/styles/open-color.less#L16-L30

@oc-gray-list: #f8f9fa, #f1f3f5, #e9ecef, #dee2e6, #ced4da, #adb5bd, #868e96, #495057, #343a40, #212529;

@oc-gray-0: extract(@oc-gray-list, 1);
@oc-gray-1: extract(@oc-gray-list, 2);
@oc-gray-2: extract(@oc-gray-list, 3);
@oc-gray-3: extract(@oc-gray-list, 4);
@oc-gray-4: extract(@oc-gray-list, 5);
@oc-gray-5: extract(@oc-gray-list, 6);
@oc-gray-6: extract(@oc-gray-list, 7);
@oc-gray-7: extract(@oc-gray-list, 8);
@oc-gray-8: extract(@oc-gray-list, 9);
@oc-gray-9: extract(@oc-gray-list, 10);

// ===============================================================
// @balupton's things

// needed for the git gutter variables
@import "syntax-variables";

// https://github.com/atom/git-diff/pull/19
atom-workspace.theme-apex-ui-slim atom-text-editor,
atom-text-editor {
	.gutter .line-number {
		&.git-line-modified {
			background: @syntax-color-modified;
			color: white;
		}
		&.git-line-added {
			background: @syntax-color-added;
			color: white;
		}
		&.git-line-removed {
			background: @syntax-color-removed;
			color: white;
		}
	}
}

// apex ui modifications
// https://github.com/apex/apex-ui-slim/issues/9
atom-workspace.theme-apex-ui-slim {
	// fix padding on tab bar
	.tab-bar {
		margin: 0;
	}
	.tree-view-resizer {
		border: 0;
	}

	// line numbers
	atom-text-editor {
		// hide line numbers
		.gutter {
			.line-number {
				opacity: 1;
				transition: color 0.5s cubic-bezier(0.23, 1, 0.32, 1);
				background: @base-background-color;
				color: @base-background-color;
			}
		}

		// show line numbers when gutter hover or selection
		.gutter {
			.line-number.cursor-line:not(.cursor-line-no-selection) {
				color: @oc-gray-5;
			}
			&:hover {
				.line-number {
					color: @oc-gray-4;
				}
				.line-number.cursor-line:not(.cursor-line-no-selection) {
					color:  @oc-gray-7;
				}
			}
		}

		// change modification line numbers to hide/show accordingly
		.gutter .line-number {
			&.git-line-modified {
				color: @syntax-color-modified;
			}
			&.git-line-added {
				color: @syntax-color-added;
			}
			&.git-line-removed {
				color: @syntax-color-removed;
			}
		}
		.gutter .line-number.cursor-line:not(.cursor-line-no-selection),
		.gutter:hover .line-number {
			&.git-line-modified,
			&.git-line-added,
			&.git-line-removed {
				color: white;
			}
		}
	}
}

Standard code:

screen shot 2017-01-17 at 8 51 38 am

Code with changes:

screen shot 2017-01-17 at 8 53 27 am

Code with highlight:

screen shot 2017-01-17 at 8 53 32 am

Code with highlight and hover on gutter:

screen shot 2017-01-17 at 8 53 34 am


from balupton/dotfiles@5af8ede and https://github.com/balupton/dotfiles/blob/5af8ede663d5e5e975a7b0646e032e3d9d83aff7/.atom/styles.less

Deprecated selector in `apex-ui-slim/index.less`

In apex-ui-slim/index.less:

Starting from Atom v1.13.0, the contents of atom-text-editor elements are no longer encapsulated within a shadow DOM boundary. This means you should stop using :host and ::shadow pseudo-selectors, and prepend all your syntax selectors with syntax--. To prevent breakage with existing style sheets, Atom will automatically upgrade the following selectors:

  • atom-text-editor[mini].is-focused::shadow .cursor => atom-text-editor[mini].is-focused.editor .cursor

  • atom-text-editor[mini] .placeholder-text, atom-text-editor[mini]::shadow .placeholder-text => atom-text-editor[mini] .placeholder-text, atom-text-editor[mini].editor .placeholder-text

  • atom-text-editor[mini] .selection .region, atom-text-editor[mini]::shadow .selection .region => atom-text-editor[mini] .selection .region, atom-text-editor[mini].editor .selection .region

  • atom-text-editor[mini] .cursor, atom-text-editor[mini]::shadow .cursor => atom-text-editor[mini] .cursor, atom-text-editor[mini].editor .cursor

Automatic translation of selectors will be removed in a few release cycles to minimize startup time. Please, make sure to upgrade the above selectors as soon as possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.