@douyinfe/semi-scss-compile 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,11 +15,11 @@ There are mainly the following two usage scenarios:
15
15
  ```shell
16
16
  npm i -g @douyinfe/semi-scss-compile
17
17
 
18
- semi-build-scss --foundation="path/to/foundation" --theme="path/to/theme" --output="path/to/output.css" --min=true
18
+ semi-build-scss --foundation="path/to/foundation" --theme="path/to/theme" --icon="path/to/'@douyinfe/semi-icons'" --output="path/to/output.css" --min=true
19
19
 
20
20
  # or for short
21
21
 
22
- semi-build-scss -f "path/to/foundation" -t "path/to/theme" -o "path/to/output.css" -m true
22
+ semi-build-scss -f "path/to/foundation" -t "path/to/theme" -i "path/to/'@douyinfe/semi-icons'" -o "path/to/output.css" -m true
23
23
 
24
24
  ```
25
25
 
@@ -36,9 +36,21 @@ function resolve(dir) {
36
36
 
37
37
  //eg
38
38
 
39
- compile(resolve('semi-foundation/'), resolve('semi-theme-default/'), resolve('semi-ui/dist/css/semi.min.css'), {isMin: true})
40
- compile(resolve('semi-foundation/'), resolve('semi-theme-default/'), resolve('semi-ui/dist/css/semi.css'), {isMin: false})
41
-
39
+ compile({
40
+ foundationPath:resolve('semi-foundation/'),
41
+ themePath:resolve('semi-theme-default/'),
42
+ iconPath: resolve('node_modules/@douyinfe/semi-icons'),
43
+ outputPath:resolve('semi-ui/dist/css/semi.min.css'),
44
+ isMin:true
45
+ })
46
+
47
+ compile({
48
+ foundationPath:resolve('semi-foundation/'),
49
+ themePath:resolve('semi-theme-default/'),
50
+ iconPath: resolve('node_modules/@douyinfe/semi-icons'),
51
+ outputPath:resolve('semi-ui/dist/css/semi.css'),
52
+ isMin:false
53
+ })
42
54
  ```
43
55
 
44
56
  ### Advanced API
@@ -48,7 +60,7 @@ const {generateScssMap, writeFile, compilerFromScssMap} = require('@douyinfe/sem
48
60
  const fs = require('fs-extra');
49
61
 
50
62
  const isMin = false;
51
- const scssMap = generateScssMap("path/to/foundation", "path/to/theme");
63
+ const scssMap = generateScssMap("path/to/foundation", "path/to/theme","path/to/'@douyinfe/semi-icons'");
52
64
  const tempDir = writeFile(scssMap)
53
65
  const result = compilerFromScssMap(path.join(tempDir, 'index.scss'), isMin);
54
66
  fs.outputFileSync(outputPath, result.css);
package/lib/bin.js CHANGED
@@ -11,17 +11,19 @@ const main = () => {
11
11
  "--foundation": String,
12
12
  "--theme": String,
13
13
  "--output": String,
14
+ "--icon": String,
14
15
  "--min": Boolean,
15
16
  "-f": "--foundation",
16
17
  "-t": "--theme",
18
+ "-i": "--icon",
17
19
  "-o": "--output",
18
20
  "-m": "--min"
19
21
  }, { permissive: true });
20
- const { "--foundation": foundationPath, '--theme': themePath, '--output': outputPath, '--min': isMin } = userArgs;
22
+ const { "--foundation": foundationPath, '--theme': themePath, '--output': outputPath, '--icon': iconPath, '--min': isMin } = userArgs;
21
23
  console.log(`foundationPath: ${foundationPath},\nthemePath: ${themePath},\noutputPath: ${outputPath}\n`);
22
- if (foundationPath && themePath && outputPath) {
23
- (0, index_1.compile)(foundationPath, themePath, outputPath, {
24
- isMin
24
+ if (foundationPath && themePath && iconPath && outputPath) {
25
+ (0, index_1.compile)({
26
+ foundationPath, themePath, iconPath, outputPath, isMin
25
27
  });
26
28
  }
27
29
  else {
package/lib/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;AAEA,8CAAsB;AACtB,mCAAkC;AAElC,MAAM,IAAI,GAAG,GAAG,EAAE;IACd,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC;QACjB,cAAc,EAAE,MAAM;QACtB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,OAAO;QAEhB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KAChB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACzB,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IAClH,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,iBAAiB,SAAS,kBAAkB,UAAU,IAAI,CAAC,CAAC;IACzG,IAAI,cAAc,IAAI,SAAS,IAAI,UAAU,EAAE;QAC3C,IAAA,eAAO,EAAC,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE;YAC3C,KAAK;SACR,CAAC,CAAC;KACN;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;AACL,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;;;;AAEA,8CAAsB;AACtB,mCAAkC;AAElC,MAAM,IAAI,GAAG,GAAG,EAAE;IACd,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC;QACjB,cAAc,EAAE,MAAM;QACtB,SAAS,EAAE,MAAM;QACjB,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAC,MAAM;QACf,OAAO,EAAE,OAAO;QAEhB,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,IAAI,EAAC,QAAQ;QACb,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KAChB,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;IACvB,MAAM,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC;IACjI,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,iBAAiB,SAAS,kBAAkB,UAAU,IAAI,CAAC,CAAC;IACzG,IAAI,cAAc,IAAI,SAAS,IAAI,QAAQ,IAAI,UAAU,EAAE;QACvD,IAAA,eAAO,EAAC;YACJ,cAAc,EAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,KAAK;SACrD,CAAC,CAAC;KACN;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;KACzC;AACL,CAAC,CAAC;AAEF,IAAI,EAAE,CAAC"}
package/lib/index.d.ts CHANGED
@@ -2,7 +2,11 @@ import generateScssMap from "./utils/generateSCSSMap";
2
2
  import writeFile from "./utils/writeFile";
3
3
  import compilerFromScssMap from "./utils/compiler";
4
4
  export interface Options {
5
+ foundationPath: string;
6
+ themePath: string;
7
+ iconPath: string;
8
+ outputPath: string;
5
9
  isMin?: boolean;
6
10
  }
7
- declare const compile: (foundationPath: string, themePath: string, outputPath: string, { isMin }?: Options) => void;
11
+ declare const compile: ({ foundationPath, themePath, iconPath, outputPath, isMin }: Options) => void;
8
12
  export { compile, generateScssMap, compilerFromScssMap, writeFile };
package/lib/index.js CHANGED
@@ -12,8 +12,8 @@ const compiler_1 = __importDefault(require("./utils/compiler"));
12
12
  exports.compilerFromScssMap = compiler_1.default;
13
13
  const path_1 = __importDefault(require("path"));
14
14
  const fs_extra_1 = __importDefault(require("fs-extra"));
15
- const compile = (foundationPath, themePath, outputPath, { isMin = false } = {}) => {
16
- const scssMap = (0, generateSCSSMap_1.default)(foundationPath, themePath);
15
+ const compile = ({ foundationPath, themePath, iconPath, outputPath, isMin = false }) => {
16
+ const scssMap = (0, generateSCSSMap_1.default)(foundationPath, themePath, iconPath);
17
17
  const tempDir = (0, writeFile_1.default)(scssMap);
18
18
  const result = (0, compiler_1.default)(path_1.default.join(tempDir, 'index.scss'), isMin);
19
19
  fs_extra_1.default.outputFileSync(outputPath, result.css);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAsD;AAqBlD,0BArBG,yBAAe,CAqBH;AApBnB,kEAA0C;AAsBtC,oBAtBG,mBAAS,CAsBH;AArBb,gEAAmD;AAoB/C,8BApBG,kBAAmB,CAoBH;AAnBvB,gDAAwB;AACxB,wDAA0B;AAO1B,MAAM,OAAO,GAAG,CAAC,cAAsB,EAAE,SAAiB,EAAE,UAAkB,EAAE,EAAE,KAAK,GAAG,KAAK,KAAc,EAAE,EAAE,EAAE;IAC/G,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAA,kBAAmB,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,kBAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC;AAIE,0BAAO"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8EAAsD;AAyBlD,0BAzBG,yBAAe,CAyBH;AAxBnB,kEAA0C;AA0BtC,oBA1BG,mBAAS,CA0BH;AAzBb,gEAAmD;AAwB/C,8BAxBG,kBAAmB,CAwBH;AAvBvB,gDAAwB;AACxB,wDAA0B;AAW1B,MAAM,OAAO,GAAG,CAAC,EAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,EAAU,EAAE,EAAE;IAC1F,MAAM,OAAO,GAAG,IAAA,yBAAe,EAAC,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,IAAA,kBAAmB,EAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5E,kBAAE,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC;AAIE,0BAAO"}
@@ -1,4 +1,4 @@
1
- declare const generateScssMap: (foundationPath: string, themePath: string) => {
1
+ declare const generateScssMap: (foundationPath: string, themePath: string, iconPath: string) => {
2
2
  components: {
3
3
  [componentName: string]: {
4
4
  [scssFileName: string]: string;
@@ -7,7 +7,7 @@ const path_1 = __importDefault(require("path"));
7
7
  const fs_extra_1 = __importDefault(require("fs-extra"));
8
8
  const lodash_1 = require("lodash");
9
9
  const lodash = { set: lodash_1.set };
10
- const generateComponentsScssMap = (foundationPath) => {
10
+ const generateComponentsScssMap = (foundationPath, iconPath) => {
11
11
  const foundationComponentList = fs_extra_1.default.readdirSync(foundationPath);
12
12
  const componentScssMap = {};
13
13
  foundationComponentList.forEach(fileName => {
@@ -17,11 +17,22 @@ const generateComponentsScssMap = (foundationPath) => {
17
17
  const componentPath = fileAbsolutePath;
18
18
  const scssFileList = fs_extra_1.default.readdirSync(componentPath).filter((fileName) => fileName.endsWith('.scss'));
19
19
  scssFileList.forEach(scssFileName => {
20
- const scssRaw = fs_extra_1.default.readFileSync(path_1.default.join(componentPath, scssFileName), { encoding: 'utf-8' });
20
+ let scssRaw = fs_extra_1.default.readFileSync(path_1.default.join(componentPath, scssFileName), { encoding: 'utf-8' });
21
+ scssRaw = `\n\n//----${fileName}/${scssFileName} start-----\n` + scssRaw + `\n\n//----${fileName}/${scssFileName} end-----\n`;
21
22
  lodash.set(componentScssMap, [fileName, scssFileName], scssRaw);
22
23
  });
23
24
  }
24
25
  });
26
+ if (iconPath) {
27
+ //for react icon
28
+ const stylePath = path_1.default.join(iconPath, 'src', 'styles');
29
+ const scssFileList = fs_extra_1.default.readdirSync(stylePath).filter((fileName) => fileName.endsWith('.scss'));
30
+ scssFileList.forEach(scssFileName => {
31
+ let scssRaw = fs_extra_1.default.readFileSync(path_1.default.join(stylePath, scssFileName), { encoding: 'utf-8' });
32
+ scssRaw = `\n\n//----${stylePath}/${scssFileName} start-----\n` + scssRaw + `\n\n//----${stylePath}/${scssFileName} end-----\n`;
33
+ lodash.set(componentScssMap, ['icons', scssFileName], scssRaw);
34
+ });
35
+ }
25
36
  return componentScssMap;
26
37
  };
27
38
  const generateThemeScssMap = (themePath) => {
@@ -37,10 +48,10 @@ const generateThemeScssMap = (themePath) => {
37
48
  // console.log(themeScssMap)
38
49
  return themeScssMap;
39
50
  };
40
- const generateScssMap = (foundationPath, themePath) => {
51
+ const generateScssMap = (foundationPath, themePath, iconPath) => {
41
52
  return {
42
- components: generateComponentsScssMap(foundationPath),
43
- theme: generateThemeScssMap(themePath)
53
+ components: generateComponentsScssMap(foundationPath, iconPath),
54
+ theme: generateThemeScssMap(themePath),
44
55
  };
45
56
  };
46
57
  exports.default = generateScssMap;
@@ -1 +1 @@
1
- {"version":3,"file":"generateSCSSMap.js","sourceRoot":"","sources":["../../src/utils/generateSCSSMap.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wDAA0B;AAC1B,mCAA6B;AAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAH,YAAG,EAAE,CAAC;AAEvB,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAE,EAAE;IACzD,MAAM,uBAAuB,GAAG,kBAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAoE,EAAE,CAAC;IAC7F,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACvC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,EAAE;YAChF,qBAAqB;YACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC;YACvC,MAAM,YAAY,GAAG,kBAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YACpG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAChC,MAAM,OAAO,GAAG,kBAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC/F,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;IACH,OAAO,gBAAgB,CAAC;AAC5B,CAAC,CAAC;AAGF,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC/C,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,CAAU,CAAC;IACrI,MAAM,YAAY,GAAkD,EAAE,CAAC;IACvE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE;QAC7B,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;YACjC,iBAAiB;YACjB,YAAY,CAAC,QAAQ,CAAC,GAAG,kBAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;SACpF;KACJ;IACD,4BAA4B;IAC5B,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,cAAsB,EAAE,SAAiB,EAAE,EAAE;IAClE,OAAO;QACH,UAAU,EAAE,yBAAyB,CAAC,cAAc,CAAC;QACrD,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC;KACzC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"generateSCSSMap.js","sourceRoot":"","sources":["../../src/utils/generateSCSSMap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-scss-compile",
3
- "version": "2.1.1",
3
+ "version": "2.1.2",
4
4
  "description": "compile semi scss to css",
5
5
  "author": "daiqiang@bytedance.com",
6
6
  "license": "MIT",
@@ -18,8 +18,8 @@
18
18
  "scss"
19
19
  ],
20
20
  "scripts": {
21
- "build:lib": "tsc",
22
- "prepublishOnly": "rm -rf lib && npm run build:lib"
21
+ "build:lib": "rimraf lib && tsc",
22
+ "prepublishOnly": "npm run build:lib"
23
23
  },
24
24
  "dependencies": {
25
25
  "arg": "^5.0.1",
@@ -30,7 +30,8 @@
30
30
  "devDependencies": {
31
31
  "@types/lodash": "^4.14.176",
32
32
  "@types/sass": "^1.43.0",
33
+ "rimraf": "^3.0.2",
33
34
  "typescript": "^4.4.4"
34
35
  },
35
- "gitHead": "be28426a48482f95f11422cda5b5f2c0d86f4be5"
36
+ "gitHead": "49e7bdabe06525ab4990e5b12b5541e668aa6b11"
36
37
  }
package/src/bin.ts CHANGED
@@ -8,18 +8,20 @@ const main = () => {
8
8
  "--foundation": String,
9
9
  "--theme": String,
10
10
  "--output": String,
11
+ "--icon":String,
11
12
  "--min": Boolean,
12
13
 
13
14
  "-f": "--foundation",
14
15
  "-t": "--theme",
16
+ "-i":"--icon",
15
17
  "-o": "--output",
16
18
  "-m": "--min"
17
- }, { permissive: true });
18
- const { "--foundation": foundationPath, '--theme': themePath, '--output': outputPath, '--min': isMin } = userArgs;
19
+ }, {permissive: true});
20
+ const {"--foundation": foundationPath, '--theme': themePath, '--output': outputPath,'--icon':iconPath,'--min': isMin} = userArgs;
19
21
  console.log(`foundationPath: ${foundationPath},\nthemePath: ${themePath},\noutputPath: ${outputPath}\n`);
20
- if (foundationPath && themePath && outputPath) {
21
- compile(foundationPath, themePath, outputPath, {
22
- isMin
22
+ if (foundationPath && themePath && iconPath && outputPath) {
23
+ compile({
24
+ foundationPath,themePath,iconPath,outputPath,isMin
23
25
  });
24
26
  } else {
25
27
  console.error('Error: lack of args.');
package/src/index.ts CHANGED
@@ -6,12 +6,16 @@ import fs from 'fs-extra';
6
6
 
7
7
 
8
8
  export interface Options {
9
+ foundationPath: string,
10
+ themePath: string,
11
+ iconPath: string,
12
+ outputPath: string
9
13
  isMin?: boolean,
10
14
  }
11
15
 
12
- const compile = (foundationPath: string, themePath: string, outputPath: string, { isMin = false }: Options = {}) => {
13
- const scssMap = generateScssMap(foundationPath, themePath);
14
- const tempDir = writeFile(scssMap);
16
+ const compile = ({foundationPath, themePath, iconPath, outputPath, isMin = false}: Options) => {
17
+ const scssMap = generateScssMap(foundationPath, themePath, iconPath);
18
+ const tempDir = writeFile(scssMap)
15
19
  const result = compilerFromScssMap(path.join(tempDir, 'index.scss'), isMin);
16
20
  fs.outputFileSync(outputPath, result.css);
17
21
  };
@@ -4,7 +4,7 @@ import { set } from 'lodash';
4
4
 
5
5
  const lodash = { set };
6
6
 
7
- const generateComponentsScssMap = (foundationPath: string) => {
7
+ const generateComponentsScssMap = (foundationPath: string, iconPath?: string) => {
8
8
  const foundationComponentList = fs.readdirSync(foundationPath);
9
9
  const componentScssMap: { [componentName: string]: { [scssFileName: string]: string } } = {};
10
10
  foundationComponentList.forEach(fileName => {
@@ -14,11 +14,25 @@ const generateComponentsScssMap = (foundationPath: string) => {
14
14
  const componentPath = fileAbsolutePath;
15
15
  const scssFileList = fs.readdirSync(componentPath).filter((fileName) => fileName.endsWith('.scss'));
16
16
  scssFileList.forEach(scssFileName => {
17
- const scssRaw = fs.readFileSync(path.join(componentPath, scssFileName), { encoding: 'utf-8' });
17
+ let scssRaw = fs.readFileSync(path.join(componentPath, scssFileName), { encoding: 'utf-8' });
18
+ scssRaw = `\n\n//----${fileName}/${scssFileName} start-----\n` + scssRaw + `\n\n//----${fileName}/${scssFileName} end-----\n`;
18
19
  lodash.set(componentScssMap, [fileName, scssFileName], scssRaw);
19
20
  });
20
21
  }
21
22
  });
23
+
24
+ if (iconPath) {
25
+ //for react icon
26
+ const stylePath = path.join(iconPath, 'src', 'styles');
27
+ const scssFileList = fs.readdirSync(stylePath).filter((fileName) => fileName.endsWith('.scss'));
28
+ scssFileList.forEach(scssFileName => {
29
+ let scssRaw = fs.readFileSync(path.join(stylePath, scssFileName), { encoding: 'utf-8' });
30
+ scssRaw = `\n\n//----${stylePath}/${scssFileName} start-----\n` + scssRaw + `\n\n//----${stylePath}/${scssFileName} end-----\n`;
31
+ lodash.set(componentScssMap, ['icons', scssFileName], scssRaw);
32
+ });
33
+ }
34
+
35
+
22
36
  return componentScssMap;
23
37
  };
24
38
 
@@ -37,10 +51,11 @@ const generateThemeScssMap = (themePath: string) => {
37
51
  return themeScssMap;
38
52
  };
39
53
 
40
- const generateScssMap = (foundationPath: string, themePath: string) => {
54
+
55
+ const generateScssMap = (foundationPath: string, themePath: string, iconPath: string) => {
41
56
  return {
42
- components: generateComponentsScssMap(foundationPath),
43
- theme: generateThemeScssMap(themePath)
57
+ components: generateComponentsScssMap(foundationPath, iconPath),
58
+ theme: generateThemeScssMap(themePath),
44
59
  };
45
60
  };
46
61