Skip to content

Commit

Permalink
Try @guardian/source package once more (#1435)
Browse files Browse the repository at this point in the history
Co-authored-by: Oliver Abrahams <ollie.abrahams@guardian.co.uk>
Co-authored-by: Alex Sanders <alex@sndrs.dev>
  • Loading branch information
sndrs and oliverabrahams committed May 13, 2024
1 parent cd5435c commit e60f79e
Show file tree
Hide file tree
Showing 38 changed files with 1,727 additions and 397 deletions.
5 changes: 5 additions & 0 deletions .changeset/popular-pumas-draw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@guardian/source': minor
---

third attempt
40 changes: 40 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,46 @@ install: check-node-version
@guardian/prettier\:lint: env
@corepack pnpm nx run @guardian/prettier:lint --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:build
@guardian/source\:build: env
@corepack pnpm nx run @guardian/source:build --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:build-storybook
@guardian/source\:build-storybook: env
@corepack pnpm nx run @guardian/source:build-storybook --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:build-type-presets
@guardian/source\:build-type-presets: env
@corepack pnpm nx run @guardian/source:build-type-presets --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:create-icons
@guardian/source\:create-icons: env
@corepack pnpm nx run @guardian/source:create-icons --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:dev
@guardian/source\:dev: env
@corepack pnpm nx run @guardian/source:dev --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:fix
@guardian/source\:fix: env
@corepack pnpm nx run @guardian/source:fix --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:lint
@guardian/source\:lint: env
@corepack pnpm nx run @guardian/source:lint --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:storybook
@guardian/source\:storybook: env
@corepack pnpm nx run @guardian/source:storybook --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:test
@guardian/source\:test: env
@corepack pnpm nx run @guardian/source:test --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source\:verify-dist
@guardian/source\:verify-dist: env
@corepack pnpm nx run @guardian/source:verify-dist --skip-nx-cache=$(SKIP_NX_CACHE)

.PHONY: @guardian/source-foundations\:build
@guardian/source-foundations\:build: env
@corepack pnpm nx run @guardian/source-foundations:build --skip-nx-cache=$(SKIP_NX_CACHE)
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ The following packages live in `libs/@guardian/*` and are published to NPM:
- [@guardian/libs](libs/@guardian/libs)
- [@guardian/newsletter-types](libs/@guardian/newsletter-types)
- [@guardian/prettier](libs/@guardian/prettier)
- [@guardian/source](libs/@guardian/source)
- [@guardian/source-foundations](libs/@guardian/source-foundations)
- [@guardian/source-react-components](libs/@guardian/source-react-components)
- [@guardian/source-react-components-development-kitchen](libs/@guardian/source-react-components-development-kitchen)
Expand Down Expand Up @@ -185,6 +186,19 @@ Project-specific tasks are defined as `scripts` in a `package.json` or `targets`
- `make @guardian/prettier:fix`
- `make @guardian/prettier:lint`

#### @guardian/source

- `make @guardian/source:build`
- `make @guardian/source:build-storybook`
- `make @guardian/source:build-type-presets`
- `make @guardian/source:create-icons`
- `make @guardian/source:dev`
- `make @guardian/source:fix`
- `make @guardian/source:lint`
- `make @guardian/source:storybook`
- `make @guardian/source:test`
- `make @guardian/source:verify-dist`

#### @guardian/source-foundations

- `make @guardian/source-foundations:build`
Expand Down
5 changes: 5 additions & 0 deletions apps/storybooks/.storybook/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ module.exports = {
// port set in libs/@guardian/source-react-components-development-kitchen/package.json
url: 'http://localhost:4403',
},
source: {
title: 'source',
// port set in libs/@guardian/source/package.json
url: 'http://localhost:4404',
},
};
},
};
29 changes: 18 additions & 11 deletions configs/rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
/** @typedef {import("rollup").RollupOptions["plugins"]} Plugins */
/** @typedef {import("rollup").RollupOptions["input"]} Input */

import commonjs from '@rollup/plugin-commonjs';
import json from '@rollup/plugin-json';
import { nodeResolve } from '@rollup/plugin-node-resolve';
import { dts } from 'rollup-plugin-dts';
import esbuild from 'rollup-plugin-esbuild';
import { nodeExternals } from 'rollup-plugin-node-externals';

/** @type {import("rollup").RollupOptions.input} */
const input = { index: 'src/index.ts' };
/** @type {Input} */
const defaultInput = { index: 'src/index.ts' };

/** @type {import("rollup").RollupOptions.output} */
const output = {
Expand All @@ -16,23 +19,27 @@ const output = {
preserveModulesRoot: 'src',
};

/** @type {import("rollup").RollupOptions.plugins} */
const plugins = [
/** @type {Plugins} */
const defaultPlugins = [
nodeResolve({
extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'],
extensions: ['.cjs', '.mjs', '.js', '.jsx', '.ts', '.tsx', '.json'],
}),
commonjs(),
json(),
esbuild(),
nodeExternals(),
];

/** @type {import("rollup").RollupOptions} */
export default [
/**
* @param {object} param0
* @param {Plugins} param0.plugins
* @param {Input} param0.input
* @returns {import("rollup").RollupOptions[]}
*/
export default ({ input = defaultInput, plugins = [] }) => [
{
input,
output,
plugins,
plugins: [...defaultPlugins, ...plugins, esbuild()],
},
{
input,
Expand All @@ -41,11 +48,11 @@ export default [
format: 'cjs',
entryFileNames: '[name].cjs',
},
plugins,
plugins: [...defaultPlugins, ...plugins, esbuild()],
},
{
input,
output,
plugins: [dts()],
plugins: [...defaultPlugins, ...plugins, dts()],
},
];
58 changes: 58 additions & 0 deletions libs/@guardian/source/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
module.exports = {
extends: ['../../../.eslintrc.cjs'],
ignorePatterns: [
'!**/*',
'node_modules',
'jest.dist.*', // depends on build output, so don't lint it
'.wireit',
'dist',
'storybook-static',
],
overrides: [
{
files: ['*.ts', '*.tsx'],
parserOptions: {
tsconfigRootDir: __dirname,
},
rules: {},
},
{
files: ['*.js', '*.jsx'],
rules: {},
},
{
files: ['**/*.test.*'],
env: {
jest: true,
},
},
{
files: ['*.test.ts', '*.stories.*'],
rules: {
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
},
},
{
// these are only internal files, so we don't need to check them so
// rigorously they often use things like JSON which are `any`s too,
// we can be more lenient
files: ['scripts/**/*'],
rules: {
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
},
},
{
files: ['**/*.stories.tsx'],
rules: {
// storybook require this
'import/no-default-export': 'off',
},
},
],
};
22 changes: 22 additions & 0 deletions libs/@guardian/source/.storybook/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const rootMain = require('../../../../.storybook/main');

// To customise your Storybook config for this project, update this file

module.exports = {
...rootMain,

core: { ...rootMain.core },

stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
addons: [...rootMain.addons],
webpackFinal: async (config, { configType }) => {
// apply any global webpack configs that might have been specified in .storybook/main.js
if (rootMain.webpackFinal) {
config = await rootMain.webpackFinal(config, { configType });
}

// add your own webpack tweaks if needed

return config;
},
};
6 changes: 6 additions & 0 deletions libs/@guardian/source/.storybook/manager.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { addons } from '@storybook/manager-api';
import { theme } from './theme';

addons.setConfig({
theme,
});
Loading

0 comments on commit e60f79e

Please sign in to comment.