-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate-pages.ts
47 lines (37 loc) · 971 Bytes
/
create-pages.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* eslint-env node */
import * as path from 'path';
import type { CreatePagesArgs } from 'gatsby';
const LandingTemplate = path.resolve('./src/pages/index.tsx');
const MeetingSchedulerTemplate = path.resolve('./src/pages/meeting-scheduler.jsx');
interface PageTemplate {
path: string;
matchPath?: string;
component: string;
}
interface PageContext {}
interface Page extends PageTemplate {
context: PageContext;
}
function createPages({ actions: { createPage } }: CreatePagesArgs): void {
function createEachPage(pages: Page[]): void {
// eslint-disable-next-line no-restricted-syntax
for (const page of pages) {
console.info('page.path:', page.path);
createPage<PageContext>(page);
}
}
const pagesList: Page[] = [
{
path: '/',
component: LandingTemplate,
context: {},
},
{
path: '/meeting-scheduler',
component: MeetingSchedulerTemplate,
context: {},
},
];
createEachPage(pagesList);
}
export default createPages;