Giter Club home page Giter Club logo

kerosene's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kerosene's Issues

Add documentation

We need some documentation explaining the project as a whole and how to use parts.

We also need something like JSDoc to generate documentation for all the functions that we export.

Finally, this needs to be hosted somewhere.

Customise test-id cypress command

Following on from #66

Not everyone uses data-test-id, so it would be good to configure your cypress with your preferred convention, ie data-testid. And have the cy.testId command know which one you're using.

@kablamo/kerosense is currently not tree-shakeable

In packages/kerosense/src/index.ts, we currently do

import * as arrayUtils from './array';
import * as stringUtils from './string';

export default {
  ...arrayUtils,
  ...stringUtils,
};

A single default export here is not tree-shakeable, because it is not statically analysable. We should instead export each method individually. To avoid repetitiveness, we could use a similar build system to lodash where the JSDoc of each method is used to automatically generate all the import/export statements in the output and group methods into categories (array, string, etc.).

We also currently just produce CommonJS output which cannot be tree-shaken either. The solution to this would be to produce multiple output files, with the "main" field in package.json pointing to the CommonJS build and the "module" field used by bundling tools pointing to an ES modules build.

We also have a dependency on lodash where we are not currently using cherry-picked method imports (like import identity from "lodash/identity";). I would suggest that either we use cherry-picked imports ourselves, or instead build with @babel/preset-typescript so that we may use babel-plugin-lodash which will do this for us.

Fix publishing to npm on push to master

When a push to master is made, attempt to publish to npm.

You are required to increment the version by hand (or in a PR) as a means of change control, to trigger a new deployment.

This means we can run master as trunk-based-development, and control releases by increment versions in package.json.

Add more eslint configurations for specific applications

A PR is incoming that will add some eslint rules themselves, along with a small config to enable them.

We should also consider creating one or more eslint configurations we can use in our projects, that we could pull in via:

module.exports = {
  plugins: ["@kablamo"],
  extends: [
    "plugin:@kablamo/recommended",
    "plugin:@kablamo/react",
  ]
};

?

?

Add PR checks

Run builds, and tests on PR's:

  • run tests
  • run coverage.

[Tooling] Work out a better way to build

     "prebuild": "yarn workspace @kablamo/kerosene run build", 

is required because kerosene-ui depends on kerosene.

Is there a better way to do this? We should be able to keep the build system to a single command.

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.