Merge pull request #231 from spotify/soapraj/plugin-assets

copy plugin assets to dist
This commit is contained in:
Raghunandan Balachandran
2020-03-13 11:37:27 +01:00
committed by GitHub
2 changed files with 101 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
/// <reference types="node" />
/// <reference types="react" />
/// <reference types="react-dom" />
declare namespace NodeJS {
interface ProcessEnv {
readonly NODE_ENV: 'development' | 'production' | 'test';
}
}
declare module '*.bmp' {
const src: string;
export default src;
}
declare module '*.gif' {
const src: string;
export default src;
}
declare module '*.jpg' {
const src: string;
export default src;
}
declare module '*.jpeg' {
const src: string;
export default src;
}
declare module '*.png' {
const src: string;
export default src;
}
declare module '*.webp' {
const src: string;
export default src;
}
declare module '*.svg' {
import * as React from 'react';
export const ReactComponent: React.FunctionComponent<React.SVGProps<
SVGSVGElement
> & { title?: string }>;
const src: string;
export default src;
}
declare module '*.css' {
const classes: { readonly [key: string]: string };
export default classes;
}
declare module '*.scss' {
const classes: { readonly [key: string]: string };
export default classes;
}
declare module '*.sass' {
const classes: { readonly [key: string]: string };
export default classes;
}
declare module '*.module.css' {
const classes: { readonly [key: string]: string };
export default classes;
}
declare module '*.module.scss' {
const classes: { readonly [key: string]: string };
export default classes;
}
declare module '*.module.sass' {
const classes: { readonly [key: string]: string };
export default classes;
}
+21
View File
@@ -17,6 +17,9 @@
import chalk from 'chalk';
import { Command } from 'commander';
import { spawnSync } from 'child_process';
import fs from 'fs-extra';
import recursive from 'recursive-readdir';
import path from 'path';
export default async (cmd: Command) => {
const args = [
@@ -33,6 +36,7 @@ export default async (cmd: Command) => {
}
try {
await copyStaticAssets();
const result = spawnSync('tsc', args, { stdio: 'inherit' });
if (result.error) {
throw result.error;
@@ -43,3 +47,20 @@ export default async (cmd: Command) => {
process.exit(1);
}
};
const copyStaticAssets = async () => {
const pluginRoot = fs.realpathSync(process.cwd());
const source = path.resolve(pluginRoot, 'src');
const destination = path.resolve(pluginRoot, 'dist', 'cjs');
const assetFiles = await recursive(source, [
'**/*.tsx',
'**/*.ts',
'**/*.js',
]);
assetFiles.forEach(file => {
const fileToBeCopied = file.replace(source, destination);
const dirForFileToBeCopied = path.dirname(fileToBeCopied);
fs.ensureDirSync(dirForFileToBeCopied);
fs.copyFileSync(file, file.replace(source, destination).toString());
});
};