npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@google/aside

v1.3.4

Published

Apps Script IDE framework

Downloads

148

Readme

Apps Script in IDE (ASIDE)

NPM Version GitHub Action: CI Code Style: Google

Overview

Apps Script in IDE (ASIDE) supports modern, robust and scalable Apps Script development by providing a framework for a local coding environment capable of formatting, linting, testing and much more.

Here are the main features:

  • TypeScript

    Write your code in TypeScript. It will be automatically compiled and bundled when deploying

  • Formatting / Linting

    Leverage the power of ESLint and Prettier to enforce a unique coding style amongst collaborators

  • Testing

    Use Jest to test your code before deploying

  • Multiple Environments

    Seemlessly switch between dev and prod environments to push your code to

Getting Started

The simplest way to get started is:

npx @google/aside init

What it does

After running the init command above, ASIDE will go ahead and do the following:

  • Add configuration files

    E.g. for ESLint, Prettier, Jest, ...

  • Set convenience scripts in package.json

    Those scripts include: lint, build and deploy, among others

  • Install necessary dependencies

    Everything required for formatting, linting, testing, etc. will be installed automatically

  • Set up clasp

    ASIDE is using clasp to pull and push code from and to Apps Script

Options

You can provide the init command with some convenience options:

  • --yes / -y

    Answer 'yes' to all prompts

  • --no / -n

    Answer 'no' to all prompts

  • --title/ -t

    Set project title without being asked for it

  • --script-dev

    Set Script ID for dev environment without being asked for it

  • --script-prod

    Set Script ID for production environment without being asked for it

Troubleshooting

Unknown token 'export'

While bundling generally resolves all exports and imports it keeps exports in the entrypoint causing clasp to fail pushing. This can be an issue for example if you're trying to export functions from index.ts for testing.

The recommended approach is to use the entrypoint (index.ts) only to expose global functions to Apps Script while importing all business logic from separate modules.

Module not included in bundle

Bundling includes treeshaking of unused files to keep the bundle size as small as possible. If any of your modules contain only global functions with no import-path leading to the entrypoint (e.g. to be called from the menu), those would not be included in the bundle.

To avoid this, you can use the following workaround:

Export a dummy variable from your module:

export const dummy = null;

Import and call the dummy variable in your entrypoint:

import { dummy } from './path/to/module';

dummy;

As long as anything from a file is being used, the entire file will be kept.

Disclaimer

This is not an officially supported Google product.