Feat/generator 3 iteration (#399)
* fix: vscode tasks and removed gulp files * chore: cleanup deps and remove babel references * chore: switch from cp to ncp
This commit is contained in:
parent
f11a9cda4c
commit
1ddcebf4c0
11 changed files with 28 additions and 1212 deletions
5
.babelrc
5
.babelrc
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"presets": [
|
||||
"env"
|
||||
]
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
export const HR: string = '\n———————————————————————————————————————————————————————————————\n';
|
||||
export const MESSAGE_BUMP_ERROR: string = ' There was an issue bumping version:\n';
|
||||
export const MESSAGE_BUMP_SUCCESS: string = ' Finished successfully\n';
|
||||
export const MESSAGE_GENERATED: string = 'Generated';
|
||||
export const MESSAGE_THEME_VARIANT_PARSE_ERROR: string = 'Error when parsing json for theme variants';
|
|
@ -1,8 +0,0 @@
|
|||
// export the tasks
|
||||
// export * from './tasks/themes';
|
||||
export * from './tasks/watcher';
|
||||
export * from './tasks/changelog-title';
|
||||
export * from './tasks/copy-ui';
|
||||
|
||||
// export default script
|
||||
export default ['build:copy-ui'];
|
|
@ -1,42 +0,0 @@
|
|||
export interface IThemeVariant {
|
||||
id: string;
|
||||
name: string;
|
||||
scheme: {
|
||||
background: string;
|
||||
base: {
|
||||
black: string;
|
||||
blue: string;
|
||||
brown: string;
|
||||
cyan: string;
|
||||
green: string;
|
||||
orange: string;
|
||||
paleblue: string;
|
||||
pink: string;
|
||||
purple: string;
|
||||
red: string;
|
||||
violet: string;
|
||||
white: string;
|
||||
yellow: string;
|
||||
}
|
||||
caret: string;
|
||||
comments: string;
|
||||
findHighlight: string;
|
||||
focusBorder: string;
|
||||
foreground: string;
|
||||
guides: string;
|
||||
inputBackground: string;
|
||||
inputBorder: string;
|
||||
inputForeground: string;
|
||||
invisibles: string;
|
||||
lineHighlight: string;
|
||||
lineNumbers: string;
|
||||
listHoverForeground: string;
|
||||
scrollbars: string;
|
||||
scrollbarsHover: string;
|
||||
selection: string;
|
||||
shadow: string;
|
||||
sidebarForeground: string;
|
||||
statusbarForeground: string;
|
||||
}
|
||||
type: string;
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import {CHARSET} from '../../src/consts/files';
|
||||
|
||||
export default gulp.task('changelog-title', () => {
|
||||
fs.writeFileSync(
|
||||
'./CHANGELOG.md',
|
||||
fs.readFileSync('CHANGELOG.md', CHARSET).replace('# Change Log', '# Material Theme Changelog'),
|
||||
{encoding: CHARSET});
|
||||
});
|
|
@ -1,24 +0,0 @@
|
|||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import * as gulp from 'gulp';
|
||||
|
||||
import {PATHS} from '../../src/consts/paths';
|
||||
import {ensureDir} from '../../src/helpers/fs';
|
||||
|
||||
export default gulp.task('build:copy-ui', callback => {
|
||||
try {
|
||||
ensureDir(path.resolve(PATHS.UI));
|
||||
fs.copyFileSync(
|
||||
path.join(PATHS.SRC, 'webviews', 'ui', 'release-notes', 'release-notes.html'),
|
||||
path.join(PATHS.UI, 'release-notes.html')
|
||||
);
|
||||
fs.copyFileSync(
|
||||
path.join(PATHS.SRC, 'webviews', 'ui', 'release-notes', 'style.css'),
|
||||
path.join(PATHS.UI, 'release-notes.css')
|
||||
);
|
||||
} catch (error) {
|
||||
return callback(error);
|
||||
}
|
||||
|
||||
callback();
|
||||
});
|
|
@ -1,59 +0,0 @@
|
|||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as gulpUtil from 'gulp-util';
|
||||
import * as mustache from 'mustache';
|
||||
import * as path from 'path';
|
||||
|
||||
import {HR, MESSAGE_GENERATED, MESSAGE_THEME_VARIANT_PARSE_ERROR} from './../consts/log';
|
||||
|
||||
import {CHARSET} from './../../src/consts/files';
|
||||
import {IThemeVariant} from './../interfaces/itheme-variant';
|
||||
import paths from './../../src/consts/paths';
|
||||
import {ensureDir, getDefaultValues} from './../../src/helpers/fs';
|
||||
|
||||
const commons = getDefaultValues();
|
||||
|
||||
const themeTemplateFileContent: string = fs.readFileSync(path.join(paths.SRC, '/themes/theme-template-color-theme.json'), CHARSET);
|
||||
const themeVariants: IThemeVariant[] = [];
|
||||
|
||||
const fileNames: string[] = fs.readdirSync(path.join(paths.SRC, './themes/settings/specific'));
|
||||
|
||||
// build theme variants for later use in templating
|
||||
fileNames.forEach(fileName => {
|
||||
const filePath: string = path.join(paths.SRC, './themes/settings/specific', `./${fileName}`);
|
||||
const contents: string = fs.readFileSync(filePath, CHARSET);
|
||||
|
||||
try {
|
||||
themeVariants.push(JSON.parse(contents));
|
||||
} catch (error) {
|
||||
gulpUtil.log(MESSAGE_THEME_VARIANT_PARSE_ERROR, error);
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Themes task
|
||||
* Builds Themes
|
||||
*/
|
||||
export default gulp.task('build:themes', cb => {
|
||||
gulpUtil.log(gulpUtil.colors.gray(HR));
|
||||
|
||||
ensureDir(path.join(paths.THEMES));
|
||||
|
||||
try {
|
||||
themeVariants.forEach(variant => {
|
||||
const filePath = path.join(paths.THEMES, `./${variant.name}.json`);
|
||||
const templateData = {commons, variant};
|
||||
const templateJSON: any = JSON.parse(mustache.render(themeTemplateFileContent, templateData));
|
||||
const templateJSONStringified: string = JSON.stringify(templateJSON, null, 2);
|
||||
|
||||
fs.writeFileSync(filePath, templateJSONStringified, {encoding: CHARSET});
|
||||
|
||||
gulpUtil.log(MESSAGE_GENERATED, gulpUtil.colors.green(filePath));
|
||||
});
|
||||
} catch (exception) {
|
||||
gulpUtil.log(exception);
|
||||
cb(exception);
|
||||
}
|
||||
|
||||
gulpUtil.log(gulpUtil.colors.gray(HR));
|
||||
});
|
|
@ -1,14 +0,0 @@
|
|||
import * as gulp from 'gulp';
|
||||
import * as path from 'path';
|
||||
|
||||
import Paths from './../../src/consts/paths';
|
||||
|
||||
/*
|
||||
* > Watcher
|
||||
* Watches files and build the themes
|
||||
*/
|
||||
export default gulp.task('watch', () => {
|
||||
// Commented due
|
||||
// gulp.watch(path.join(Paths.SRC, `./themes/**/*.json`), ['build:themes']);
|
||||
gulp.watch(path.join(Paths.SRC, './themes/**/*.json'));
|
||||
});
|
75
.vscode/tasks.json
vendored
75
.vscode/tasks.json
vendored
|
@ -6,16 +6,15 @@
|
|||
// ${fileExtname}: the current opened file's extension
|
||||
// ${cwd}: the current working directory of the spawned process
|
||||
// A task runner that calls a custom npm script that compiles the extension.
|
||||
|
||||
{
|
||||
"version": "2.0.0",
|
||||
// tasks list (build, build-theme, semver etc)
|
||||
"tasks": [
|
||||
{
|
||||
"args": [
|
||||
"run",
|
||||
"build"
|
||||
],
|
||||
"command": "npm",
|
||||
"command": "yarn",
|
||||
"dependsOn": "tsc",
|
||||
"label": "build",
|
||||
"group": {
|
||||
|
@ -23,76 +22,6 @@
|
|||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"linux": {
|
||||
"args": [
|
||||
".",
|
||||
"-name",
|
||||
"\"*.js\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./node_modules/*\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./src/*\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./test/*\"",
|
||||
"-type",
|
||||
"f",
|
||||
"-delete"
|
||||
],
|
||||
"command": "find"
|
||||
},
|
||||
"osx": {
|
||||
"args": [
|
||||
".",
|
||||
"-name",
|
||||
"\"*.js\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./node_modules/*\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./src/*\"",
|
||||
"-not",
|
||||
"-path",
|
||||
"\"./test/*\"",
|
||||
"-type",
|
||||
"f",
|
||||
"-delete"
|
||||
],
|
||||
"command": "find"
|
||||
},
|
||||
"command": "",
|
||||
"label": "clean project"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"run",
|
||||
"changelog"
|
||||
],
|
||||
"command": "npm",
|
||||
"label": "changelog"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"run",
|
||||
"build:ts"
|
||||
],
|
||||
"command": "npm",
|
||||
"dependsOn": "clean project",
|
||||
"label": "tsc"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"run",
|
||||
"build-ui-only"
|
||||
],
|
||||
"command": "npm",
|
||||
"label": "UI: build UI only",
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
13
package.json
13
package.json
|
@ -29,7 +29,7 @@
|
|||
"lint": "eslint .",
|
||||
"build:ui": "node dist/scripts/ui/index.js",
|
||||
"build:generate-themes": "node dist/scripts/generator/index.js",
|
||||
"build:ts": "tsc -p ./tsconfig.json && cp -r dist/src/ build",
|
||||
"build:ts": "tsc -p ./tsconfig.json && ncp dist/src/ build",
|
||||
"postinstall": "node ./node_modules/vscode/bin/install && opencollective postinstall && tsc -p tsconfig.json"
|
||||
},
|
||||
"categories": [
|
||||
|
@ -157,26 +157,19 @@
|
|||
}
|
||||
],
|
||||
"devDependencies": {
|
||||
"@babel/register": "7.4.4",
|
||||
"@moxer/vscode-theme-generator": "1.1.0",
|
||||
"@types/browserify": "12.0.36",
|
||||
"@types/gulp-if": "0.0.33",
|
||||
"@types/gulp-util": "3.0.34",
|
||||
"@types/mustache": "0.8.32",
|
||||
"@types/rimraf": "2.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "2.12.0",
|
||||
"@typescript-eslint/parser": "2.12.0",
|
||||
"babel-core": "6.26.3",
|
||||
"babel-preset-env": "1.7.0",
|
||||
"browserify": "16.2.2",
|
||||
"eslint": "6.7.2",
|
||||
"eslint-config-xo-space": "0.22.0",
|
||||
"eslint-config-xo-typescript": "0.23.0",
|
||||
"fs-extra": "8.1.0",
|
||||
"mustache": "3.0.1",
|
||||
"ncp": "2.0.0",
|
||||
"typescript": "3.7.4",
|
||||
"vscode": "1.1.36",
|
||||
"yargs": "15.0.2"
|
||||
"vscode": "1.1.36"
|
||||
},
|
||||
"__metadata": {
|
||||
"id": "dffaf5a1-2219-434b-9d87-cb586fd59260",
|
||||
|
|
Loading…
Reference in a new issue