Skip to content

Commit 4d86755

Browse files
Merge branch 'main' into zhiyuanliang/add-basic-example
2 parents 40fb36f + e1a5871 commit 4d86755

File tree

11 files changed

+227
-114
lines changed

11 files changed

+227
-114
lines changed

package-lock.json

Lines changed: 99 additions & 57 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@microsoft/feature-management",
3-
"version": "1.0.0-preview",
3+
"version": "1.0.0",
44
"description": "Feature Management is a library for enabling/disabling features at runtime. Developers can use feature flags in simple use cases like conditional statement to more advanced scenarios like conditionally adding routes.",
55
"main": "./dist/commonjs/index.js",
66
"module": "./dist/esm/index.js",
@@ -18,7 +18,7 @@
1818
"dev": "rollup --config --watch",
1919
"lint": "eslint src/ test/ --ignore-pattern test/browser/testcases.js",
2020
"fix-lint": "eslint src/ test/ --fix --ignore-pattern test/browser/testcases.js",
21-
"test": "mocha out/test/*.test.{js,cjs,mjs} --parallel",
21+
"test": "mocha out/*.test.{js,cjs,mjs} --parallel",
2222
"test-browser": "npx playwright install chromium && npx playwright test"
2323
},
2424
"repository": {
@@ -42,7 +42,7 @@
4242
"eslint": "^8.56.0",
4343
"mocha": "^10.2.0",
4444
"rimraf": "^5.0.5",
45-
"rollup": "^4.9.4",
45+
"rollup": "^4.22.4",
4646
"rollup-plugin-dts": "^6.1.0",
4747
"tslib": "^2.6.2",
4848
"typescript": "^5.3.3"

src/featureProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export class ConfigurationMapFeatureFlagProvider implements IFeatureFlagProvider
2828
}
2929
async getFeatureFlag(featureName: string): Promise<FeatureFlag | undefined> {
3030
const featureConfig = this.#configuration.get<FeatureManagementConfiguration>(FEATURE_MANAGEMENT_KEY);
31-
return featureConfig?.[FEATURE_FLAGS_KEY]?.find((feature) => feature.id === featureName);
31+
return featureConfig?.[FEATURE_FLAGS_KEY]?.findLast((feature) => feature.id === featureName);
3232
}
3333

3434
async getFeatureFlags(): Promise<FeatureFlag[]> {
@@ -49,7 +49,7 @@ export class ConfigurationObjectFeatureFlagProvider implements IFeatureFlagProvi
4949

5050
async getFeatureFlag(featureName: string): Promise<FeatureFlag | undefined> {
5151
const featureFlags = this.#configuration[FEATURE_MANAGEMENT_KEY]?.[FEATURE_FLAGS_KEY];
52-
return featureFlags?.find((feature: FeatureFlag) => feature.id === featureName);
52+
return featureFlags?.findLast((feature: FeatureFlag) => feature.id === featureName);
5353
}
5454

5555
async getFeatureFlags(): Promise<FeatureFlag[]> {

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
export { FeatureManager } from "./featureManager.js";
55
export { ConfigurationMapFeatureFlagProvider, ConfigurationObjectFeatureFlagProvider, IFeatureFlagProvider } from "./featureProvider.js";
66
export { IFeatureFilter } from "./filter/FeatureFilter.js";
7+
export { VERSION } from "./version.js";
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Microsoft Corporation.
2-
// Licensed under the MIT license.
3-
4-
export * from "../src/index.js";
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT license.
3+
4+
export const VERSION = "1.0.0";

test/browser/browser.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@ test("Testcase can pass in browser environment", async ({ page }) => {
77
const filePath = path.join(__dirname, "index.html");
88

99
let hasPageError = false;
10-
1110
page.on("pageerror", (err) => {
1211
hasPageError = true;
1312
console.log(`Page Error: ${err.message}`);
1413
});
1514

1615
await page.goto(`file:${filePath}`);
16+
await page.waitForTimeout(10000);
1717

1818
const failures = await page.evaluate(() => (window as any).mochaFailures);
19-
2019
chai.expect(failures).to.equal(0);
2120
chai.expect(hasPageError).to.be.false;
2221
});

test/browser/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<script src="../../dist/umd/index.js"></script>
2020
<script src="./testcases.js"></script>
2121
<script class="mocha-exec">
22-
mocha.run(function (failures) {
22+
mocha.run(failures => {
2323
window.mochaFailures = failures;
2424
});
2525
</script>

0 commit comments

Comments
 (0)