Skip to content

Commit b422631

Browse files
committed
feat: Rename normalizeOptions to resolveConfiguration.
BREAKING CHANGE: To bring naming inline with the new ResolvedConfiguration type, the normalizeOptions function is now named resolveConfiguration. The module named normalizeOptions has been renamed to resolver in the configuration module folder.
1 parent 08df43c commit b422631

31 files changed

+120
-123
lines changed

packages/css-blocks/src/BlockCompiler/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
} from "../BlockSyntax";
1111
import { StyleAnalysis } from "../TemplateAnalysis/StyleAnalysis";
1212
import {
13-
normalizeOptions,
1413
Options,
14+
resolveConfiguration,
1515
ResolvedConfiguration,
1616
} from "../configuration";
1717

@@ -25,7 +25,7 @@ export class BlockCompiler {
2525
private postcss: typeof postcss;
2626

2727
constructor(postcssImpl: typeof postcss, opts?: Options) {
28-
this.config = normalizeOptions(opts);
28+
this.config = resolveConfiguration(opts);
2929
this.postcss = postcssImpl;
3030
}
3131

packages/css-blocks/src/BlockParser/BlockFactory.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import * as postcss from "postcss";
55
import { RawSourceMap } from "source-map";
66

77
import { Block } from "../Block";
8-
import { normalizeOptions } from "../configuration/normalizeOptions";
9-
import { Options, ResolvedConfiguration } from "../configuration/types";
8+
import { Options, resolveConfiguration, ResolvedConfiguration } from "../configuration";
109
import { FileIdentifier, ImportedFile, Importer } from "../importing";
1110
import { PromiseQueue } from "../util/PromiseQueue";
1211

@@ -48,7 +47,7 @@ export class BlockFactory {
4847

4948
constructor(options: Options, postcssImpl = postcss) {
5049
this.postcssImpl = postcssImpl;
51-
this.configuration = normalizeOptions(options);
50+
this.configuration = resolveConfiguration(options);
5251
this.importer = this.configuration.importer;
5352
this.preprocessors = this.configuration.preprocessors;
5453
this.parser = new BlockParser(options, this);

packages/css-blocks/src/BlockParser/BlockParser.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import * as postcss from "postcss";
22

33
import { Block } from "../Block";
4-
import { normalizeOptions } from "../configuration/normalizeOptions";
5-
import { Options, ResolvedConfiguration } from "../configuration/types";
4+
import { Options, resolveConfiguration, ResolvedConfiguration } from "../configuration";
65
import * as errors from "../errors";
76
import { FileIdentifier } from "../importing";
87

@@ -36,7 +35,7 @@ export class BlockParser {
3635
private factory: BlockFactory;
3736

3837
constructor(opts: Options, factory: BlockFactory) {
39-
this.config = normalizeOptions(opts);
38+
this.config = resolveConfiguration(opts);
4039
this.factory = factory;
4140
}
4241

packages/css-blocks/src/Plugin.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import * as postcss from "postcss";
22

33
import { BlockCompiler } from "./BlockCompiler";
44
import { BlockFactory } from "./BlockParser";
5-
import { Options, ResolvedConfiguration } from "./configuration";
6-
import { normalizeOptions } from "./configuration/normalizeOptions";
5+
import { Options, resolveConfiguration, ResolvedConfiguration } from "./configuration";
76
import * as errors from "./errors";
87

98
/**
@@ -18,7 +17,7 @@ export class Plugin {
1817
* @param opts Optional plugin config options
1918
*/
2019
constructor(postcssImpl: typeof postcss, opts?: Options) {
21-
this.config = normalizeOptions(opts);
20+
this.config = resolveConfiguration(opts);
2221
this.postcss = postcssImpl;
2322
}
2423

Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export * from "./types";
22
export * from "./OutputMode";
3-
export * from "./normalizeOptions";
3+
export * from "./resolver";

packages/css-blocks/src/configuration/normalizeOptions.ts packages/css-blocks/src/configuration/resolver.ts

+16-13
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import {
1616
ResolvedConfiguration,
1717
} from "./types";
1818

19-
const CONFIG_OBJECT_KEYS: Array<ConfigurationObjectKeys> = [
19+
const OBJECT_KEYS: Array<ConfigurationObjectKeys> = [
2020
"importerData",
2121
"preprocessors",
2222
];
23-
const CONFIG_SIMPLE_KEYS: Array<ConfigurationSimpleKeys> = [
23+
const SIMPLE_KEYS: Array<ConfigurationSimpleKeys> = [
2424
"outputMode",
2525
"importer",
2626
"rootDir",
@@ -36,31 +36,30 @@ const DEFAULTS: ResolvedConfiguration = {
3636
disablePreprocessChaining: false,
3737
maxConcurrentCompiles: 4,
3838
};
39-
4039
/**
41-
* Provides read-only access to options values. Provides default values if none
42-
* passed.
40+
* Provides read-only access to resolved configuration values.
41+
* Provides default values for any unspecified configuration values.
4342
*/
44-
class OptionsReader implements ResolvedConfiguration {
43+
class Resolver implements ResolvedConfiguration {
4544
private _opts: Configuration;
4645

4746
constructor(options?: Options, defaults?: Options) {
48-
this._opts = {...DEFAULTS};
47+
this._opts = { ...DEFAULTS };
4948
this.setAll(defaults);
5049
this.setAll(options);
5150
}
5251
private setAll(opts: Options | undefined) {
5352
if (opts === undefined) return;
54-
for (let k of CONFIG_SIMPLE_KEYS) {
53+
for (let k of SIMPLE_KEYS) {
5554
let v = opts[k];
5655
if (v !== undefined) {
5756
this._opts[k] = v;
5857
}
5958
}
60-
for (let k of CONFIG_OBJECT_KEYS) {
59+
for (let k of OBJECT_KEYS) {
6160
let v = opts[k];
6261
if (v !== undefined) {
63-
this._opts[k] = {...v};
62+
this._opts[k] = { ...v };
6463
}
6564
}
6665
}
@@ -87,10 +86,14 @@ class OptionsReader implements ResolvedConfiguration {
8786
}
8887
}
8988

90-
export function normalizeOptions(options: Options | undefined, defaults?: Options): ResolvedConfiguration {
91-
if (options instanceof OptionsReader) {
89+
export function resolveConfiguration(
90+
options: Options | undefined,
91+
defaults?: Options,
92+
93+
): ResolvedConfiguration {
94+
if (options instanceof Resolver) {
9295
return options;
9396
} else {
94-
return new OptionsReader(options, defaults);
97+
return new Resolver(options, defaults);
9598
}
9699
}

packages/css-blocks/test/attribute-container-test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {
77
BlockFactory,
88
} from "../src/BlockParser";
99
import {
10-
normalizeOptions,
11-
} from "../src/configuration/normalizeOptions";
10+
resolveConfiguration,
11+
} from "../src/configuration";
1212
import cssBlocks = require("../src/cssBlocks");
1313
import { AttrValue } from "../src/index";
1414

@@ -39,7 +39,7 @@ export class AttributeContainerTest extends BEMProcessor {
3939
);
4040

4141
let importer = imports.importer();
42-
let options = normalizeOptions({importer});
42+
let options = resolveConfiguration({importer});
4343
let factory = new BlockFactory(options, postcss);
4444

4545
return factory.getBlock(importer.identifier(null, filename, options)).then(block => {
@@ -70,7 +70,7 @@ export class AttributeContainerTest extends BEMProcessor {
7070
);
7171

7272
let importer = imports.importer();
73-
let options = normalizeOptions({importer});
73+
let options = resolveConfiguration({importer});
7474
let factory = new BlockFactory(options, postcss);
7575

7676
return factory.getBlock(importer.identifier(null, filename, options)).then(block => {
@@ -112,7 +112,7 @@ export class AttributeContainerTest extends BEMProcessor {
112112
);
113113

114114
let importer = imports.importer();
115-
let options = normalizeOptions({importer});
115+
let options = resolveConfiguration({importer});
116116
let factory = new BlockFactory(options, postcss);
117117

118118
return factory.getBlock(importer.identifier(null, filename, options)).then(block => {

packages/css-blocks/test/block-factory-test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as postcss from "postcss";
44

55
import cssBlocks, {
66
BlockFactory,
7-
normalizeOptions,
7+
resolveConfiguration,
88
} from "../src";
99

1010
import { BEMProcessor } from "./util/BEMProcessor";
@@ -41,7 +41,7 @@ export class BlockFactoryTests extends BEMProcessor {
4141
:scope { extends: base; color: red; }`,
4242
);
4343
let importer = imports.importer();
44-
let options = normalizeOptions({importer});
44+
let options = resolveConfiguration({importer});
4545
let factory = new BlockFactory(options, postcss);
4646
let extendsBlockPromise = factory.getBlock(importer.identifier(null, extendsFilename, options));
4747
let baseBlockPromise = factory.getBlock(importer.identifier(null, baseFilename, options));
@@ -73,7 +73,7 @@ export class BlockFactoryTests extends BEMProcessor {
7373
`);
7474

7575
let importer = imports.importer();
76-
let options = normalizeOptions({importer});
76+
let options = resolveConfiguration({importer});
7777
let factory = new BlockFactory(options, postcss);
7878

7979
let blockPromise1 = factory.getBlock(importer.identifier(null, blockFilename1, options));

packages/css-blocks/test/importing-test.ts

+3-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ import { IHookCallbackContext } from "mocha";
44
import * as path from "path";
55

66
import { Syntax } from "../src/BlockParser";
7-
import {
8-
normalizeOptions,
9-
} from "../src/configuration/normalizeOptions";
107
import {
118
Options,
9+
resolveConfiguration,
1210
ResolvedConfiguration,
13-
} from "../src/configuration/types";
11+
} from "../src/configuration";
1412
import {
1513
filesystemImporter,
1614
Importer,
@@ -22,7 +20,7 @@ const FSI_FIXTURES = path.resolve(FIXTURES, "filesystemImporter");
2220
const ALIAS_FIXTURES = path.resolve(FIXTURES, "pathAliasImporter");
2321

2422
function getOptions(options?: Options): ResolvedConfiguration {
25-
return normalizeOptions(options, {rootDir: path.join(FSI_FIXTURES)});
23+
return resolveConfiguration(options, {rootDir: path.join(FSI_FIXTURES)});
2624
}
2725

2826
function testFSImporter(name: string, importer: Importer) {

packages/css-blocks/test/local-scope-test.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as postcss from "postcss";
44

55
import {
66
BlockFactory,
7-
normalizeOptions,
7+
resolveConfiguration,
88
} from "../src";
99
import cssBlocks = require("../src/cssBlocks");
1010

@@ -36,7 +36,7 @@ export class LocalScopeLookupTest extends BEMProcessor {
3636
);
3737

3838
let importer = imports.importer();
39-
let options = normalizeOptions({importer});
39+
let options = resolveConfiguration({importer});
4040
let factory = new BlockFactory(options, postcss);
4141

4242
return factory.getBlock(importer.identifier(null, filename, options)).then(block => {
@@ -72,7 +72,7 @@ export class LocalScopeLookupTest extends BEMProcessor {
7272
);
7373

7474
let importer = imports.importer();
75-
let options = normalizeOptions({importer});
75+
let options = resolveConfiguration({importer});
7676
let factory = new BlockFactory(options, postcss);
7777

7878
return factory.getBlock(importer.identifier(null, filename, options)).then(refblock => {
@@ -113,7 +113,7 @@ export class LocalScopeLookupTest extends BEMProcessor {
113113
);
114114

115115
let importer = imports.importer();
116-
let options = normalizeOptions({importer});
116+
let options = resolveConfiguration({importer});
117117
let factory = new BlockFactory(options, postcss);
118118

119119
return factory.getBlock(importer.identifier(null, filename, options)).then(refblock => {

packages/css-blocks/test/opticss-test.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { BlockFactory } from "../src/BlockParser";
2020
import { TemplateAnalysis } from "../src/TemplateAnalysis";
2121
import { ElementAnalysis } from "../src/TemplateAnalysis/ElementAnalysis";
2222
import { StyleMapping } from "../src/TemplateRewriter/StyleMapping";
23-
import { normalizeOptions, Options } from "../src/configuration";
23+
import { Options, resolveConfiguration } from "../src/configuration";
2424

2525
type BlockAndRoot = [Block, postcss.Container];
2626

@@ -29,7 +29,7 @@ type Analysis = TemplateAnalysis<"Opticss.Template">;
2929
@suite("Optimization")
3030
export class TemplateAnalysisTests {
3131
private parseBlock(css: string, filename: string, opts?: Options, blockName = "optimized"): Promise<BlockAndRoot> {
32-
let options = normalizeOptions(opts);
32+
let options = resolveConfiguration(opts);
3333
let factory = new BlockFactory(options, postcss);
3434
let root = postcss.parse(css, {from: filename});
3535
return factory.parse(root, filename, blockName).then((block) => {
@@ -65,7 +65,7 @@ export class TemplateAnalysisTests {
6565
}
6666
}
6767
@test "optimizes css"() {
68-
let options = normalizeOptions({});
68+
let options = resolveConfiguration({});
6969
let info = new Template("templates/my-template.hbs");
7070
let analysis = new TemplateAnalysis(info);
7171
let css = clean`

packages/css-blocks/test/plugin-api-test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { assert } from "chai";
22
import { suite, test } from "mocha-typescript";
33
import * as postcss from "postcss";
44

5-
import { normalizeOptions } from "../src/configuration";
5+
import { resolveConfiguration } from "../src/configuration";
66
import cssBlocks = require("../src/cssBlocks");
77

88
@suite("Setting up")
@@ -13,7 +13,7 @@ export class SetupTests {
1313
assert(processor);
1414
}
1515
@test "default options"() {
16-
const options = normalizeOptions({});
16+
const options = resolveConfiguration({});
1717
assert.equal(options.outputMode, cssBlocks.OutputMode.BEM);
1818
}
1919
@test "a filename is required"() {

packages/css-blocks/test/preprocessor-test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { assert } from "chai";
22
import { skip, suite, test } from "mocha-typescript";
33
import { RawSourceMap } from "source-map";
44

5-
import { normalizeOptions } from "../src/configuration";
5+
import { resolveConfiguration } from "../src/configuration";
66
import {
77
BlockFactory,
88
Preprocessors,
@@ -21,7 +21,7 @@ export class PreprocessorTest {
2121
let registry = new MockImportRegistry();
2222
registry.registerSource("foo.block.styl", `my-stylus-var = 10px`, Syntax.stylus);
2323
let importer = registry.importer();
24-
let options = normalizeOptions({importer});
24+
let options = resolveConfiguration({importer});
2525
let factory = new BlockFactory(options);
2626
return factory.getBlock("foo.block.styl").then(
2727
(_block) => {
@@ -44,7 +44,7 @@ export class PreprocessorTest {
4444
},
4545
};
4646
let importer = registry.importer();
47-
let options = normalizeOptions({importer, preprocessors});
47+
let options = resolveConfiguration({importer, preprocessors});
4848
let factory = new BlockFactory(options);
4949
return factory.getBlock("foo.block.asdf").then((block) => {
5050
assert.equal(block.identifier, "foo.block.asdf");
@@ -70,7 +70,7 @@ export class PreprocessorTest {
7070

7171
};
7272
let importer = registry.importer();
73-
let options = normalizeOptions({importer, preprocessors});
73+
let options = resolveConfiguration({importer, preprocessors});
7474
let factory = new BlockFactory(options);
7575
return factory.getBlock("foo.block.asdf").then((block) => {
7676
assert.equal(block.identifier, "foo.block.asdf");
@@ -97,7 +97,7 @@ export class PreprocessorTest {
9797
},
9898

9999
};
100-
let options = normalizeOptions({
100+
let options = resolveConfiguration({
101101
importer: registry.importer(),
102102
preprocessors,
103103
disablePreprocessChaining: true,

packages/css-blocks/test/query-test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import * as postcss from "postcss";
44

55
import { Block } from "../src/Block";
66
import { BlockFactory } from "../src/BlockParser";
7-
import { normalizeOptions, Options } from "../src/configuration";
7+
import { Options, resolveConfiguration } from "../src/configuration";
88
import { QueryKeySelector } from "../src/query";
99

1010
type BlockAndRoot = [Block, postcss.Container];
1111

1212
@suite("Querying")
1313
export class KeyQueryTests {
1414
private parseBlock(css: string, filename: string, opts?: Options): Promise<BlockAndRoot> {
15-
let options = normalizeOptions(opts);
15+
let options = resolveConfiguration(opts);
1616
let factory = new BlockFactory(options, postcss);
1717
let root = postcss.parse(css, {from: filename});
1818
return factory.parse(root, filename, "query-test").then((block) => {

0 commit comments

Comments
 (0)