Pārlūkot izejas kodu

Switch approach for next.js bundling

Copy blank next.js project to amanuensis internal.
master
TheoryOfNekomata pirms 10 mēnešiem
vecāks
revīzija
db60f78562
26 mainītis faili ar 423 papildinājumiem un 973 dzēšanām
  1. +7
    -1
      .amanuensis/components/Wrapper.tsx
  2. +0
    -4
      packages/amanuensis/.gitignore
  3. +0
    -9
      packages/amanuensis/default/components/Wrapper.tsx
  4. +3
    -23
      packages/amanuensis/package.json
  5. +0
    -10
      packages/amanuensis/pages/_app.tsx
  6. +0
    -36
      packages/amanuensis/pages/index.tsx
  7. +5
    -84
      packages/amanuensis/src/commands/analyze.ts
  8. +77
    -0
      packages/amanuensis/src/commands/init.ts
  9. +118
    -0
      packages/amanuensis/src/commands/refresh.ts
  10. +4
    -4
      packages/amanuensis/src/commands/serve.ts
  11. +4
    -2
      packages/amanuensis/src/index.ts
  12. +4
    -0
      packages/amanuensis/src/next/.eslintrc.json
  13. +35
    -0
      packages/amanuensis/src/next/.gitignore
  14. +15
    -0
      packages/amanuensis/src/next/components/Wrapper.tsx
  15. +25
    -0
      packages/amanuensis/src/next/next.config.js
  16. +25
    -0
      packages/amanuensis/src/next/package.json
  17. +5
    -0
      packages/amanuensis/src/next/pages/_app.tsx
  18. +13
    -0
      packages/amanuensis/src/next/pages/_document.tsx
  19. Binārs
      packages/amanuensis/src/next/public/favicon.ico
  20. +1
    -0
      packages/amanuensis/src/next/public/next.svg
  21. +1
    -0
      packages/amanuensis/src/next/public/vercel.svg
  22. +23
    -0
      packages/amanuensis/src/next/tsconfig.json
  23. +1
    -20
      packages/amanuensis/src/utils/data.ts
  24. +1
    -3
      packages/amanuensis/tsconfig.eslint.json
  25. +2
    -5
      packages/amanuensis/tsconfig.json
  26. +54
    -772
      pnpm-lock.yaml

+ 7
- 1
.amanuensis/components/Wrapper.tsx Parādīt failu

@@ -1,4 +1,10 @@
export const Wrapper = ({
import {FC, ReactNode} from 'react';

export interface WrapperProps {
children: ReactNode;
}

export const Wrapper: FC<WrapperProps> = ({
children,
}) => {
return (


+ 0
- 4
packages/amanuensis/.gitignore Parādīt failu

@@ -105,9 +105,5 @@ dist
.tern-port

.npmrc
.next/
types/
.amanuensis/
components/
pages/**/*.md
pages/**/*.mdx

+ 0
- 9
packages/amanuensis/default/components/Wrapper.tsx Parādīt failu

@@ -1,9 +0,0 @@
export const Wrapper = ({
children,
}) => {
return (
<div>
{children}
</div>
)
};

+ 3
- 23
packages/amanuensis/package.json Parādīt failu

@@ -17,8 +17,6 @@
],
"devDependencies": {
"@types/node": "^18.14.1",
"@types/react": "^18.2.18",
"@types/react-dom": "18.2.6",
"@types/yargs": "^17.0.24",
"eslint": "^8.35.0",
"eslint-config-lxsmnsyc": "^0.5.0",
@@ -54,33 +52,15 @@
"access": "public"
},
"dependencies": {
"@mdx-js/loader": "^2.3.0",
"@mdx-js/react": "^2.3.0",
"@next/mdx": "^13.4.12",
"execa": "^7.2.0",
"glob": "^10.3.3",
"minimatch": "^9.0.3",
"mkdirp": "^3.0.1",
"next": "13.4.7",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-markdown": "^8.0.7",
"typedoc": "^0.24.8",
"yargs": "^17.7.2",
"@tesseract-design/web-action-react": "workspace:*",
"@tesseract-design/web-base": "workspace:*",
"@tesseract-design/web-blob-react": "workspace:*",
"@tesseract-design/web-choice-react": "workspace:*",
"@tesseract-design/web-color-react": "workspace:*",
"@tesseract-design/web-formatted-react": "workspace:*",
"@tesseract-design/web-freeform-react": "workspace:*",
"@tesseract-design/web-information-react": "workspace:*",
"@tesseract-design/web-multichoice-react": "workspace:*",
"@tesseract-design/web-navigation-react": "workspace:*",
"@tesseract-design/web-number-react": "workspace:*",
"@tesseract-design/web-temporal-react": "workspace:*"
"yargs": "^17.7.2"
},
"types": "./dist/types/src/index.d.ts",
"types": "./dist/types/index.d.ts",
"main": "./dist/cjs/production/index.js",
"module": "./dist/esm/production/index.js",
"exports": {
@@ -91,7 +71,7 @@
},
"require": "./dist/cjs/production/index.js",
"import": "./dist/esm/production/index.js",
"types": "./dist/types/src/index.d.ts"
"types": "./dist/types/index.d.ts"
}
},
"typesVersions": {


+ 0
- 10
packages/amanuensis/pages/_app.tsx Parādīt failu

@@ -1,10 +0,0 @@
import type { AppProps } from 'next/app';
import { FC } from 'react';

const App: FC = ({ Component, pageProps }: AppProps) => {
return (
<Component {...pageProps} />
);
};

export default App;

+ 0
- 36
packages/amanuensis/pages/index.tsx Parādīt failu

@@ -1,36 +0,0 @@
import {GetStaticProps, NextPage} from 'next';
import ReactMarkdown from 'react-markdown';
import {Wrapper} from '../components/Wrapper';
import {getReadmeText} from '../utils/data';

interface IndexPageProps {
readmeType: 'markdown';
readmeText: string;
}

const IndexPage: NextPage<IndexPageProps> = ({
readmeType,
readmeText,
}) => {
return (
<Wrapper>
{readmeType === 'markdown' && (
<ReactMarkdown>
{readmeText}
</ReactMarkdown>
)}
</Wrapper>
);
};

export const getStaticProps: GetStaticProps<IndexPageProps> = async () => {
const readmeText = await getReadmeText();
return {
props: {
readmeType: 'markdown',
readmeText,
},
};
};

export default IndexPage;

packages/amanuensis/commands/generate.ts → packages/amanuensis/src/commands/analyze.ts Parādīt failu

@@ -1,10 +1,7 @@
import {
cp, readFile, rm, stat, writeFile,
} from 'fs/promises';
import { dirname, resolve } from 'path';
import { readFile, stat, writeFile } from 'fs/promises';
import { resolve } from 'path';
import { Argv } from 'yargs';
import { Stats } from 'fs';
import { mkdirp } from 'mkdirp';
import { getPackages, TypedocData } from '../utils/data';

const ensureTypedocJson = async (typedocPath: string) => {
@@ -66,75 +63,6 @@ const produceGroupings = async () => {
process.stdout.write(`File written to ${typedocDataJsonPath}\n`);
};

const linkComponents = async () => {
process.stdout.write('Linking components...\n');

const projectCwd = resolve(process.cwd(), '.amanuensis');
const defaultCwd = resolve(__dirname, '..', '..', '..', 'default');
const destCwd = resolve(__dirname, '..', '..', '..');
const componentsList = [
'components/Wrapper.tsx',
];

try {
await rm(resolve(destCwd, 'components'), { recursive: true });
} catch {
// noop
}
await Promise.all(componentsList.map(async (componentPath) => {
const destPath = resolve(destCwd, componentPath);
let baseCwd = projectCwd;

try {
await stat(resolve(baseCwd, componentPath));
} catch (errRaw) {
const err = errRaw as NodeJS.ErrnoException;
if (err.code === 'ENOENT') {
baseCwd = defaultCwd;
}
}

await mkdirp(dirname(destPath));
await cp(
resolve(baseCwd, componentPath),
destPath,
);
process.stdout.write(`Linked ${componentPath}\n`);
}));

const typedocDataJsonPath = resolve(__dirname, '..', '..', '..', '.amanuensis', 'data.json');
const typedocDataJson = await readFile(typedocDataJsonPath, 'utf-8');
const typedocData = JSON.parse(typedocDataJson) as TypedocData;

await Promise.all(
typedocData.packages.map(async (pkg: any) => {
await mkdirp(resolve(destCwd, 'pages', pkg.basePath));
await Promise.all(
pkg.markdown.map(async (m: any) => {
const srcPath = resolve(process.cwd(), pkg.basePath, m.filePath);
const destPath = resolve(destCwd, 'pages', pkg.basePath, m.name);
console.log(srcPath);
await cp(srcPath, destPath);
}),
);
}),
);

// try {
// await rm(resolve(destCwd, 'pages'), { recursive: true });
// } catch {
// // noop
// }
//
// await cp(
// resolve(defaultCwd, 'pages'),
// resolve(destCwd, 'pages'),
// { recursive: true },
// );

process.stdout.write('done\n');
};

export const description = 'Generate documentation from typedoc.json' as const;

export enum GenerateReturnCode {
@@ -142,10 +70,9 @@ export enum GenerateReturnCode {
NO_TYPEDOC_JSON = -1,
COULD_NOT_GENERATE_TYPEDOC_DATA = -2,
COULD_NOT_PRODUCE_GROUPINGS = -3,
COULD_NOT_GENERATE_PAGES = -4,
}

export interface GenerateArgs {
export interface AnalyzeArgs {
typedocJsonPath?: string;
subcommands?: string[];
}
@@ -156,7 +83,7 @@ export const builder = (yargs: Argv) => yargs
alias: 't',
});

const generate = async (args: GenerateArgs) => {
const analyze = async (args: AnalyzeArgs) => {
const {
typedocJsonPath = resolve(process.cwd(), 'typedoc.json'),
} = args;
@@ -179,13 +106,7 @@ const generate = async (args: GenerateArgs) => {
return GenerateReturnCode.COULD_NOT_PRODUCE_GROUPINGS;
}

try {
await linkComponents();
} catch {
return GenerateReturnCode.COULD_NOT_GENERATE_PAGES;
}

return GenerateReturnCode.SUCCESS;
};

export default generate;
export default analyze;

+ 77
- 0
packages/amanuensis/src/commands/init.ts Parādīt failu

@@ -0,0 +1,77 @@
import { cp } from 'fs/promises';
import { resolve } from 'path';
import { Argv } from 'yargs';

const copyFiles = async () => {
const srcPath = resolve(__dirname, '..', '..', '..', 'src', 'next');
const destPath = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next');
await cp(srcPath, destPath, { recursive: true });
};

interface PackageManager {
name: string;
testCmd: [string, string[]];
installCmd: [string, string[]];
}

const packageManagers: PackageManager[] = [
{
name: 'pnpm',
testCmd: ['pnpm', ['--version']],
installCmd: ['pnpm', ['install', '--ignore-workspace']],
},
{
name: 'yarn',
testCmd: ['yarn', ['--version']],
installCmd: ['yarn', ['install']],
},
{
name: 'npm',
testCmd: ['npm', ['--version']],
installCmd: ['npm', ['install']],
},
];

const installDependencies = async () => {
const { execa } = await import('execa');

const selectedPackageManagerIndex = await packageManagers.reduce(
async (prevPmPromise, pkgm, i) => {
const prevPm = await prevPmPromise;
const { testCmd } = pkgm;
const testPm = await execa(...testCmd);
if (testPm.exitCode === 0 && prevPm === -1) {
return i;
}
return prevPm;
},
Promise.resolve(-1),
);

if (selectedPackageManagerIndex < 0) {
process.stderr.write('No package manager found\n');
process.exit(-1);
}

const { [selectedPackageManagerIndex]: selectedPackageManager } = packageManagers;
const cwd = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next');
process.stdout.write(`In path: ${cwd}\n`);
process.stdout.write(`Installing dependencies with ${selectedPackageManager.name}\n`);
await execa(
selectedPackageManager.installCmd[0],
selectedPackageManager.installCmd[1],
{ cwd },
);
};

export const description = 'Initialize a new Amanuensis project' as const;

export const builder = (yargsBuilder: Argv) => yargsBuilder;

const init = async () => {
await copyFiles();
await installDependencies();
return 0;
};

export default init;

+ 118
- 0
packages/amanuensis/src/commands/refresh.ts Parādīt failu

@@ -0,0 +1,118 @@
import {
cp, readFile, rm, stat, writeFile,
} from 'fs/promises';
import { dirname, resolve, basename, extname, join } from 'path';
import { Argv } from 'yargs';
import { mkdirp } from 'mkdirp';
import { TypedocData } from '../utils/data';

const linkComponents = async () => {
process.stdout.write('Linking components...\n');

const projectCwd = resolve(process.cwd(), '.amanuensis');
const defaultCwd = resolve(__dirname, '..', '..', '..', 'src', 'next');
const destCwd = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next');
const componentsList = [
'components/Wrapper.tsx',
];

try {
await rm(resolve(destCwd, 'content'), { recursive: true });
} catch {
// noop
}
await Promise.all(componentsList.map(async (componentPath) => {
const destPath = resolve(destCwd, componentPath);
let baseCwd = projectCwd;

try {
await stat(resolve(baseCwd, componentPath));
} catch (errRaw) {
const err = errRaw as NodeJS.ErrnoException;
if (err.code === 'ENOENT') {
baseCwd = defaultCwd;
}
}

await mkdirp(dirname(destPath));
await cp(
resolve(baseCwd, componentPath),
destPath,
);
process.stdout.write(`Linked ${componentPath}\n`);
}));

const typedocDataJsonPath = resolve(__dirname, '..', '..', '..', '.amanuensis', 'data.json');
const typedocDataJson = await readFile(typedocDataJsonPath, 'utf-8');
const typedocData = JSON.parse(typedocDataJson) as TypedocData;

await Promise.all(
typedocData.packages.map(async (pkg: any) => {
await mkdirp(resolve(destCwd, 'content', pkg.basePath));
await mkdirp(resolve(destCwd, 'pages', pkg.basePath));
await Promise.all(
pkg.markdown.map(async (m: any) => {
const srcPath = resolve(process.cwd(), pkg.basePath, m.filePath);
const destPath = resolve(destCwd, 'content', pkg.basePath, m.name);
const pageDestPath = resolve(destCwd, 'pages', pkg.basePath, `${basename(m.name, extname(m.name))}.tsx`);
await cp(srcPath, destPath);
await writeFile(
pageDestPath,
`import {NextPage} from 'next';
import {Wrapper} from '@/components/Wrapper';
import Content from '@/${join('content', pkg.basePath, m.name)}';

const IndexPage: NextPage = () => {
return (
<Wrapper>
<Content />
</Wrapper>
);
};

export default IndexPage;
`,
// todo fix problem when building with import aliases
// todo find a way to build with tailwind
// todo link components to next project
);
}),
);
}),
);

const srcPath = resolve(process.cwd(), 'README.md');
const destPath = resolve(destCwd, 'content', 'index.md');
await cp(srcPath, destPath);

process.stdout.write('done\n');
};

export const description = 'Generate documentation from typedoc.json' as const;

export enum GenerateReturnCode {
SUCCESS = 0,
COULD_NOT_GENERATE_PAGES = -1,
}

export interface RefreshArgs {
subcommands?: string[];
}

export const builder = (yargs: Argv) => yargs
.option('typedocJsonPath', {
type: 'string',
alias: 't',
});

const refresh = async (args: RefreshArgs) => {
try {
await linkComponents();
} catch {
return GenerateReturnCode.COULD_NOT_GENERATE_PAGES;
}

return GenerateReturnCode.SUCCESS;
};

export default refresh;

packages/amanuensis/commands/serve.ts → packages/amanuensis/src/commands/serve.ts Parādīt failu

@@ -6,8 +6,8 @@ const DEFAULT_PORT = 3000 as const;
const buildApp = async () => {
process.stdout.write('Building app...\n');

const cwd = resolve(__dirname, '..', '..', '..');
const nextBinPath = resolve(__dirname, '..', '..', '..', 'node_modules', '.bin', 'next');
const cwd = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next');
const nextBinPath = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next', 'node_modules', '.bin', 'next');
const { execa } = await import('execa');

await execa(nextBinPath, ['build'], {
@@ -23,8 +23,8 @@ const serveApp = async (port: number) => {
process.stdout.write(`Using port: ${port}...\n`);
process.stdout.write('Serving app...\n');

const cwd = resolve(__dirname, '..', '..', '..');
const nextBinPath = resolve(__dirname, '..', '..', '..', 'node_modules', '.bin', 'next');
const cwd = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next');
const nextBinPath = resolve(__dirname, '..', '..', '..', '.amanuensis', 'next', 'node_modules', '.bin', 'next');
const { execa } = await import('execa');

await execa(nextBinPath, ['start', '-p', port.toString()], {

+ 4
- 2
packages/amanuensis/src/index.ts Parādīt failu

@@ -5,8 +5,10 @@ import yargs from 'yargs';

const main = async (args: string[]) => {
const COMMANDS = {
serve: await import('../commands/serve'),
generate: await import('../commands/generate'),
init: await import('./commands/init'),
serve: await import('./commands/serve'),
analyze: await import('./commands/analyze'),
refresh: await import('./commands/refresh'),
};

const yargsBuilder = Object.entries(COMMANDS).reduce(


+ 4
- 0
packages/amanuensis/src/next/.eslintrc.json Parādīt failu

@@ -0,0 +1,4 @@
{
"root": true,
"extends": "next/core-web-vitals"
}

+ 35
- 0
packages/amanuensis/src/next/.gitignore Parādīt failu

@@ -0,0 +1,35 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts

+ 15
- 0
packages/amanuensis/src/next/components/Wrapper.tsx Parādīt failu

@@ -0,0 +1,15 @@
import {FC, ReactNode} from 'react';

export interface WrapperProps {
children: ReactNode;
}

export const Wrapper: FC<WrapperProps> = ({
children,
}) => {
return (
<div>
{children}
</div>
)
};

+ 25
- 0
packages/amanuensis/src/next/next.config.js Parādīt failu

@@ -0,0 +1,25 @@
// next.config.js

const withMDX = require('@next/mdx')({
extension: /\.mdx?$/,
options: {
// If you use remark-gfm, you'll need to use next.config.mjs
// as the package is ESM only
// https://github.com/remarkjs/remark-gfm#install
remarkPlugins: [],
rehypePlugins: [],
// If you use `MDXProvider`, uncomment the following line.
// providerImportSource: "@mdx-js/react",
},
})

/** @type {import('next').NextConfig} */
const nextConfig = {
// Configure pageExtensions to include md and mdx
pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'],
// Optionally, add any other Next.js config below
reactStrictMode: true,
}

// Merge MDX config with Next.js config
module.exports = withMDX(nextConfig)

+ 25
- 0
packages/amanuensis/src/next/package.json Parādīt failu

@@ -0,0 +1,25 @@
{
"name": "next",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"@mdx-js/loader": "^2.3.0",
"@mdx-js/react": "^2.3.0",
"@next/mdx": "^13.4.12",
"@types/node": "20.4.7",
"@types/react": "18.2.18",
"@types/react-dom": "18.2.6",
"eslint": "8.46.0",
"eslint-config-next": "13.4.7",
"next": "13.4.7",
"react": "18.2.0",
"react-dom": "18.2.0",
"typescript": "5.1.6"
}
}

+ 5
- 0
packages/amanuensis/src/next/pages/_app.tsx Parādīt failu

@@ -0,0 +1,5 @@
import type { AppProps } from 'next/app'

export default function App({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />
}

+ 13
- 0
packages/amanuensis/src/next/pages/_document.tsx Parādīt failu

@@ -0,0 +1,13 @@
import { Html, Head, Main, NextScript } from 'next/document'

export default function Document() {
return (
<Html lang="en">
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}

Binārs
packages/amanuensis/src/next/public/favicon.ico Parādīt failu

Pirms Pēc

+ 1
- 0
packages/amanuensis/src/next/public/next.svg Parādīt failu

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>

+ 1
- 0
packages/amanuensis/src/next/public/vercel.svg Parādīt failu

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 283 64"><path fill="black" d="M141 16c-11 0-19 7-19 18s9 18 20 18c7 0 13-3 16-7l-7-5c-2 3-6 4-9 4-5 0-9-3-10-7h28v-3c0-11-8-18-19-18zm-9 15c1-4 4-7 9-7s8 3 9 7h-18zm117-15c-11 0-19 7-19 18s9 18 20 18c6 0 12-3 16-7l-8-5c-2 3-5 4-8 4-5 0-9-3-11-7h28l1-3c0-11-8-18-19-18zm-10 15c2-4 5-7 10-7s8 3 9 7h-19zm-39 3c0 6 4 10 10 10 4 0 7-2 9-5l8 5c-3 5-9 8-17 8-11 0-19-7-19-18s8-18 19-18c8 0 14 3 17 8l-8 5c-2-3-5-5-9-5-6 0-10 4-10 10zm83-29v46h-9V5h9zM37 0l37 64H0L37 0zm92 5-27 48L74 5h10l18 30 17-30h10zm59 12v10l-3-1c-6 0-10 4-10 10v15h-9V17h9v9c0-5 6-9 13-9z"/></svg>

+ 23
- 0
packages/amanuensis/src/next/tsconfig.json Parādīt failu

@@ -0,0 +1,23 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}

packages/amanuensis/utils/data.ts → packages/amanuensis/src/utils/data.ts Parādīt failu

@@ -38,25 +38,6 @@ export interface TypedocData {
};
}

export const getReadmeText = async (cwd = process.cwd()) => {
const typedocDataJsonPath = resolve(cwd, '.amanuensis', 'data.json');
const typedocDataJson = await readFile(typedocDataJsonPath, 'utf-8');
const typedocData = JSON.parse(typedocDataJson) as {
typedocData: {
readme: { kind: string, text: string }[]
}
};
return typedocData.typedocData.readme.reduce(
(theText, node) => {
if (node.kind === 'text') {
return `${theText}${node.text}`;
}
return theText;
},
'',
);
};

export const getPackages = async (cwd = process.cwd()) => {
const configPath = resolve(cwd, '.amanuensis', 'config.json');
const configString = await readFile(configPath, 'utf-8');
@@ -136,6 +117,6 @@ export const getFileSources = async (cwd = process.cwd()) => {
({ sourceFileName }) => !sourceFileName.startsWith('node_modules'),
);
const firstPartySourceFiles = firstPartySources.map(({ sourceFileName }) => sourceFileName);
const uniqueFirstPartySourceFiles = [...new Set(firstPartySourceFiles)];
const uniqueFirstPartySourceFiles = Array.from(new Set(firstPartySourceFiles));
return uniqueFirstPartySourceFiles;
};

+ 1
- 3
packages/amanuensis/tsconfig.eslint.json Parādīt failu

@@ -1,8 +1,6 @@
{
"exclude": [
"node_modules",
"pages/**",
"components/**"
"node_modules"
],
"include": ["src", "types", "test"],
"compilerOptions": {


+ 2
- 5
packages/amanuensis/tsconfig.json Parādīt failu

@@ -1,8 +1,6 @@
{
"exclude": [
"node_modules",
"pages/**",
"components/**",
],
"include": [
"src",
@@ -16,21 +14,20 @@
"importHelpers": true,
"declaration": true,
"sourceMap": true,
"rootDir": ".",
"rootDir": "./src/",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"jsx": "preserve",
"jsx": "react",
"esModuleInterop": true,
"target": "es2018",
"allowJs": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"incremental": true,
"resolveJsonModule": true,
"isolatedModules": true
}


+ 54
- 772
pnpm-lock.yaml
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


Notiek ielāde…
Atcelt
Saglabāt