diff --git a/feature-group-definitions/cascade-layers.yml b/feature-group-definitions/cascade-layers.yml index 7f77a93363f..a68411f6652 100644 --- a/feature-group-definitions/cascade-layers.yml +++ b/feature-group-definitions/cascade-layers.yml @@ -8,3 +8,11 @@ status: chrome: "99" firefox: "97" safari: "15.4" +compat_features: + - css.at-rules.layer + - css.at-rules.import.layer + - api.CSSImportRule.layerName + - api.CSSLayerBlockRule + - api.CSSLayerBlockRule.name + - api.CSSLayerStatementRule + - api.CSSLayerStatementRule.nameList diff --git a/index.ts b/index.ts index 9ea0e2464d3..ba9a829f807 100644 --- a/index.ts +++ b/index.ts @@ -6,14 +6,29 @@ import YAML from 'yaml'; interface FeatureData { spec: string, - caniuse?: string + caniuse?: string, status?: SupportStatus + compat_features?: string[]; } type browserIdentifier = "chrome" | "firefox" | "safari"; interface SupportStatus { - is_basline: boolean, since?: string, support?: {[K in browserIdentifier]?: string} + is_baseline: boolean, since?: string, support?: {[K in browserIdentifier]?: string} +} + +// Some FeatureData keys aren't (and may never) be ready for publishing. +// They're not part of the public schema (yet). +// They'll be removed. +const omittables = [ + "compat_features" +] + +function scrub(data: FeatureData) { + for (const key of omittables) { + delete data[key]; + } + return data; } const filePaths = new fdir() @@ -30,7 +45,7 @@ for (const fp of filePaths) { const src = fs.readFileSync(fp, { encoding: 'utf-8'}); const data = YAML.parse(src); - features[key] = data; + features[key] = scrub(data); } export default features;