chore: prettier is now automagically enabled, and fixing some pr review comments
This commit is contained in:
@@ -4,6 +4,5 @@ module.exports = {
|
||||
rules: {
|
||||
'no-console': 0, // Permitted in console programs
|
||||
'new-cap': ['error', { capIsNew: false }], // Because Express constructs things e.g. like 'const r = express.Router()'
|
||||
|
||||
},
|
||||
};
|
||||
|
||||
@@ -24,7 +24,7 @@ describe('Disk Storage', () => {
|
||||
);
|
||||
const templateInfo = require(`${testTemplateDir}/mock-template/template-info.json`);
|
||||
|
||||
const repository = new DiskStorage({ directory: testTemplateDir});
|
||||
const repository = new DiskStorage({ directory: testTemplateDir });
|
||||
|
||||
await repository.reindex();
|
||||
|
||||
@@ -43,8 +43,7 @@ describe('Disk Storage', () => {
|
||||
'../../../test/mock-multiple-templates-dir',
|
||||
);
|
||||
|
||||
const repository = new DiskStorage({ directory: testTemplateDir});
|
||||
|
||||
const repository = new DiskStorage({ directory: testTemplateDir });
|
||||
|
||||
await repository.reindex();
|
||||
|
||||
@@ -59,7 +58,7 @@ describe('Disk Storage', () => {
|
||||
'/some-folder-that-deffo-does-not-exist',
|
||||
);
|
||||
|
||||
const repository = new DiskStorage({ directory: testTemplateDir});
|
||||
const repository = new DiskStorage({ directory: testTemplateDir });
|
||||
|
||||
await repository.reindex();
|
||||
|
||||
@@ -74,7 +73,7 @@ describe('Disk Storage', () => {
|
||||
'../../../test/mock-failing-template-dir',
|
||||
);
|
||||
|
||||
const repository = new DiskStorage({ directory: testTemplateDir});
|
||||
const repository = new DiskStorage({ directory: testTemplateDir });
|
||||
|
||||
await repository.reindex();
|
||||
|
||||
|
||||
@@ -30,7 +30,13 @@ export class DiskStorage implements Base {
|
||||
|
||||
private repoDir: string;
|
||||
private logger?: Logger;
|
||||
constructor({ directory = `${__dirname}/../../../sample-templates`, logger }: { directory?: string, logger?: Logger }) {
|
||||
constructor({
|
||||
directory = `${__dirname}/../../../sample-templates`,
|
||||
logger,
|
||||
}: {
|
||||
directory?: string;
|
||||
logger?: Logger;
|
||||
}) {
|
||||
this.repoDir = directory;
|
||||
this.logger = logger;
|
||||
}
|
||||
@@ -75,26 +81,19 @@ export class DiskStorage implements Base {
|
||||
})),
|
||||
);
|
||||
|
||||
const validFiles = fileContents.reduce(
|
||||
(diskIndexEntries: DiskIndexEntry[], currentFile) => {
|
||||
try {
|
||||
const parsed: Template = JSON.parse(currentFile.contents);
|
||||
return [
|
||||
...diskIndexEntries,
|
||||
{ location: currentFile.location, contents: parsed },
|
||||
];
|
||||
} catch (ex) {
|
||||
this.logger?.error('Failure parsing JSON for template', {
|
||||
path: currentFile.location,
|
||||
});
|
||||
}
|
||||
const validFiles: DiskIndexEntry[] = [];
|
||||
|
||||
for (const file of fileContents) {
|
||||
try {
|
||||
const contents: Template = JSON.parse(file.contents);
|
||||
validFiles.push({ location: file.location, contents });
|
||||
} catch (ex) {
|
||||
this.logger?.error('Failure parsing JSON for template', {
|
||||
path: file.location,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return diskIndexEntries;
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
return validFiles;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Logger } from "winston";
|
||||
import { Logger } from 'winston';
|
||||
|
||||
/*
|
||||
* Copyright 2020 Spotify AB
|
||||
@@ -48,8 +48,6 @@ class Storage implements StorageBase {
|
||||
reindex = () => this.store!.reindex();
|
||||
}
|
||||
|
||||
export const createStorage = (
|
||||
storageConfig: StorageConfig,
|
||||
): StorageBase => {
|
||||
export const createStorage = (storageConfig: StorageConfig): StorageBase => {
|
||||
return new Storage(storageConfig);
|
||||
};
|
||||
|
||||
@@ -44,6 +44,8 @@ class Templater implements TemplaterBase {
|
||||
}
|
||||
}
|
||||
|
||||
export const createTemplater = (templaterConfig: TemplaterConfig): TemplaterBase => {
|
||||
export const createTemplater = (
|
||||
templaterConfig: TemplaterConfig,
|
||||
): TemplaterBase => {
|
||||
return new Templater(templaterConfig);
|
||||
};
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
import { Logger } from 'winston';
|
||||
import Router from 'express-promise-router';
|
||||
import express from 'express';
|
||||
@@ -22,7 +21,7 @@ import { StorageBase, TemplaterBase } from '../scaffolder';
|
||||
|
||||
export interface RouterOptions {
|
||||
storage: StorageBase;
|
||||
templater: TemplaterBase,
|
||||
templater: TemplaterBase;
|
||||
logger: Logger;
|
||||
}
|
||||
|
||||
@@ -30,21 +29,22 @@ export async function createRouter(
|
||||
options: RouterOptions,
|
||||
): Promise<express.Router> {
|
||||
const router = Router();
|
||||
const {storage, templater, logger: parentLogger} = options;
|
||||
const { storage, templater, logger: parentLogger } = options;
|
||||
const logger = parentLogger.child({ plugin: 'scaffolder' });
|
||||
|
||||
router
|
||||
.get('/v1/templates', async (_, res) => {
|
||||
const templates = await storage.list();
|
||||
res.status(200).json(templates);
|
||||
}).post('/v1/job/create', async (_, res) => {
|
||||
})
|
||||
.post('/v1/jobs', async (_, res) => {
|
||||
// TODO(blam): Actually make this function work
|
||||
const mock = 'templateid';
|
||||
res.status(201).json({ accepted: true });
|
||||
|
||||
const path = await storage.prepare(mock);
|
||||
await templater.run({ directory: path, values: { componentId: 'test' } });
|
||||
});
|
||||
});
|
||||
|
||||
const app = express();
|
||||
app.set('logger', logger);
|
||||
|
||||
@@ -30,7 +30,7 @@ import { createRouter } from './router';
|
||||
export interface ApplicationOptions {
|
||||
enableCors: boolean;
|
||||
storage: StorageBase;
|
||||
templater: TemplaterBase;
|
||||
templater: TemplaterBase;
|
||||
logger: Logger;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ export async function startStandaloneServer(
|
||||
const store = new DiskStorage({ logger });
|
||||
const templater = new CookieCutter();
|
||||
logger.debug('Creating application...');
|
||||
|
||||
|
||||
const app = await createStandaloneApplication({
|
||||
enableCors: options.enableCors,
|
||||
storage: createStorage({ store, logger }),
|
||||
|
||||
@@ -1 +1,16 @@
|
||||
/*
|
||||
* Copyright 2020 Spotify AB
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
module.exports = require('@spotify/web-scripts/config/prettier.config.js');
|
||||
|
||||
Reference in New Issue
Block a user