chore: prettier is now automagically enabled, and fixing some pr review comments

This commit is contained in:
blam
2020-05-05 10:22:27 +02:00
parent e3ab861038
commit 26094f82e3
9 changed files with 50 additions and 38 deletions
-1
View File
@@ -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 }),
+15
View File
@@ -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');