Skip to content
View olmokit's full-sized avatar
Block or Report

Block or report olmokit

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
olmokit/README.md

Olmo

Codacy Badge

Monorepo for the whole Olmo Kit, offical documentation at olmokit.github.io/olmokit

Contribute

Develop locally

Clone this repo locally and install dependencies running

pnpm i

This will automatically run the postinstall script which builds and globally link all packages. In this way we ensure dependencies of each package are installed within the correct pnpm link structure. From then on you can simply run pnpm start to start compiling a package in watch mode. You will be prompt to pick a single package to watch.

Now in your test project bootstrapped with @olmokit/create-app you can run pnpm olmo link to use the globally linked packages from your machine.

Develop the docs locally at localhost:3000/olmokit running

pnpm docs

Publish packages

First commit and push your local work. Then, never manually bump package versions, just run form the terminal:

pnpm dev publish

Dev notes

  • Switch between php versions on linux sudo update-alternatives --set php /usr/bin/php (then press tab for autocomlete options).

TODO:

  • preview: via URL param only applied to the base controller of each Laravel Route
  • maybe implement JamieMason/syncpack for this monorepo

FIXME: Migration notes

Projects migration guide
  • Fillform deprecation:
    • in .scss files find and replace "FF-" with "OF-"
Import paths from libs
// from
import { getQueryParams } from "@acanto/core/helpers";
// to
import { getUrlQueryParams } from "@olmokit/utils";

import { changeUrlParams } from "@acanto/core/helpers";
import { navigateToMergedParams } from "@olmokit/browser";

import { removeUrlParam } from "@acanto/core/helpers";
import { navigateWithoutUrlParam } from "@olmokit/browser";

import { removeDuplicatesByKey } from "@acanto/core/helpers";
import { removeDuplicatesByKey } from "@olmokit/utils";

import { debounce } from "@acanto/core/helpers";
import { debounce } from "@olmokit/utils";

import { transitionBarbaCurtain } from "@acanto/core/transitions";
import { transitionsBarbaCurtain } from "@acanto/core/transitions";

import { $$ } from "@acanto/core/dom";
import { $all } from "@olmokit/dom";
// also replace the usages of the $$ function

import { initSwiper } from "@acanto/core/swiper";
import { swiperInit } from "@olmokit/core/swiper";

import { navigation } from "@acanto/core/swiper";
import { swiperNavigationOptions } from "@olmokit/core/swiper";

import { IMG_EMPTY_PLACEHOLDER } from "@acanto/core/img";
import { imgEmptyPixel } from "@olmokit/utils";

import { getCookie } from "@acanto/core/cookies";
import { readCookie } from "@olmokit/utils";

import { setCookie } from "@acanto/core/cookies";
import { setCookie } from "@olmokit/utils";

import { deleteCookie } from "@acanto/core/cookies";
import { removeCookie } from "@olmokit/utils";
GSAP custom version

That seem not needed anymore, it is better to install it specifically in the project that needs it, before we had for npm in the project's package.json the resolutions data, added now is what would need pnpm instead:

  resolutions": {
    "gsap": "file:src/vendor/gsap-bonus.tgz"
  },
  "pnpm": {
    "overrides": {
      "gsap": "file:src/vendor/gsap-bonus.tgz"
    }
  },

Note that today you can also use the natively supported overrides in the package.json file. It is better to deprecate all this, also update the related doc file and probably remove the vendor folder from the laravel template, or just keep it empty?.

Manteinance

Outdated packages

$ pnpm i
 WARN  deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
 WARN  deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead

$ pnpm why stable@0.1.8
dependencies:
svg-sprite 2.0.2
└─┬ svgo 2.8.0
└── stable 0.1.8

$ pnpm why rollup-plugin-terser@7.0.2
dependencies:
workbox-webpack-plugin 7.0.0
└─┬ workbox-build 7.0.0
└── rollup-plugin-terser 7.0.2

$ pnpm why sourcemap-codec@1.4.8
dependencies:
workbox-webpack-plugin 7.0.0
└─┬ workbox-build 7.0.0
├─┬ @rollup/plugin-replace 2.4.2
│ └─┬ magic-string 0.25.9
│ └── sourcemap-codec 1.4.8
└─┬ @surma/rollup-plugin-off-main-thread 2.2.3
└─┬ magic-string 0.25.9
└── sourcemap-codec 1.4.8

Using in package.json:

  "pnpm": {
    "overrides": {
      "rollup-plugin-terser": "@rollup/plugin-terser@0.4.3",
    }
  }

does not work, workbox-webpack-plugin complains, follow the related issue

Pinned

  1. olmokit olmokit Public

    Monorepo for the whole Olmo Kit ecosystem

    TypeScript