Skip to content

Internal utils of Ember Power Calendar built on top of Luxon

Notifications You must be signed in to change notification settings

cibernox/ember-power-calendar-luxon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1eb8a7a · Sep 9, 2024

History

91 Commits
Jun 28, 2024
Jun 28, 2024
Sep 9, 2024
Jun 28, 2024
May 19, 2021
Jun 28, 2024
Jan 3, 2024
Jan 3, 2024
Jun 28, 2024
Jan 3, 2024
Nov 15, 2023
Sep 9, 2024
Jun 28, 2024
Jun 28, 2024

Repository files navigation

ember-power-calendar-luxon

Date manipulation, formatting and parsing is too complex for ember-power-calendar to reinvent, so it has to rely on other well tested libraries for that.

This is the addon that exposes the utils used internally by ember-power-calendar, using Luxon.js underneath, a lighter (and arguably with a nicer API) alternative to moment.js that leverages the browser's Intl API for localization.

You will want to install this addon if you already use luxon in your application already, or if luxon is your preferred date manipulation library.

Compatibility

  • Ember.js v3.28 or above
  • Embroider or ember-auto-import 2.0

Installation

ember install ember-power-calendar-luxon

Add the following lines into you app/app.js to register this meta addon to ember-power-calendar

import { registerDateLibrary } from 'ember-power-calendar';
import DateUtils from 'ember-power-calendar-luxon';

registerDateLibrary(DateUtils);

Setup for Embroider

The luxon package has conditional exports, which will not correctly handled in app. Cause of this issue, there are two different instance of luxon inside the app. The app imports CommonJs package but embroider force the import of ESModule. This means that luxon settings which you are setting inside your app are not synced with addon.

To fix this issue, you need to add this lines in embroider options. This force the import always to ESModule and so you have only one luxon instance inside your app.

const path = require('path');

return require('@embroider/compat').compatBuild(app, Webpack, {
  packagerOptions: {
    webpackConfig: {
      resolve: {
        alias: {
          luxon: path.resolve(__dirname, 'node_modules/luxon/build/node/luxon.js'),
        },
      },
    },
  },
});

Usage

Don't use it.

This library is meant to be used internally by ember-power-calendar only.

The API can change in breaking ways based on the needs of Ember Power Calendar.

Contributing

Installation

  • git clone <repository-url>
  • cd ember-power-calendar-luxon
  • pnpm install

Linting

  • pnpm lint
  • pnpm lint:fix

Running tests

  • ember test – Runs the test suite on the current Ember version
  • ember test --server – Runs the test suite in "watch mode"
  • ember try:each – Runs the test suite against multiple Ember versions

Running the dummy application

License

This project is licensed under the MIT License.